In questo interessate articolo viene tracciato un panorama riguardo le competenze più richieste dal mercato US.
Pur tenendo presente le distinzioni con quello italiano, è interessante notare quali sono le aree in cui investire per il futuro.
Ti invitiamo compilare il nostro questionario di survey del mercato IT per conoscere la reale situazione in Italia.
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%.
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.