Since 2001, Java’s lowest position in the Tiobe rating has been #2.
In 2019, Java is the 5th most popular coding language in the world, according to StackOverflow Developer Survey.
Apart from numbers: as I’m writing these lines, my laptop suggests me to update Java, which I need for a bunch of programs such as text processors and scientific packages.
Working with such a widespread language may require a lot of specific skills. Here at CV Compiler, we tried to figure out what skills exactly Java devs need to excel in their careers in 2019.
The skills Java developers need to possess in 2019
Continuing our series of articles, we processed 300 vacancies for Java developers from such websites as AngelList, StackOverflow, LinkedIn, etc. The vacancies were from companies of different sizes and different fields of activity. Here is the outcome — the rating of the skills, which were mentioned the most frequently.
In 2018, Java EE was renamed to Jakarta EE, as it’s now developed under the aegis of Eclipse Foundation. However, the old term is still frequently met in the job specs, so we decided to include it on the chart instead of a new title.
Note: this data refers more to the market demand than to the industry insights. The chart reflects the preferences of the employers, not the developers themselves. For industry insights, turn to such surveys as The State of Developer Ecosystem Survey by JetBrains.
Key takeaways
Our main conclusion is: the demand for Java developers is big. I mean, really big. If you type ‘Java’ in LinkedIn’s search bar, you will get 370k vacancies. For comparison, there will be 249k job listings for Python and 278k for JavaScript.
Here are some other key takeaways from our research about the current and upcoming trends in Java development.
Web programming
As of our study, most companies prefer building the back-end of their web applications using Spring MVC, while the most widespread front-end frameworks are Angular (95) or React.js (50). Surely, that doesn’t mean that a Java developer must have a perfect knowledge of JavaScript front-end frameworks, but a general understanding of how these technologies work and interact with your Java code will definitely be useful.
Among those Java back-end frameworks, not mentioned in the chart,
Apache Struts(33) was the most popular one. However, I’d recommend learning this framework only if your (future) employer is definitely using it, (for example, to maintain the old applications). The latest version of Struts was released 5 years ago, but the same is not true of Spring, which is constantly trying to keep up with the newest Java updates. Moreover, Spring MVC is only a part of the complex solution, which can take care of many aspects of your application, (such as testing or data access).
Data processing
Big data is not the most popular use of Java, but from our research, it seems that it’s going to gain momentum in the nearest future. According to IBM, 90% of all data were created in the past two years, therefore we definitely need powerful and stable solutions to process all this information. I reckon Java is the one. Perhaps, it will even share the Data Science market with Python one day :)
As for now, some employers already want candidates to be familiar with such data-related solutions as Apache Kafka (49), Hadoop (27), Azure (23), and Spark (21). By the way, the term Big Data itself was mentioned 33 times across the vacancies we analyzed, which is quite eloquent.
JVM Languages
As we were analyzing vacancies for Java devs only, none of the JVM languages was mentioned frequently enough to get to our chart. However, they still were met in some of the job specs, and the most popular one was Scala (33). If you’re not familiar with Scala yet, you might want to learn more about it in 2019, (especially if you’re working with data).
Microservices
Java is considered by many seasoned devs the best language for microservices development. So, we weren’t wondered to see the terms Microservices and Spring Boot quite close to the top of our chart. Developers love microservices, too: better microservices support is the main community priority for Jakarta EE in 2019.
I guess expanding your knowledge about this software development technique is a must in 2019. By the way, you might also want to learn more about service meshes. Although the term Istio (7) was mentioned not so frequently, as was Kubernetes (18), similar orchestration technologies are definitely going to become more popular with the growing popularity of microservice apps.
Web servers and databases
Finally, if talking about NoSQL databases, here is what employers prefer: Cassandra (41) and MongoDB (33). As for web servers, Tomcat (35) and Apache (35) were the leaders.
Java trends: experts’ opinions
Here is what experts say about the upcoming Java trends.
In the close future, we’re likely to see the increased interest in Quarkus and associated technologies, running on the GraalVM. For example, it might be Vert.x, as Java responds to the container revolution.
James Governor,
Founder of RedMonk.
Twitter
The relatively low popularity of Spring Boot compared to “classic” Spring surprised me. On the other hand, I was pleasantly surprised by Java EE’s second place. JPA (Java Persistence API), one of the Java EE APIs, being listed as a standalone item, together with strong demand concerning SQL skills, indicate continuing interests in relational databases.
Strong demand for Maven skills matches my real world experience: Maven is one of the leading build tools. Apache Kafka is currently very popular on conferences, but it is not applicable as general architecture for all projects, which explains its relatively low demand.
I would also expect interests in Google Cloud and Azure skills to raise —both clouds are already heavily used in projects. A Java EE developer, and so experienced in JPA, SQL, JMS (Kafka is also a JMS implementation), JAX-RS (REST), Maven (default in Java EE), Git (de-facto standard) is in the best possible position on the market in May 2019.
Adam Bien,
Java Champion, JavaOne Rockstar Consultant.
Blog | Twitter
Today, Spring Framework and microservice architecture are de-facto standards in the Java World. But the ever-evolving industry requires software engineers to develop new skills in addition to mastering existing ones. Service mesh and service proxy are changing the way microservices are developed, so employers are looking for engineers who are hands-on with Istio, Linkerd2 or Envoy. With more and more companies moving towards public and hybrid cloud computing, it’s important to have an experience in Amazon AWS, Google Cloud Platform or Microsoft Azure.
Reactive programming is still on the rise in the Java Universe. Even though I don’t expect it to completely replace more traditional imperative approach, engineers with expertise in reactive programming are in high demand. It worths investing in exploring what is reactive programming and how it changes the state of the Java ecosystem. Gain some experience with reactive frameworks (Project Reactor, RxJava, Spring WebFlux, etc) and learn what differentiates reactive programming from building reactive systems.
On the data storage side, NoSQL and polyglot persistence are must-have skills for engineers today, but global systems are raising the need for a new class of database management solutions. Strongly consistent Google Spanner is an example of a production-ready NewSQL database provided as a service. While it’s hard to predict the popularity of NewSQL storage solutions themselves, the future is about highly-distributed software, so it’s essential to understand principles behind consistent systems, especially consensus protocols.
Alex Borysov,
Senior Software Engineer at Netflix, Ex-Googler.
Twitter | YouTube
This rating of skills sounds reasonable to me for an enterprise Java project. However, I don’t see much demand in SOA anymore. As of Spring and Spring Boot, they’re often used simultaneously, so the distinction is probably not relevant anymore.
As of the future, I do see a trend and growing interest in all kinds of cloud-native technologies. In case that trend continues, that might be more interesting in a few years from now.
Sebastian Daschner,
Java Champion
Personal website
Java developers, (like all developers), will always benefit from a deep understanding of core tools and languages like Git and SQL. Whatever OS you use, any scripting language is another thing that can accelerate your work. Developers who want to advance should also know about the infrastructure the code works in (cloud) and how it gets there (CI).
Our job is not to write code — it’s to change the software. Understanding the wider system, including the business domain, will make developers make better decisions in Java and any other language.
Jessica Kerr,
Developer at Atomist
Twitter | Blog
Java is a mature language with a stable set of tools for different needs. However, as it’s constantly evolving, keeping a finger on the pulse is always useful for your career. Hope this article helps you to stay up-to-date with the latest Java trends!
Bonus tip: Ever wonder how strong your Java Developer resume is? Tap here to compile it and see how it stacks up compared to the best practices in the industry. Learning your score is free!
Top comments (2)
The share of Gradle is constantly growing, so maybe we'll see it in the similar skill ratings in the future. This time, we met it only 24 times across 300 vacancies :(
I am currently a Final Year Student and I am working on my FYP which is Completely based on the Java Development and I have no regret or threat about my future related to the Java Developer and I forgot to tell you working Mainly on Web Development with Spring MVC as Back-End and Angular 7 as Front End and I started to work on this because I know the worth of Java in International Market as well. I am happy to work with Java and I think that enterprise level is better than working on small scale frameworks like React.