找工作问题

Java搜索工程师:

1、基于全文检索技术开发网站的各类搜索相关的功能

2、基于全文检索技术开发网站的智能内容分类系统

3、基于全文检索技术对海量数据进行分析和提取,实现用户行为的智能识别和精准的用户推荐系统

 

 

必备条件(必须满足):

1.2年以上Java编程经验,1年以上lucene实际开发经验,对全文检索技术有深入的掌握

2. 熟悉Linux,能在Linux环境下开发

javaeEE 工程师:

1.负责基于J2EE技术的通用软件技术平台的设计:包括架构设计,概要设计,详细设计,数据库设计……
2.
负责基于J2EE技术的通用软件技术平台的需求调研分析,开发过程管理,文档编制,用户培训……
3.
负责行业应用架构平台的分析设计。

2.具有卓越的软件设计才能,深厚的设计底蕴,对软件平台化,零编码设计,软件生产线,业务基础架构平台等有一定的经验和领悟,有一定的创新能力;
3.
具有一个3年以上J2EE大型通用软件技术平台(业务基础架构平台,软件快速开发平台,软件开发框架。。。)的设计和开发经验;
4.
CMMRUPISO9000XP等软件工程管理思想有一定的了解;
5.
精通J2EE技术: Hibernate, Struts, Socket, 多线程,XML,证书,安全,jmx,jms,javacard…
6.
精通客户端技术: jsp, javascript,css,html,ajax
7.
熟悉Mysql, Oracle 数据库, unix/linux 系统, tomcat, weblogic 应用服务器;
8.
至少参加过一个以上大型软件开发项目,有完整参与规范的需求、设计、编码、测试方面文档写经验;
9.
对开发高性能软件有一定的经验(压力,并发, 集群);
10.
熟悉corba,webservice,证书技术, dojo技术优先;
11.
熟悉 unix/linux c++ 优先;
12.
为人正直,坦率,诚实,具有良好的团队合作精神;
13.
工作积极主动,认真细致,经验丰富,善于学习和交流;
14.
具有良好的软件工程意识,善于规范化的文档编写,熟悉ROSEVISIO

来看看Sun给出的J2EE 相关技术主要分为几大块。

 

1. Web Service技术

 

-  Java API for XML Processing (JAXP)

 

-  Java API for XML Registries (JAXR)

 

-  Java API for XML-based RPC (JAX-RPC)

 

-    SOAP with Attachments API for Java (SAAJ)

 

2. 组件模型技术(Component Model Technologies

 

-  Java Servlet

 

-  JavaServer Pages

 

-  JavaServer Faces

 

-  Enterprise JavaBeans

 

-  Java Message Service

 

-   J2EE Connector Architecture

 

3. 管理技术(Management Technologies)

 

-  J2EE Deployment Specification

 

-  J2EE Management Specification

 

-  J2EE Client Provisioning

 

-    Java Authorization Contract for Containers

 

4. 其他相关技术(Other J2EE Technologies)

 

-  JDBC

 

-  Java Data Objects (JDO)

 

-  CORBA (Java IDL and Java RMI-IIOP)

 

-  JavaMail

 

-  Transactions

 

 

 

架构师:

如果你想在这个行业中成为一名架构师的话,需要至少掌握网络知识,硬件,软件,网站优化等方方面面的知识:

1 网络知识。

当 前的软件已经绝对不是那种仅仅跑在一台单机上的孤立应用了。不仅仅是在互联网行业,任何一个行业的软件,都要求其具有网络功能。因此,网络知识是架构师必备的知识。我们所说的网络知识,不仅仅包括TCP/IPhttp等互联网行业常用的软件协议,也包括网络规划,甚至更具体的说,根据网站应用所处的地理环境进行网络规划。比如人们常说:这世界上最远的距离不是生与死的距离,而是电信到网通的距离(笑)如果应用是建立在中国的,就要考虑电信用户和网通 用户访问网站的速度应该都比较快才可以。这时候的解决方案可能有多种,比如采用CDNContent Delivery Network内容分发网络)使得网站的内容发布到离用户最近的服务器,又可以采用把服务器放在一些所谓的双线机房中,甚至将几种方案结合起来使用。这些都统统归到网络知识中。做为公司的架构师,要对这些知识都有所了解,才有助于在遇到问题时找到最佳答案。

2 硬件知识。

了 解硬件的极限,是架构师的基本功。我见过一些人,他们的眼中软件硬件都是没有极限的,需要资源就申请,系统性能下降了就买更高级的设备。然而,硬件的性能有很大一部分取决于I/O设备。而这些I/O设备依靠的都是机械物理运动,这种运动是有极限的。因此当资源访问量增大到一定的程度时,这种物理运动将成为瓶颈。比如说,在开发网站的过程中,记录访客的状态是一件很重要的事情,一般来说可以使用HttpSession来记录。而HttpSession的存储 问题将是一个很大的挑战,尤其是多机共享Session时,将HttpSession存成文件并通过多机共享或网络备份的方式来解决分布式的问题是常用的 方案,然而,架构师必须考虑到这种方案是有I/O极限限制的,很难扩展到超过一定规模的大型网络。同时,架构师应该了解目前最近的硬件发展是否对软件系统 会造成一定的影响,比如在多核的条件下是否对软件编程有新的要求,是否会对运行在虚拟机和非虚拟机上的程序有影响等等。

3 软件知识。

软 件知识所包含的范围就更加广泛了。对于互联网行业来讲,架构师要了解操作系统,数据库,应用服务器等各方面的知识。比如说,如果网站使用的操作系统是 Linux,就要了解这个Linux版本的性能与局限性,比如说最多可以存放的单个文件为多大。有的数据库的数据是以单个文件来存放的,虽然我们很少见到数据库中的数据多到不能再放入一条记录的情况,但是作为架构师,请时刻注意,这种可能性是有的。而且如果你有幸在一家高速成长的互联网企业中,而你所负责 的应用又没有经过优化的话,可能你会很快见到这种现象。这种现象的发生可能是由于操作系统不支持大文件的原因,也可能是数据库不支持大文件。不论如何,架构师应该在这种现象发生之前就把一切都准备好。对数据库中表的拆分是架构师应该遇到的另外一个困难。一般来说增加应用服务器比较简单而增加数据库服务器则 是比较复杂的问题,如果一个站点由多个数据库支持,架构师需要考虑如何在保证数据一致的情况下,让多个数据库分担压力。有些解决方案是将数据库的读写分开,使得大多数的查询sql不经过核心数据库,而只是访问数据库的副本,但事实上,这种方式也只能维护规模不大的网站。对于大型的网站来说,把业务分散到不同的数据库中,只共享必要的数据,才是合理的提高网站扩展性的解决方案。

4 其他知识。

作 为系统架构师,可能还需要对分布式系统,负载均衡,网络安全,数据监控等等各方面都有所了解。不仅仅是了解理论知识,也要对相关的产品和业界进展有一定的认识。比如说做负载均衡最好的产品是那种。目前最常用的备份策略是什么,有什么缺点。如何使用缓存,如何做好日志分析等等。

 

JAVA系统架构师应该看的几本书
Thinking in Java
Effective Java

UML
基础、案例与应用

UML
入门提高


软件工匠

设计模式——可复用面向对象软件的基础


重构-改善既有代码的设计

敏捷软件开发-原则、模式、实践


企业应用架构模式

Expert One-on-One J2EE Development without EJB

软件工程——实践者的研究方法

软件领导--成功开发软件的指导准则



 

你可能感兴趣的:(找工作)