Hey, Tea Lovers! The new year is just around the corner, and we all are creating a New Year Resolution List 2022 for ourselves, aren’t we? Among staying healthy, begin happy, spending more time with family, we Java developers or any developers also include some new technologies that we want to learn and grow our career with.
Generally, it consists of a new hot topic in the market or something that will be used in a new project or just for a hobby. Beginners always find it confusing to what should they do next. So I would like to help you guys to append some technologies into your new year resolution’s “learn new things” section.
The list I am showing is divided into 2 parts. One is specific to Java. And other is everything outside of Java that helps us to run the actual code. I tried to order it on the basis of job preferences and popularity, but you are free to learn it in any order. In my opinion, if you follow it in the given order, you will understand them faster.
Shall we start creating the list for 2022 then? Here we go.
You can follow me on social media via @coderstea on Twitter, Linkedin, Facebook, or Instagram. We also share high-quality videos about programming on our Youtube channel. You can also publish your post on CodersTea, just share your thought on Contact Us or let us know in the comments.
Java and Its Framework
The first part, of course, is all about Java. We Java developers take pride in Java Language, then why not better our understanding of it. This list will help you understand Java and its Framework deeply.
Java Internal Working
You can’t bring out 100% of your car’s performance just by simply driving it. You have to know your engine to optimize your car performance. How it works, how much oil it needs, how to cool it off, how to repair basic things if not working etc. Similarly, you can’t write an optimal solution in Java unless you know how Java works internally.
The biggest example I can think of is String and StringBuilder. When concatenating a large number of strings, StringBuilder is preferred instead of String concatenation with
+ sign. But you have to know the difference in their working internally. How both affect JVM and its Heap memory differently.
Garbage Collection, JVM Structure, Stack & Heap Memory are a few topics you can learn quickly and easily. We have a quick guide on these topics A Day in the Life of Java Code in JVM. We also have a list to help you with this which you can read through JVM Intern Working Posts.
One of my most favorite features since Java 8 is Stream API. Stream API which was added to Java 8 and has changed the way we do programs in java and how! It added neatness as well as made the program more readable. It helps you do functional programming in Java.
Whenever I see for-loops with collections in Java, I immediately try to convert it to Stream API Pipeline. This way code becomes way more readable. Just by looking at the Stream API methods, you immediately know what it is doing. Such as
map will tell us that it will convert the object into another type.
filter will carry out conditions on the object. And
collect(toList()) will give us the
I have written a post on the same Stream API: The Hero Without a Cape.
As a Java Developer, Spring Framework is an Achievement you have to unlock no matter what. A Java developer is not complete without knowing Spring Framework. Nowadays, the syllabus is that you first learn Java, then Advance Java (Collection, Thread, JDBC, etc) and then,
Servlet and JSP Spring Boot.
If you want to land a job as a Java Developer quickly, Spring Boot (or Framework) is a must-have skill. Learn about Spring Web, JPA, and especially Security. I mean go one by one. It’s all Java, you just need to know annotations and some spring internal working.
For Spring REST you can start with Getting Started with Spring Boot Rest is Easy.
Tech to Learn Alongside Java
Not surprised, are you? Well, the list wouldn’t have been completed without it, so needed to add this. Ok, no satisfied with this reason? Let me explain it in more detail then.
Your Java or any application can’t store data permanently. Once the internal memory is cleared, you lose the data. That is why your application is a stateless one. Now you want to permanently store the data. You must use some kind of data storage system. SQL servers are that system. However, there are plenty of others but SQL is the most popular and widely used.
Basics of all SQL are the same i.e. DDL, DML, etc. There may be some slight difference in syntaxes though. But learning one is enough. The most famous SQL Servers are Mysql and Postgres.
For Java developers, you can optimize your JDBC code with these tricks: How to Achieve Greatness in JDBC Performance
Be it NodeJS application or Spring Boot Server, everything should be containerized in modern application development. Docker is a popular choice to containerize your application. I won’t go into too much detail about containerization, but the short explanation is that it creates a runnable image that contains everything you need to run your application. This way, there are no more “It works on my machine” excuses. If the Docker Image runs in your machine, it will run in another person’s machine the same way( on docker).
It’s easy to learn docker, no rocket science there. It has become mandatory for the new projects as it helps in CI & CD pipeline greatly. Let me know if you guys want me to write a post about it in the comment.
Linux and Shell Script
You don’t have to be an expert in Linux or shell script, but you should know the basics. You should know some basic Linux commands, the directory structure of Linux, etc. The shell script is a must-know next step after learning Linux.
Linux is everywhere. To run the server Linux is the primary choice. And the shell script helps us to write a code-like program to manipulate the Linux System and automate our tasks.
If you want to start learning, I would suggest using WSL if on Windows or using VirtualBox for MacOs. Though MacOs terminal will be enough for you to learn the basic commands and shellscript as it’s mostly similar.
We have written some advantages of Linux on Why Developers Love Linux and Its Distributions.
GitHub Actions or GitLab Pipeline
CI & CD is a new norm in development. Its quick response to any change in the system has made it more powerful. Once you change something in your code then CI & CD, if built properly, will test, build and deploy the changes automatically. And if something fails it will notify you immediately.
GitHub Actions or GitLab Pipeline are the tools for your Ci & CD pipeline. As the name suggests both are different as their underlying platforms are different, GitHub and Gitlab. But the basic principle is the same. A commit will trigger the pipeline which may consist of many jobs in some order. The next job runs only after the previous one is completed successfully. The structure of this pipeline and what to do in each job is defined in the GitHub Action files i.e
.github/workflows or GitLab pipeline file i.e
Now what to learn is purely depends on you. If you mostly use GitHub then learn the Action first. If you work heavily in GitLab then learn the Pipeline first. But give both of them a go as it’s mostly similar once you understand the logic behind it.
AWS or Any Cloud Platform
Cloud is the current and Next Big thing. From our notes to our images and documents, everything is on the cloud nowadays. This thing has to be on your list. AWS, Microsoft Azure, Google Cloud, etc are popular cloud platforms. As a developer, you must know about cloud computing. No, not every cloud provider’s platform, but at least one of them. AWS is the most famous one so you can start with it.
In AWS you should know the AWS console, IAM roles, EC2 instances, S3, and AWS CLI. There are countless other services provided by AWS, but at least start with these. Learn how these cloud providers work and how you can deploy your application on these servers. As for myself, I am still learning it.
Coclusion for Tech to Learn in 2022
That’s it for this post. To be honest, I know that list is somewhat incomplete, but I wanted to add the most widely used tech. The new technologies will keep coming up. The new tech will either replace the existing one or enhance them. But for now, these are enough for you to land a job as a Java developer or any developer for that case.
But if you know all these and you are at an intermediate level, learn Kubernetes. You can expand your horizon in different stacks altogether, such as NodeJs, Python, machine learning. Do learn the AWS lambda, Splunk or Datadog, Microservices architecture, Terraform, etc.
See you in the next post. HAKUNA MATATA!!!