Home > Articles > Programming > Java

Java Reference Guide

Hosted by

Toggle Open Guide Table of ContentsGuide Contents

Close Table of ContentsGuide Contents

Close Table of Contents

How to Survive in a Turbulent Job Market

Last updated Mar 14, 2003.

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%.

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

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.

Books and eBooks

Agile Java Development with Spring, Hibernate and Eclipse, by Anil Hemrajani. This is a book about robust technologies and effective methods which help bring simplicity back into the world of enterprise Java development. The three key technologies covered in this book, the Spring Framework, Hibernate and Eclipse, help reduce the complexity of enterprise Java development significantly. Furthermore, these technologies enable plain old Java objects (POJOs) to be deployed in light-weight containers versus heavy-handed remote objects that require heavy EJB containers.

Core JavaServer™ Faces, 2nd Edition, by David Geary, Cay S. Horstmann. JavaServer Faces (JSF) is quickly emerging as the leading solution for rapid user interface development in Java-based server-side applications. <em>Core JavaServer™ Faces</em> has been thoroughly updated in this second edition, covering the latest feature enhancements, the powerful Ajax development techniques, and open source innovations that make JSF even more valuable.

Google Web Toolkit Applications, by Ryan Dewsbury. Get the edge you need to deliver exceptional user experiences with Google™ Web Toolkit Applications, a guidebook that provides web developers with core information and instructions for creating rich web applications. Whether you're a developer who needs to build a high-performance front end for Java, PHP, or Ruby applications, or to integrate with external web services, this resource from expert Google Web Toolkit (GWT) developer Ryan Dewsbury delivers the in-depth coverage you'll need.

Core Servlets and JavaServer Pages, Volume 2: Advanced Technologies, 2nd Edition, by Marty Hall, Larry Brown, Yaakov Chaikin. Java EE is the technology of choice for e-commerce applications, interactive Web sites, and Web-enabled services. Servlet and JSP technology provides the link between Web clients and server-side applications on this platform. Core Servlets and JavaServer Pages, Volume 2: Advanced Technologies, Second Edition, is the definitive guide to the advanced features and capabilities provided by servlets and JSP. Volume 2 presents advanced capabilities like custom tag libraries, filters, declarative security, JSTL, and Struts. Like the first volume, it teaches state-of-the-art techniques and best practices illustrated with complete, working, fully documented programs.

JBoss® Seam: Simplicity and Power Beyond Java™ EE, by Michael Juntao Yuan, Thomas Heute. JBoss Seam integrates EJB 3.0 and JSF components under a unified framework that simplifies and accelerates Java EE web development. Now, JBoss Seam's project leader and technology evangelist take you inside this powerful new technology, showing exactly how to put it to work. Michael Yuan and Thomas Heute show how JBoss Seam enables you to create web applications that would have been difficult or impossible with previous Java frameworks. Through hands-on examples and a complete case study application, you'll learn how to leverage JBoss Seam's breakthrough state management capabilities; integrate business processes and rules; use AJAX with Seam; and deploy your application into production, one step at a time.

Moving Your Career Up the Value Chain: Building Specialized Development Skills in a Global Economy (Digital Short Cut), by Stephen B. Morris. In the workplace, you move up the value chain by acquiring and applying relevant new skills and knowledge and then using them to rapidly solve difficult problems. Moving Your Career Up the Value Chain teaches concrete methods of evaluating your current position and striking forward to make improvements. There are always areas in our lives where some improvement is warranted. Moving Your Career Up the Value Chain will help you find those areas and make the necessary improvements to propel your career to the next level.