Which technologies you should learn next
Recently a co-worker showed me a meta-search engine for jobs. Indeed.com is a search engine for jobs, allowing job seekers to find jobs posted on thousands of company career sites and job boards. But for me the most interesting part on the Indeed website is the posibility to analyze trends on the job market. I tried to analyze some of the data and got some interesting results.
EAI vs. SOA
For example, since 2006 the market needs more SOA experts than EAI experts. That is not a suprise. We can also see that since the end of 2008 the need for SOA experts stopped growing and we can see the next trend "Cloud Computing". Is it a sign that the topic is shifting or is it just coincidence?
EAI vs. SOA
For example, since 2006 the market needs more SOA experts than EAI experts. That is not a suprise. We can also see that since the end of 2008 the need for SOA experts stopped growing and we can see the next trend "Cloud Computing". Is it a sign that the topic is shifting or is it just coincidence?
Next Hype: Cloud Computing
We can see the growing "Cloud Computing" trend even better if we view the percentage of growth relative to each other.
Java vs. .NET
Maybe you ask yourself which computer language you should learn next. Should you learn Groovy, Ruby, Scala or take a look on Microsoft .NET? Well, according to indeed.com Java is the most wanted programming language on the market. C# is growing year by year but still does not seem to be used as much as C++. Groovy, Ruby, Scala are currently not used in the field at all.
Are Groovy and Scala just a hype?
But the relative growth of Groovy, Ruby and Scala over the past years is very impressive. Especially Groovy and Scala are growing very fast. Is it just a hype or are these the programming languages of tomorrow?
Lightweight J2EE architectures are IN. EJB is OUT.
If you compare EJB with Spring you can see that companies search for more Spring developers than EJB developers. Even if you compare Spring with J2EE - which is a more generic term - you can see that the numbers are nearly the same.
Much more impressive is the relative growth of Spring over the past years. And the number of open jobs for Spring developers is still growing...
Hibernate vs. EJB
If you compare the numbers for Hibernate and EJB (or other persistence frameworks), you can see that Hibernate won the battle of persistence frameworks.
But if you look at the relative growth, you can see that the future lies in JPA. By the way: Hibernate supports JPA!
JSP and Struts still rock the world.
And what about web frameworks? Well, JSP and Struts developers are still the most wanted. JSF on the other side still needs some time to become a real standard.
Maybe GWT is the future...
None of the web frameworks is growing as fast as GWT. Is this the future of web development?
JBoss is the only open-source application server used in production
What about Java Application Servers? Oracle Application Server is the most wanted, but JBoss is growing fast. It seems that open-source application servers like GlassFish or Geronimo are not used in production.
But watching the relative growth, GlassFish seems to be the next superstar.
Tomcat is the dominating web container
Comparing Java web containers, we can see that Tomcat is dominating the market.
But Jetty is growing much faster as any other web container.
MQSeries is losing against TIBCO EMS.
Looking at some popular JMS-Servers, we can see that TIBCO EMS is growing fast and MQSeries seems to lose the game.
Is ActiveMQ the future of JMS-Servers?
But ActiveMQ is growing faster than TIBCO and if it continues that way it can be the future most wanted JMS-Server.
Maven vs. Ant
After comparing Maven with Ant, I was shocked that many companies still use Ant as the primary build tool.
But I was relieved after taking a look on the relative growth. It shouldn't take long until Maven wins the game.
Continuum and Hudson seem to be the most used continuous integration servers.
TeamCity is growing fast, followed by Anthill.
And unsurprisingly, Eclipse is the most used IDE.
Swing vs. SWT
If you are a Java rich client developer, you should know how to develop with Swing. SWT does not seem to be a real threat to Swing.
Flash vs. Silverlight
No surprise: Flash does not only dominate the web, but the job market, too. Though Silverlight is growing...
And Silverlight's growth on the job market is very impressive:
Conclusion
According to indeed.com you are currently the most valuable IT ressource if you are a Java Developer with Spring and Hibernate knowledge. You should know how to develop web applications with JSP, Struts or Web Flow and how to deploy it on Tomcat or Oracle Application Servers. If you are a rich client developer, you should be able to develop with Swing or Flash. And if integration is your job, you should be familar with SOA and TIBCO EMS. It's always a plus if you know how to use Ant and how to make continuous integration of your build with Continuum.
But if you want be the the elite of the future, you should take a look at Cloud Computing, Groovy, Spring, JPA, GWT, GlassFish, Jetty, ActiveMQ, maybe Silverlight and of course Maven.
What do you think? Which IT skills will be the most valuable ones on the job market of the future?
UPDATE: Colin pointed out to me that I should use quotes when searching for "Oracle Application Server" or "WebSphere Application Server" - which results in kind of a different picture.