Skip to main content

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.
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.

2. Git

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.
Since now most of the companies are migrating their projects from
SVN, CVS to Git, its high time to learn and master Git.
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.
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.
5.Unit testing

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.
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.
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.
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.

9. Angular 2+ or React JS

These two JavaScript framework has completely changed how you develop web applications.
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.
10. Android

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
mobile applications.
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 framework.
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
2020.

Comments

Popular posts from this blog

The Future of Java Developers in the AI Decade

In this AI decade, Java developers are positioned to play a crucial role in various areas: 1. AI and Machine Learning: While Python is often the language of choice for AI and machine learning, Java still has its place, especially in enterprise-level applications and systems where stability, scalability, and security are paramount. Java developers can work on integrating AI and machine learning capabilities into existing Java-based systems or developing new AI-powered applications using Java frameworks like Deeplearning4j or Weka. 2. Big Data and Analytics: With the growing importance of big data analytics, Java developers can contribute to building robust data processing and analytics systems. Java is widely used in big data frameworks like Apache Hadoop and Apache Spark, enabling developers to work on distributed computing, data processing, and real-time analytics applications. 3. Cloud Computing: As more companies move their infrastructure to the cloud, Java developers can leverage t

What is JDK, JRE and JVM?

What are JDK, JRE, and JVM: JDK :- Java Development Kit (in short JDK) is Kit which provides the environment to Develop and execute(run ) the Java program. For eg. You(as Java Developer) are developing an accounting application on your machine, so what do you going to need into your machine to develop and run this desktop app? You are going to need  J-D-K  for that purpose for this you just need to go to the official website of sun or oracle to download the latest version of JDK into your machine. Hence, JDK is a kit(or package) which includes two things i) Development Tools(to provide an environment to develop your java programs) and ii) JRE (to execute your java program). JDK is only used by Java Developers. JRE: - Java Runtime Environment (to say JRE) is an installation package which provides an environment to only run(not develop) the java program(or application)onto your machine. For eg(continuing with the same example) after developing your accounting application

Fresher Need to start from this technology

For freshers, some technologies are relatively simpler to start with due to their ease of learning and abundant resources available for beginners: 1. Python: Known for its readability and simplicity, Python is often recommended as a first language due to its clean syntax and vast community support. It's used in various fields like web development, data analysis, artificial intelligence, and more. 2. HTML/CSS: Fundamental for web development, HTML (HyperText Markup Language) and CSS (Cascading Style Sheets) are essential and relatively easy to grasp. They form the backbone of web pages and are essential for anyone interested in web development. 3. JavaScript:Alongside HTML and CSS, JavaScript is crucial for web development, adding interactivity and functionality to websites. It's beginner-friendly and essential for front-end development. 4. Java: Although it might have a steeper learning curve than Python, Java is widely used in enterprise applications, Android development, and