Steven Haines 平时经常撰写关于 Java 新技术的文章在开发员工作中提供帮助,然而这个星期,他把注意力转到了帮助你 找到下一份工作的技术上来。
尽管美国可能并不处于技术方面的萧条,但至少处在股市大跌的阶段。股市从 2008 年年初就开始一直在下滑,公司收购率正不断得上 升。今年,Oracle 已经收购了 BEA,Sun 收购了 MySQL,在我写这份报告的时候,微软正试图收购雅虎。很多人在这些收购中存活下来,但必然有一 部分人没有顺利渡过难关。无论你所工作的是什么企业,也无论你的职务是多么得保险,关注目前企业招聘关注的技术仍然很有必要,或许有一天你不得不需要重新 寻找一份新工作。
另外也要指出的是,这里提供的信息并不完全。Steven 说:
在开始前,我首先申明:我所作的研究不是科学研究,没有对所有的工作职务做调查,也没有通过联系招聘员来了解究竟什么是最稀缺的技术。我所做的,只是通过 Dice 和 Monster 统计一些关键字和这些关键字被点击得次数。大部分结构来源于 Dice,因为在 Monster 上,我没能找到 Dice 那样清楚地搜 索接口(Dice 很不错的一点是它拥有一个"技术"参数,这对最后结果的归类很有帮助)。在 Dice 上搜索到超过 8000 个 Java 职位得结果,足以反映 当前的 Java 市场。并且,根据你所居住的地理位置,得到的结果可能会有所不同。
另外,本章并不是对未来趋势的报道,而是对目前职业所需技能的一个掠影。
我们将要呈现的结果主要是这几个方面:核心技术、应用服务器、web 框架和持久化技术。除此以外,原文中还列出了其他一些更细更专的类别。
表格一:核心技术
关键字/ 技术
点击数
J2EE
7520
Java
6389
JSP
2228
Java/J2EE
1733
EJB
1271
JDBC
1079
JMS
926
Servlet
409
J2ME
146
第一类别-核心技术的统计表,只是给大家展现一下当前的主要形势。极大的可能是很多关键字/技术(尤其是 Java/J2EE)出现很多职位的技术要求中。作者肯定了这个事实,同时指出:
如果仔细查看 Java 编程的相关范畴的话,你会发现 Java 企业应用和 Web 技术占据了大部分职位。10-15%的职位描述中提到了 JMS,而仅仅 2%左右的职位提到了 J2ME。
表格二:应用服务器
关键字/技术
点击数
WebSphere
2155
WebLogic
1561 + 624 (BEA)
Tomcat
1587
JBoss
882
Jetty
22
Glassfish
17
考虑到市场份额的下降,应用服务器方向的现状相应就不会太令人惊讶。WebSphere 以超过 25%的表现占据首位,紧接其后的 是 WebLogic,略微不到 25%(包括在使用搜索关键字“WebLogic”和“BEA”是的重复职位),然后是分别占 20%的 Tomcat 和占 11%的 JBoss。
在过去的几年中,由于 Spring 逐渐变得热门,结果有点让我吃惊。为了能够对未来趋势作出更好的分析,于是我寻求了 http://www.indeed.com 的 帮助,得到这鳌居首位的四个应用服务器的发展趋向图表。这让我得出这样的结论:尽管 WebSphere 和 WebLogic 目前还占据领先位置,但是他们的 受欢迎程度在不停的下降。同时,Tomcat 和 JBoss 的普及率在逐渐上升,因此,学习这几个应用服务器技术在将来可能会给你带来更多的机会。
作者也注意到了 Tomcat 占有率的上升,他提到:
对我来说,最有趣的可能是,在 Dice 上发布的 Java 职位中,几乎有 20%同时在它们的职位描述中提到了 Tomcat。这正说 明很多公司正在尽量躲避 Java EE 栈,而选择标准 web 技术(Servlets/JSP/JSF)或者其他可选的类似于 Spring 那样的框架。
为了肯定他的观察结果以及 EJB 应用服务器与 servlet 容器的趋势的比较结果,我将 EJB 和 Spring 发展趋势的比较也用图表来表示。正如大部分开发者可能期望的那样,Spring 的使用率一直在上升。
表格三:Web 框架
关键字/技术
点击数
Struts
1745
Spring MVC
290
Velocity (and Java)
133
Tapestry
85
WebWork
31
Grails (Groovy)
18
Wicket
14
Stripes (+ J2EE)
8
Cocoon
3
Turbine (and Java)
RIFE
关于什么是最好的 Web 框架这个问题可能是 Java 社区最沉重最受争议的话题:就像讨论政治或宗教问题那样。但是数据是不会说谎 的:很多人都说 Struts 已是一摊死灰,事实却不是这样的。Dice 上所有关于 Java 的工作中,几乎有 22%的工作在它们的职位描述中列出了 Struts,这几乎是其最有力的竞争者的六倍。如果你是做 Java web 开发的话,如果你想要得到最高的市场适应力能分的话,那么你最好还是了解一下 Struts,尽管可能其它技术本身要来的更优秀或能够更好地解决你的 问题。
作者提出的论点是有道理的,但是,随着 Struts2 的发布,问题还在于公司是否会决定升级他们的 Struts 到 2.0 版本,或者说他们也可能会因 此决定这是他们转移到另外的 Java Web 框架或彻底替换使用另一个 web 框架的时机。当然,由于无数的应用程序早已采用该框架完成代码编写,因为市场对 Struts 开发人员的需求不会立即 下降。
从 Indeed 再次审视发展趋势(不包括 Struts),从 Indeed 得到的结果和作者的表格似乎有一些微小的出入。各种框架的使用都呈上升趋势,Spring MVC 显示了其重要的平滑上升的状态。
表格四:持久化技术
关键字/技术
点击数
Hibernate
1750
iBatis
99
Toplink
80
EJB3
37
这儿,Hibernate 毫无意外地在持久化技术领域占强大的领先地位。图表显示的趋势(除了 Hibernate 以外的所有持久化技术,以及采用 JPA 代替 EJB3)却让我们看到一些令人惊讶的结果。JPA 不仅开始有能力和 Hibernate 一较高下(尽管 Hibernate 确实实现了 JPA 规格,因而造成两者有所重复), 而且它在 iBatis 的使用中也呈稳定增长趋势。
结论
总之,作者提出了几个非常好的观点:
在你开发你的企业应用时,你应该熟悉怎样在 WebSphere、WebLogic、JBoss 和 Tomcat 中部署和管理它们。 你可以不花费一分钱下载所有这些应用服务器(商业版本拥有开发许可,可以利用它们帮助你学习)。不要因为你知道怎样编写企业应用就以为所有的应用服务器都 一样。你也不想声称熟悉一样其实并不熟悉的应用服务器,然后在工作中痛苦地挣扎摸索其如何工作。那么,还是现在花一点时间先把它学会吧。
他也提到说:
对于技术,你的时间最好花在 Struts、Spring、Hibernate、AJAX 框架和 JavaServer Faces 的学习上。学习这些技术不是什么小事情,而需要做好合理的学习计划,挑选基本好书,然后使用每一项技术编写一个范例。简单来说,如果你可以把这 些技术添加到你的简历上,那么你找工作的时候应该不会有什么问题了。
评论