I have been in Java development for several years, doing mostly server-side(J2EE or custom) programming. But last two years I stepped aside into PHP & JavaScript. Long story short, today I’m considering to attack Java world once more. Sure, Java development landscape drifted around. So, to keep up with latest trends I need to choose wisely which skills to pick for acquiring/refreshing.
So I did my own little research.
The algorithm of the research was pretty simple.
- Log into Linkedin.com.
- In the upper menu go to “More”, then “Skills”.
- Search for “Java”.
- Write down into a spreadsheet all the related skills (with relative growth %), leave irrelevant ones. I ditched Lisp, Prolog and Scheme. I also left alone JBuilder and Swing, because they just irrelevant for me. I’m not going to make UI in Java, and not in JBuilder anyway.
- Repeat this process for every one of the skills in the first round. Eliminate duplicates. I got something like 100 skills.
- Open indeed.com and for each skill in skill list perform search. Write down its % of matching job postings.
- Sort by % of matching postings.
Here goes my top 20 list:
- Spring
- JSP
- Hibernate
- Tomcat
- Eclipse
- Struts
- JBoss
- Stripes
- Servlets
- JDBC
- JMS
- Ant
- JUnit
- EJB
- Maven
- JSF
- Hudson
- Axis
- Velocity
- GWT
This list is not full or precise, but gives a perception of what is going on there in Java jobs world. Then again, I threw things I dislike left and right, so you probably will get slightly different picture.
But let’s go a bit further. What about our trends? I’ve added another column, named “projected”, which calculated as amount of job postings next year (given the trend will remain the same). So, what I have get.
- Spring (remains the leader)
- Hibernate (1 position up)
- JSP (1 down)
- Tomcat (~)
- Stripes (3 up)
- JBoss (1 up)
- Eclipse (2 down)
- Struts (2 down)
- JMS (2 up)
- Hudson (7 up!)
- JDBC (1 down)
- Servlets (3 down)
- JUnit (~)
- Ant (2 down)
- EJB (1 down)
- Maven (1 down)
- JSF (1 down)
- Axis (~)
- GWT (1 up)
- Velocity (1 down)
If you look at next 10, you’ll see there some interesting items: Groovy, Grails, JPA(probably it contains JPA v2 too), iBatis, Ivy. All they have strong upward trends, and probably worth consideration.
Conclusion? It seems like Spring, Hibernate, JSP and Tomcat are must for server-side Java development. Then I should pick several upward trending topics like Hudson, Stripes and JMS(pure backend) and/or GWT(pure frontend). It’s clear even without spreadsheets, that things like Eclipse, JUnit, Ant and Maven are here to stay for at least another several years.