Is Java a good choice if you want to become a software engineer in 2022? Introduction to Java backend development course


This article is meant to be the beginning of a Java backend development course. But before you start learning Java I’d like to give you a quick introduction to help you figure out what is Java, how is it used, and how to decide if this language is the right choice for you.

My name is Alex and I’m a Java developer. I started to learn Java when I was 32 and got my first job after 14 months. My goal is to share my experience and help Java beginners and people who want to switch from other areas to software development.

What is Java?

In short, Java is a versatile, powerful, very popular programming language. It was made to be easy to learn and in my opinion, it is still quite easy to learn in comparison with other programming languages. I mean some modern programming languages fixed several issues of Java and introduced several enhancements, but it is not a great difference.

Java is a general-purpose language, which means that it can be used in many different ways. But there are definitely fields where Java is programming language number one and areas where Java is used quite rarely.

So where Java is used the most? The answer is backend development.

What is backend development?

A simple answer is backend is a logic of a website or a web service, everything that happens under the hood.
Every website has a frontend and a backend.
In modern websites, the frontend is often a separate application. You as a user interact with this application in your browser.

All buttons, menus, maps, and text boxes where you type text are the responsibility of a frontend application.
Once a frontend application receives your request it can call a backend application to prepare an answer for you.
So, a frontend application sends a message to the backend application. This message may contain all information that describes your request.

As an example, let’s consider a case when you want to open a bank account.
You open a bank website and find a page where you can create an application for opening a bank account.
You fill in some forms and provide information such as your full name, your id number, maybe your address, things like that.

The frontend prepares a message for the backend application. This message contains all the important information you provided. Finally, a frontend application sends this message as a request to the backend application.

A backend application is running on a server all the time to receive requests and sent answers.

If it receives a request from a frontend application it invokes internal services that analyze your personal data, makes automatic security checks, and check many conditions to decide if it can approve the opening of an account or not.

The backend application will interact with the database and other backend applications to prepare and gather data.

Once all this information is collected, the backend sends a message with this information to a frontend application. A frontend application after that can show this data in a pretty user interface.

A backend system may have complex architecture. One backend system may contain many applications, and each of them may be responsible for a specific job.

So as a backend developer, you may work on a component of a backend system, and It is not necessary that these components interact with a fronend. Many of them might interact only with each other.

As a backend developer, you will work with the logic of websites, you will spend a lot of time thinking about how to process data, and often this data you will see in the terminal in raw form. You will understand how web services work under the hood and you will be able to create your own web service with unique behavior.

Which programming languages are used for the backend?

Now, we know that Java is mostly used for backend and we have an overview of what the backend is. To understand the place of Java in the list of backend languages let’s take a look at the most popular of them.

The most popular programming languages that are used to build backend systems are Java, C#, Go, and sometimes C++.
There are also some modern and good programming languages like Scala, and Kotlin. But they are way less popular than Java and C#.

Python, JavaScript, and PHP are also used for the backend, but when systems are smaller. Python and JavaScript are rarely used for backend in bank systems, insurance companies, and other enterprise companies. PHP is a good choice for simple websites, but not for complex systems.

Where Java is also used?

Of course, Java is used not only as a language for the backend. I provide a list of fields where Java is utilized.

Very popular technologies:

  • Web servers – Tomcat, IBM WebSphere, Glass Fish, Netty
  • Frameworks – Spring Framework, Jakarta EE, Micronaut, Vert.X, Helidon, Quarkus
  • Search engines – Elasticsearch
  • Databases – Cassandra, Redis, H2
  • Message brokers – Kafka, ActiveMQ
  • Development Tools – Integrated development environments (IDE – code editor for programmers), Jenkins, Maven;
  • Distributed systems – Hadoop, Hazelcast, GridGain

Less popular use cases:

  • Android Mobile applications – a lot of Android apps are developed on Java, which is officially not Java. New apps are built on Kotlin.
  • Desktop applications – rarely used. Examples: IDEs – Intellij Idea, Eclipse, NetBeans; DBeaver (Database tool), Yourkit (Java profiler).
  • Games – rarely used. The most popular is Minecraft;

Many famous web servers used in the backend – Tomcat, Netty, IBM WebSphere, GlassFish are built in Java.
If you are not familiar with the term web server is software that makes it possible to interact with an application via HTTP protocol. When you open a website in a browser your browser sends an HTTP get request to the server where a web application is running. A web server is a part of a backend system.

Java is also the main language for a list of widely used traditional and modern web frameworks. This list includes Spring, Jakarta EE, modern frameworks Micronaut, Spring WebFlux, Quarkus.

A lot of other great backend tools are built in Java.
Famous search engine Elastic Search, solution for caching – Redis, databases H2 and Cassandra, message brokers ActiveMQ and Kafka, and many more other tools that thousands of developers use are built in Java.

Java can be used to build desktop applications but rarely. Integrated development environments or IDEs for Java development is good examples of Java applications for the desktop. IDEs are editors for writing code. The most famous of them developed in Java are Intellij IDEA and Eclipse.

The next group of systems where Java is used are distributed systems – Hadoop, Hazelcast, and GridGain.
They are powerful tools for processing and analyzing Big Data on a cluster of computers.

By the way, tools like Hadoop, Cassandra, and Kafka are often used by Data engineers. So, companies who work with Big Data are looking for data engineers are also looking for those who know Java.

Many people also know that Java was used in Android development. Officially it is not exactly Java, but yes it’s hard to see the difference. Anyway, as I know, for modern Android apps Kotlin is the preferred language. But many old android applications are still written in Java.

You may also hear about some use cases where Java was used for game development. But it is not the best practice. The only famous game that I can mention is Minecraft.

Is it worth it to learn Java now? Let’s check some ratings

Is it worth it to learn Java now?
The first question you may ask me is “Alex, wait a minute. What is the reason to learn Java now? Maybe this language is too old? Maybe it is dying?”
The short answer is:
No, it is not drying at all. And yes, it is worth learning Java as it is one of the most popular programming languages. There are hundreds of thousands if not millions of open Java developers positions around the globe. Learn what kinds of jobs are available for Java developers, which projects are developed on Java, and if it is interesting for you – go ahead and learn Java and you will find a job.

You can check some popular ratings.
For example, TIOBE Index in 2022 shows that Java holds third place in the rating of most popular programming languages. The first place holds Python and the second place is C.

This rating is mostly based on search results. It means that if Visual Basic has more search results than JavaScript it holds a higher place in the rating. It is a bit weird because obviously, JavaScript is way more popular than outdated Visual Basic.

Python is on the top.
And as I said before I wouldn’t compare Python and Java just because they are different groups of languages.
Python and JavaScript are dynamically typed while Java and C# are statically typed.

And yes Python is used for the backend, but for big and complex systems like fintech systems, streaming platforms, and insurance the preferred choice is statically typed languages.

The second place – C language is used for tools, operating systems, and embedded systems. Buy the way some key components of Java are built in C. But it is hard to imagine that C is used for the backend, for bank systems for example.

So, If we speak about backend for finance companies or just big backend applications we can say that Java is the most popular in this rating. We can compare Java here with languages like C#, Scala, Kotlin, and maybe C++. But notice that in 2022 Scala and Kotlin are even not in the top 20 languages.

You can also check the PYPL index. There Java holds second place in 2022.
This rating is also based on the number of search results.

The interesting one is the Stackoverflow rating.
This rating is based on the number of questions on stackoverflow.com in the month.

Here you can see that for the big backend Java is a winner. But the difference with C# is not so big. That is for sure your choose which language to learn to become a backend developer, consider one of them – Java or C#. Both are great.

What is interesting is if we take a look at the full list of languages from TIOBE Index we can see that Python takes the first place, JavaScript holds the second place and Java and C# are the third and fourth places.

Some advantages of Java

  • High demand
  • Constantly updated
  • Backward Compatability
  • Platform independence
  • Fast enough
  • Statically typed
  • Secured
  • Easy to learn (compared to C++, C, and Scala)
  • A big number of libraries

On this list, you can see some of Java’s strengths.
First of all, it is really in high demand which is of course very important when you want to find your first job.

Java is constantly updated. New versions are introduced every half a year.
But all these changes are compatible with old code because backward compatibility was always very important for Java developers.
Platform independence means that libraries that Java developers use work great on all operating systems. Libraries and frameworks are compiled into platform-independent class files and developers can use them without the need to recompile the source code.
Java is fast enough. If we compare Java with C, C++, and Rust, we can say that Java is slower than these low-level languages. But it would be super hard, long, and expensive to develop backend systems with these languages. This is why C and Rust are used for other things. C++ is sometimes used in the backend, but not often.
If we compare Java with dynamically typed languages like Python and JavaScript, Java is definitely faster.
And last few years a lot of work was done to make Java startup time faster. So, modern versions of Java are faster which is great for microservices.

Java is statically typed. It means that when a line of code is written it is clear which type it has, and other lines of code cannot change its type. Type may be text, one of numeric type – things like that. And it is a huge advantage for a complex backend. Dynamically typed languages are prone to bugs. When your application is big and complex it may be extremely difficult to catch all these bugs. In the case of Java, many bugs will be caught in compile time. And it helps a lot.

Also, the great advantage is that modern code editors, or IDEs, like IntelliJ IDEA, can spot many problems when you just write code. Many of these checks, as well as autocompletion and shortcuts, are possible only with statically typed language.

Java is secure if we compare it with C and C++ for example for a number of reasons. Some of them are – Java apps run inside Java Virtual Machine or JVM and JVM makes sure that your program doesn’t damage your hardware. JVM also manages memory and it is much more secure than using direct access to the memory as it is done in C++.

Java ecosystem has an enormous amount of libraries. For many many use cases, you can find a solution that is already written.

Short History of Java

Let’s spend just two minutes talking about the history of Java.

  • Sun Microsystems started to develop Java in 1991. The most important people on the development team were James Gosling, Mike Sheridan, and Patric Naughton. Gosling is the author of several famous books about Java, so you will hear that name again.
  • Java was developed as an evolution of C/C++.
  • It was built as a general-purpose language, which means that it is possible to write almost everything on Java, but of course, some things work great on Java, and some do not.
  • The first release was introduced in 1996;
  • In 2010 Oracle acquired Sun Microsystems. So now the Java trademark belongs to Oracle.
  • In 2007 OpenJDK was introduced. OpenJDK is an entirely free version of Java with open source code. So you can download the source code of OpenJDK from Github and explore how it is built under the hood.
  • Last several years new versions of Java are introduced every 6 months. Often new versions have minor changes.
  • Long-Term Support or LTS versions are versions that are updated longer than other versions. What does it mean? Let’s say today’s last version is Java SE 19. If a big problem is found in Java SE 19, for example in security, an update would be introduced not only for Java SE 19, but also for Java SE 17, which is an LTS version, released in 2021.

Now you have a high-level understanding of what is Java, which place it holds in a list of popular programming languages, and how is it used. Hopefully, it will help you to make a decision if you want to invest your time in learning this language or not.
If this article was helpful consider sharing it on your social media.

See you in the next articles.

Alex Nikiforov

Hi! I'm a full-time Java developer in a fintech company. I am a self-taught developer and I got my first job as Java Developer in 2021.

You may also like...