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 , , and etc. Spring 5 Spring Security 5 Spring Boot 2 They came really fast but came with a lot of interesting features like , API enhancements, GC improvement, Thread Local handshake and many more. I have documented them and I am really excited to use those. var with local variables here Same goes with Spring framework and Spring Security, I didn't know all the changes on and , my project was still using Spring Security 3.1 and boom we now we have version 5.0 for both Spring and Spring security. Spring 4.0 Spring Security 4.0 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 , JavaScript frameworks like and , latest changes on unit and integration testing space and new version of popular framework like , , and . Git Angular React Spring MVC Spring Security Spring Boot I managed to catch up many of those last years, hence, this year 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 landscape DevOps What skills Java Programmers should learn Here is my list of things a Java developer should learn: 1. Git Git and Github have been around some time and while I have used Git in past with , but I am yet to become master of Git on the command line, and I am not alone Eclipse 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. I have recently purchased the from Udemy on their last 10$ sale and this would be the first item to complete. Git Complete: The definitive, step-by-step guide to Git If you are in the same boat and want to learn or improve your Git skill, do check out that course from Udemy, it's very handy. 2. Java As I said, I am still learning Java 8 and many Java developers too. I will also spend some time learning new features of 9, , Java 11, and Java 12 but for me, is still a priority, until I moved to Java 11 which is another LTS release. Java Java 10 Java 8 The JDK 9 brings a lot of goodies in terms of modules, Jigsaw, Reactive , 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. Streams 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 which is updated for Java 12 and I am looking forward to starting my Java 12 journey with that. The Complete Java MasterClass , 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 tutorials to learn Java 8 . 3. 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 and will keep the momentum going . If you use Spring, probably it's the best time to learn Spring 5.0. Spring 5. 0: Beginner to Guru If you like books, you can also check out this list of for Java developers from Manning and Packt Publications. advanced Spring Books 4. Unit testing [ JUnit and Mockito] Another area which I want to improve in the coming year. There are a lot of new framework and available for Java programmers to unit test and integration test their application like and PowerMock for mocking objects, Robot Framework, and Cucumber for automated integration test and of course the new and shining JUnit 5 library. tools Mockito 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 from Udemy. JUnit and Mockito Crash Course And, if you need more choices, you can check these for some inspiration. top 5 JUnit and Mockito courses 5. 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 which you can follow to learn and master DevOps at your own speed. DevOps RoadMap 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. If you are looking for some awesome resources then is a great course to start with, particularly for Java developers, and if you want to learn more, this is perfect companion. Master Jenkins CI For DevOps and Developers DevOps Roadmap One more thing I want to keep improving my knowledge about writing REST API and implementing secure and scalable RESTful Web Service in Java using Spring. 6. RESTful Web Service 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, from Eugen Paraschiv is a good starting point. The REST of Spring MasterClass 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. 7. Spring Security 5.0 This is another priority Item for me along with Spring 5.0 framework stuff. Thankfully Eugen has updated his best selling course 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. Learn with Spring Security 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. 8. Spring Boot 2 If you also want to learn Spring Boot 2, you can check out this from Udemy for a quick start. free Spring boot course If you need more choices then you can also check this list of for Java developers to learn. top Spring boot courses 9. Angular or React.js These two JavaScript framework has completely changed how you develop web applications. As a Java developer, I have used , , and jQuery at the client side but haven't yet tried my hand with Angular or React. Servlet JSP one of my goals is to learn Angular and I will be starting my journey with Udemy's . If you are in the same boat then you can also take a look at that course, it's very handy. Angular - The Complete Guide 10. Android If you don't know how to write Android Apps 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 mobile applications. Even though I know Android basics, I have yet to publish any Android apps, maybe this year will change that. If you want to learn Android, you can check , one of the better courses to learn Android. The Complete Android N Developer Course If you need more choices then I have also shortlisted some 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. Android online courses One more thing I want to keeping exploring in depth is the Big Data space, and particularly and framework. 11. Apache Spark and Kafka Apache Spark Apache Kafka I am not sure if I will get time to look other but its seriously good stuff and along with DevOps and Machine Learning, Big Data is probably the hottest technology at this moment. Big data technologies If you also want to learn Big data, you can check course. The Ultimate Hands-On Hadoop --- Tame your Big Data! If you need more choices you can also check my list of from Udemy and Pluralsight. shortlisted courses to learn Apache Spark for Java developers That's all about As I have said, Technology changes with rapid speed and the biggest challenge for programmers are to keep themselves up-to-date. what Java developers should learn. 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 or Golang. 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