How To Survive in a Turbulent Job Market
Steven Haines usually spends his time writing about new Java technologies that can help developers in their jobs, however, this week he has turned his attention to those technologies that can help you find that next job.
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.
It also needs to be pointed out that the information presented is not complete. In Steven's own words:
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.
Additionally, the article doesn't report any trends, but rather a snapshot of the current job technologies.
The results we'll review are from: core technologies, application servers, web frameworks, and persistence technologies. There are several other categories listed in the original article, which are more specialized in nature.
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 |
The first category, core technologies, provides only an overview of the current landscape. It's very likely that many of the keywords/skills (especially Java/J2EE) would be listed in most positions. The author confirms this, and points out the the following:
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%.
With the increased popularity of Spring over the last few years, this result was a little surprising to me. To get a better insight to the tends, I headed over to http://www.indeed.com and graphed the top four application servers. This leads me to the conclusion that, even though WebSphere and WebLogic are in the lead now their popularity is decreasing. At the same time, the popularity of Tomcat and JBoss is increasing, and learning these application servers may result in more opportunities in the future.
| websphere, weblogic, tomcat, jboss Job Trends | websphere jobs - weblogic jobs - tomcat jobs - jboss jobs |
The author also noted an increase in Tomcat:
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
To confirm his observation and the trends in EJB capable application servers vs. servlet containers, I next graphed the trends for EJB vs. Spring. As most developers would have expected, Spring use is still increasing.
Table 3. 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.
The argument the author makes is valid, however, with the release of Struts2 there is the question of whether companies will decide to migrate to version 2 of Struts, or whether they will decide that the time has come to move to a different Java Web framework or another web framework entirely. Either way, the need for Struts developers will not decrease quickly, due to the number of applications already written using the framework.
Reviewing the trends from Indeed (Struts was not included), presents a slightly different view from the authors table. There is growth in the usage of all the frameworks, with Spring MVC showing the most improvement over time.
| spring mvc, tapestry, grails, wicket, stripes, velocity Job Trends | spring mvc jobs - tapestry jobs - grails jobs - wicket jobs - stripes jobs - velocity jobs |
Table 4. Persistence Technologies
|
Keyword/Skill |
Hits |
|
Hibernate |
1750 |
|
iBatis |
99 |
|
Toplink |
80 |
|
EJB3 |
37 |
It's no surprise here that Hibernate has a strong lead for persistence technologies. Graphing the trends (all except Hibernate, and using JPA instead of EJB3) did lead to some surprising results. Not only is JPA starting to complete against Hibernate (although Hibernate does implement the JPA specification, so this could be overlap), but there is a steady increase in iBatis use.
Conclusion
In conclusion, the author makes some very good points:
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 well as:
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.
Bullshit!
by
Stefane Fermigier
Here is a much better graph, also showing strong growth of Seam.
S. Fermigier, founder and CEO, Nuxeo
This is pretty much exactly what this industry doesn't need
by
Bruce Rennie
My expectation is that developers should be able to learn these things as part of the job. But hiring managers always want it now. In that sort of atmosphere, it's not wonder developers chase these frameworks. And useful skills such as unit testing, refactoring, patterns, estimating, and modelling get the short end. How can we change this?
Re: This is pretty much exactly what this industry doesn't need
by
Maurizio Turatti
Tell the guys to learn how to design and model a domain using proper patterns instead of a list of acronyms. When a job listing is just full of such buzzwords it is a clear indicator of the poor quality of the employer, in my opinion.
I'm very sad, it seems we still cannot move beyond.
Re: This is pretty much exactly what this industry doesn't need
by
Ranjiva Prasad
Re: This is pretty much exactly what this industry doesn't need
by
Francois Ward
Even worse, someone who knows different frameworks and go with the philosophy that "its all the same" will make things worse. So everything is in the balance.
No JSF?!
by
Dejan Krsmanović
Re: This is pretty much exactly what this industry doesn't need
by
Steven Haines
So the point of my article was not to highlight what skills you should list on your resume, or even that you should have a casual knowledge of, but rather these are skills that employers are looking for when seeking new employees. So the two step process could be summarized as (1) become a strong developer (and learn the fundamentals) and then (2) learn, understand, and implement the applied technologies that employers are looking for.
Because I have to agree with Francios that when hiring someone it is better to find a good developer that is already familiar with the technologies that my company is using. True, a good developer can pick up the technology on the job, but are employers willing to pay for the learning curve? Some will, such as larger organizations that are investing more into their R&D team, but many won't because they'll want their new hires to be productive as soon as possible.
What do you think? Is that reasonable?
Thanks,
Steve
Re: No JSF?!
by
Steven Haines
If you read the original article, for applied technologies I explicitly recommended learning JSF :)
Thanks,
Steve
Re: Bullshit!
by
Steven Haines
Stefane: I came across the same problem of trying to filter out non-Java jobs, which was one reason I relied so heavily on Dice - employers can post specific skills they are looking for, not just including the skills in their descriptions. But then it limited me when it came to skills that they don't explicitly define, such as Velocity and Tapestry. And I had a tough time using their UI because they kept converting RIFE to LIFE, which yielded quite a few more jobs :) (btw, if you want to search for RIFE, or any other word that Dice likes to "correct" for you, enclose the term in quotes)
I'm curious why my Dice searches came up so low on SEAM (46 hits). Why do you think this is? Are companies not explicitly asking for SEAM even though they're using it? Are all the SEAM jobs being advertised elsewhere? Or does SEAM just need more time to fully take off?
Thanks,
Steve
Educational Content
Writing Usable APIs in Practice
Giovanni Asproni May 19, 2013
Concurrency in Clojure
Stuart Halloway May 17, 2013





Hello stranger!
You need to Register an InfoQ account or Login to post comments. But there's so much more behind being registered.Get the most out of the InfoQ experience.
Tell us what you think