10 Things Java Programmer should learn in 2020
I am Java programmer, blogger on http://javarevisited.blogspot.com and http://java67.com
For Java developers, last, a couple of years has brought plentiful
changes and posed a tough challenge with keeping up-to-date with new Java version every 6 months, and many release of popular frameworks like Spring 5
, Spring Security 5
, and Spring Boot 2
When I started 2019, I thought Java 10 was new and before I could
finish learning Java 10, Java 11 and Java 12 was already out. I hardly have any time to look at those except some key features like "String in switch case".
They came really fast but came with a lot of interesting features like var with local variables
, API enhancements, GC improvement, Thread Local handshake and many more. I have documented them here
and I am really excited to use those in 2020.
Same goes with Spring framework and Spring Security, I didn't know all the changes on Spring 4.0
and Spring Security 4.0
, my project was still using Spring Security 3.1 and boom we now we have version 5.0 for both Spring and Spring security.
My learning speed has slowed down a little bit in last a couple of
years and I haven't managed to keep myself up-to-date with the latest
and greatest like I am yet to get comfortable with Git
, latest changes on unit and integration testing space and new version of popular framework like Spring MVC
, Spring Security
, and Spring Boot
I managed to catch up many of those last years, hence, 2020 will be
all about consolidation and keeping myself up-to-date with things which
matters most on the technology side, improving my toolset chain and
exploring the DevOps
What skills Java Programmers should learn in 2020
Here is my list of things a Java developer should learn in 2020:
1. DevOps (Docker and Jenkins)
This is one area where I am seeing a lot of traction last year as more
and more companies are moving into DevOps and adopting continuous
integration and deployment.
DevOps is very vast and you need to learn a lot of tools and
principles and that's what overwhelm many developers but you don't need
to worry. I have shared a DevOps RoadMap
which you can follow to learn and master DevOps at your own speed.
This means if you are an experienced Java programmer with a passion
for managing the environment, automation and improving overall
structure, you can become a DevOps Engineer.
Git and Github have been around some time and while I have used Git in past with Eclipse
, but I am yet to become master of Git on the command line, and I am not alone
Many programmers haven't mastered Git yet? Simply because they didn't need it yet as there code might be in SVN or CVS.
I have also occasionally downloaded projects from Github and run from Eclipse but still far from being expert with Git commands, particularly reverting changes and handling errors.
Since now most of the companies are migrating their projects from
SVN, CVS to Git, its high time to learn and master Git.
If you are in the same boat and want to learn or improve your Git
skill in 2020, do check out that course from Udemy, it's very handy.
3. Java 9,10,11,12 or maybe 13
As I said, I am still learning Java 8 and many Java developers too. I will also spend some time learning new features of Java
9, Java 10
, Java 11, and Java 12 in 2020 but for me, Java 8
is still a priority, until I moved to Java 11 which is another LTS release.
The JDK 9 brings a lot of goodies in terms of modules, Jigsaw, Reactive Streams
, Process API, HTTP2 client, JShell, and API improvements like collection factory methods and I am really looking forward to learning them at the earliest opportunity.
Similarly, JDK 10 brings var to give you a flavor of dynamic typing and some GC improvement.
In the last Udemy 10$ sale, I have purchased a host of courses and one of them is The Complete Java MasterClass,
which is updated for Java 12 and I am looking forward to starting my Java 12 journey with that.
Btw, if you have yet to start with JDK 8 then here is my list of favorite Java 8 tutorials and courses which you can free of cost: 10 best tutorial to learn Java 8
4. Spring Framework 5
I have been hearing about some new features like reactive programming
model on Spring 5, adoption of recent Java features, some unit testing
improvement etc but I have yet to try that.
Anyway, I have already started learning Spring 5.0 by following Spring 5. 0: Beginner to Guru
and will keep the momentum going in 2020 . If you use Spring, probably it's the best time to learn Spring 5.0.
If you like books, you can also check out this list of advanced Spring Books
for Java developers from Manning and Packt Publications.
Another area which I want to improve in the coming year. There are a lot of new framework and tools
available for Java programmers to unit test and integration test their application like Mockito and PowerMock for mocking objects, Robot Framework, and Cucumber for automated integration test and of course the new and shining JUnit 5 library.
There is plenty of stuff to learn on this front. If you can invest
some time upgrading your unit testing skill, not only your coding skill
will improve but also you will become a more professional developer,
which every company looks form. To start with, you can check out JUnit and Mockito Crash Course
6. RESTful Web Service
One more thing I want to keep improving in 2020 is my knowledge about
writing REST API and implementing secure and scalable RESTful Web
Service in Java using Spring.
This is one skill which is highly desirable in the Java world and there are not many people who know both Java and REST well.
If you are also in the same boat and want to learn how to develop RESTful Web Service using Spring, The REST of Spring MasterClass
from Eugen Paraschiv is a good starting point.
7. Spring Security 5.0
This is the third major upgrade on Spring Eco-System. The 5th version of
popular security framework has several bug fixes and a major OAuth 2
module, which you just can't miss.
This is another priority Item for me in 2020 along with Spring 5.0 framework stuff. Thankfully Eugen has updated his best selling course Learn with Spring Security
to include 5.0 features and added a separate module for OAuth 2.0., probably the best material to learn Spring Security 5.0 at this moment.
8. Spring Boot 2
The Spring Boot framework also has a new release Spring Boot 2. If I get
sometime after all these goals this year then I will spend some time
learning Spring Boot 2.
If you also want to learn Spring Boot 2, you can check out this free Spring boot course
from Udemy for a quick start.
If you need more choices then you can also check this list of top Spring boot courses
for Java developers to learn in 2020.
9. Angular 2+ or React JS
As a Java developer, I have used Servlet, JSP, and jQuery at client side but haven't yet tried my hand with Angular or React.
In 2020, one of my goals is to learn Angular and I will be starting my journey with Udemy's Angular 7- The Complete Guide
. If you are in the same boat then you can also take a look at that course, it's very handy.
If you don't know how to write Android Apps in 2020 then you are lacking
something. Mobile is one of the best platforms to reach a large number
of people and Android is probably the most popular platform to write
Even though I know Android basics, I have yet to publish any Android
apps, maybe 2020 will change that. If you want to learn Android in 2020,
you can check The Complete Android N Developer Course
, one of the better course to learn Android.
If you need more choices then I have also shortlisted some Android online courses
to refresh my knowledge and get to the next level. If you are also in the same boat then you may find them useful as well.
11. Apache Spark and Kafka
One more thing I want to keeping exploring in depth in 2020 is the Big Data space, and particularly Apache Spark
and Apache Kafka
I am not sure if I will get time to look other Big data technologies
but its seriously good stuff and along with DevOps and Machine Learning,
Big Data is probably the hottest technology at this moment.
That's all about what Java developers should learn in 2020. As I have said, Technology changes with rapid speed and the biggest challenge for programmers are to keep themselves up-to-date.
Apart from this list, there are plenty of other stuff which you can
look-up in new year e.g. learning a new programming language like Kotlin
but for me, I will be more than happy if I can achieve these goals in
Thanks for reading this article so far. If you like these tools then
please share with your friends and colleagues on Facebook. If you have
any questions or feedback then please drop a note.
All the best with your learning
Subscribe to get your daily round-up of top tech stories!