How to Survive in a Turbulent Job Market
Last updated Feb 15, 2008.
While the United States may not technically be in a recession, it is in at least a strong correction. The stock market is down, and has been since the beginning of 2008, and corporate acquisitions are on the rise. Already this year Oracle has acquired BEA, Sun has acquired MySQL, and as of this writing, Microsoft is attempting to acquire Yahoo. While many people will survive these acquisitions, some certainly will not. Regardless of the industry that you're in and regardless of how secure your job is, it is in your best interest to be aware of the technologies that companies are looking for in the eventuality that you need to find a new job. So while I typically spend my weekends writing articles that describe new Java technologies that can make you more effective at your job, this week I decided to survey the current job market and identify the most marketable Java technologies.
Before I begin, here is my disclaimer: my research was not scientific, I did not survey all available jobs, and I did not contact any recruiters to find out what technologies are most in demand. Instead I reviewed Dice and Monster for keywords and recorded the number of hits that I found. Most of my results came from Dice because I did not find the search interface at Monster as revealing as Dice (Dice was nice enough to include a "skill" parameter that helped categorize the results.) But with the 8000+ Java jobs that I found on Dice, I would argue that my results are representative of the current Java market. And, depending on where you live, your results may vary.
I have categorized all of my results into eight tables: Core Technologies, Application Servers, Web Client Technologies, Web Frameworks, Persistence Technologies, Application Frameworks, Scalability and Caching Technologies, and other related technologies, all shown below.
Table 1. Core Technologies
Keyword/Skill
Hits
J2EE
7520
Java
6389
JSP
2228
Java/J2EE
1733
EJB
1271
JDBC
1079
JMS
926
Servlet
409
J2ME
146
Between Java and J2EE there are undoubtedly overlapping jobs, but from the numbers I think we are safe (and conservative) to say that our sample set contains at least 8000 jobs, which we'll base the relevance of the coming technologies against.
If you're looking at broad categories of Java programming, enterprise Java and Web technologies hold the most jobs. JMS was a listed in 10-15% of the job descriptions and J2ME only accounted for about 2% of the jobs.
Table 2. Application Servers
Keyword/Skill
Hits
WebSphere
2155
WebLogic
1561 + 624 (BEA)
Tomcat
1587
JBoss
882
Jetty
22
Glassfish
17
The application server job market is not very surprising considering that the market share breaks down similarly. WebSphere is in the lead with over 25%, followed closely by WebLogic with a little less than 25% (accounting for duplicate jobs between the search terms "WebLogic" and "BEA"), and then Tomcat with 20%, and JBoss with 11%.
NOTE
I was unable to search for Oracle Application Server because "Oracle Application Server" included Oracle DBA jobs, which returned almost 6000 jobs (and I was not about to go through each one to distinguish between them.) I did search on "OAS", which returned 62 results, but because it is so inconclusive I did not feel it was appropriate to include in the results.
Probably the most interesting thing to me is that almost 20% of the Java jobs on Dice included Tomcat in their descriptions. This may reveal that many companies are bypassing the Java EE stack in favor of either a standard web technology (Servlets/JSP/JSF) or an alternate framework like Spring (see table 4.)
Table 3. Web Client Technologies
Keyword/Skill
Hits
AJAX (Java)
1780
Google Web Toolkit
23 + 54 (GWT)
ICEfaces
11
Echo
9
JavaServer Faces (JSF)
657 + 688 (JSF)
Portal
974
Portlet: Java
126
Portlet: WebSphere
99
Portlet: J2EE
89
Portlet: BEA
40
Portlet: JSP
40
Portlet: Struts
33
JSTL
190
NOTE
Results that have two numbers show the results of multiple searches. For example, the search for "Google Web Toolkit" yielded 23 results and the search for "GWT" yielded 54 results. Rather than add the two numbers, which undoubtedly have overlap, I presented the results as I found them so that you can draw your own conclusions.
From the Dice search, AJAX technologies are dominating the Java web client market. The real question here is whether companies care about specific AJAX technologies or if they really understand what AJAX is. I sampled a few of the results and most simply stated "AJAX and JavaScript", not specifying a framework.
The results for JavaServer Faces (JSF) were strong with a conservative estimate that 10% of all Java jobs required JSF. Portals and Portlets made a good showing, but the framework of choice is split pretty well between the different vendors. And about 2% of jobs listed JSTL in their descriptions.
Table 4. Web Frameworks
Keyword/Skill
Hits
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)
0
RIFE
0
The topic of the best Web frameworks is probably the most heavily debated topic in the Java community: it is like talking about politics or religion. But the numbers do not lie: as much as you read that Struts is dead, it is not. Almost 22% of all Java jobs on Dice list Struts in their descriptions, which is six times its closest competitor. If you are a Java web developer and you want the highest degree of marketability, you’d better know Struts, even if there are other technologies that are superior or have a more elegant solution to your problem.
Table 5. Persistence Technologies
Keyword/Skill
Hits
Hibernate
1750
iBatis
99
Toplink
80
EJB3
37
It should come as no surprise to those that use it, Hibernate is the king of persistence with almost 22% of all Java jobs on Dice listing Hibernate in their descriptions — none of its competitors are even close. It is worth noting that core technologies listed 1271 jobs with EJB in their descriptions, which may include EJB3, but only 37 job descriptions explicitly listed EJB3.
Table 6. Application Frameworks
Keyword/Skill
Hits
Spring
2138
Seam
46
Prior to the release of Spring, enterprise applications either used homegrown application frameworks or embraced J2EE. And the vast majority of those companies that embraced J2EE only used Stateless Session Beans. EJB3 was supposed to simplify enterprise application development, but I am seeing more and more companies bypass EJB, and Java EE in general, in favor of Spring.
The most significant takeaway from this search is that over 25% of all Java jobs on Dice list Spring in their description. If you have been intimidated by Spring and have held off learning it, now is the time. If you have Spring experience on your resume, you are much more marketable than if you do not.
Table 7. Scalability and Caching Technologies
Keyword/Skill
Hits
Coherence
47
GigaSpaces
13
Terracotta
4
At JavaOne 2006 I had the opportunity to interview three thought leaders in the Java industry: Tangosol's (now Oracle's) Cameron Purdy, GigaSpace's Nati Shalom, and Terracotta's Ari Zilka. Each of their companies improves the performance and scalability of enterprise applications in a different way: Coherence does it through caching, GigaSpaces does it through JavaSpaces, and Terracotta does it through JVM clustering. These are great technologies that I really believe that every enterprise Java developer should be familiar with. But with that said, if you want to be marketable in today's Java industry, your time is better spent learning one of the technologies in higher demand, such as Spring and Hibernate.
Table 8. Other Related Technologies
Keyword/Skill
Hits
Adobe Flex
197
Groovy
21
While these are not Java technologies, I thought it would be interesting to review the job market for Adobe Flex and Groovy. Flex provides an alternative to AJAX in the Rich Internet Application (RIA) space in which applications are built on top of the Flex framework and then deployed to Adobe's Flash Player. The benefits to using Flex are: (1) the user interfaces you build are far more responsive than AJAX applications, (2) user interfaces can be built to very closely resemble desktop applications, and (3) Flash Player has a far reach so you can build these rich applications knowing that most of your users will already have support for them. Flex has great potential to shape Web 2.0, but looking at the numbers, it is simply not in the same demand as AJAX or Web 1.0 technologies like Struts.
Finally, I am sure that you have read somewhere on the Web that Java is dead and will be replaced by Groovy. If that is true then they sure have a long way to go: over 8000 Java jobs compared to 21 Groovy jobs? It must be a slow death.
Conclusion
Java is alive and well in the job market. In this article I reviewed the results of my informal and unscientific research into the Java job market: I searched Dice with specific keywords and captured the number of search results they generated. As you want to increase your marketability in a turbulent market, the results are clear.
When you develop your enterprise applications, you should become familiar with how to deploy and manage them in WebSphere, WebLogic, JBoss, and Tomcat. You can download all of these application servers at no cost (the commercial products have development licenses so that you can use them for your learning.) Do not assume because you can write enterprise applications that all application servers are the same. You do not want to claim that you are familiar with an application server that you are not and then struggle through it on the job. Take the time to learn it now.
As far as technologies, your time is best spent learning Struts, Spring, Hibernate, an AJAX framework, and JavaServer Faces. It is not trivial to learn each of these technologies, but develop a schedule, pick out a few good books, and build a sample application in each. In short, if you can add each of these technologies to your resume, you should have no problem finding a job.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment