Want to outdo professional Java developers? Roadmap for learning Java in 2023

Java is such a popular and developed language that there is more than enough content on any topic related to it. Whether it’s technical discussions, reviews of popular open source libraries, articles about finding a job as a Java programmer, comparison with other languages, you can’t count them all. A Google search for “java” gave me about 1,56,00,00,000 (?) results.

A colossal overabundance of java content

A colossal overabundance of java content

What this article is NOT

The subcategory prevailing on the Internet is content for beginners. That is, books for learning java. Or, which is an order of magnitude more, articles with the title “Resources for learning Java.” In no way am I discrediting them. On the contrary, I believe that reading books is one of the best ways to study any programming language in a structured and sufficiently deep way. But these kinds of articles basically offer the student a random selection of books, with no regard for the order in which they should be read.

I also ask you not to confuse this article with those that have the words “Java” and “roadmap” in the title, but go into the list of all existing technologies. Or with those that describe every language construct in too much detail.

Students can drown in an ocean of “Java learning content”.

You may already know from my previous articles that I advocate for people to take the time to study the material in depth and achieve a good level of competence in it. And I also insist that in order to develop your professional qualities to such a level, you need to devote a lot of time to training. This article is also not another random collection of resources, it is a very specific roadmap for mastering the language to the level of a developer with 6-7 years of experience. However, to become as strong as a developer, you definitely need to dedicate time (at least a year) to learn something properly. Therefore, I strongly recommend that you do not allow yourself to waste the precious time needed for meaningful learning by “learning by necessity” or by doing “training on the job”. Let’s stop pretending that we can work and study at the same time. So here is the complete roadmap. Follow it, and with the tips at the end, you’ll have everything you need to become a Java pro in 1/5 of the time it takes other developers.

road map

TL;DR – short version

Below I will list a number of resources along with a description of their content. But by and large, the Java learning process is divided into 3 phases: Java fundamentals, design patterns, and Java performance.

Java learning roadmap

Java learning roadmap

And now let’s move on to the list of books from which, in fact, this roadmap is formed.

Language Basics

  1. Java. The Pro’s Library, Volume I & II, by Cay Horstmann (Core Java, Cay Horstmann)

These books can be bought on Amazon (Core Java Volume 1) And (Core Java Volume 2):

By reading these books cover to cover, you will have a very good idea of ​​the language landscape. For a book that covers such a vast area, the explanations are quite accessible. It also reveals the nuances of language constructions and pitfalls quite well. These books are filled with code examples, and the great thing is that the author made sure that this code was something more than a simple demonstration of how a language feature works. These examples almost always demonstrate how a given feature applies to a real use case. Finally, these books talk not only about the language, but also about the libraries associated with it, and what you can do with java in general (especially in the second volume).

2. Java. Effective Programming, Joshua Bloch (Effective Java, Joshua Bloch)

This book can be bought Here. This book is about using efficient and practical constructs in Java to perform certain types of tasks that come up quite often while working. It also explains why the particular way they use to accomplish a task is the best, and why other ways don’t work as well.

Reading and practicing the contents of the two books mentioned above will help to solidify the syntax, the most effective idioms and usage patterns in your memory. The main thing is to read, practice and reason. By this point, you should already be able to think of Java as your own language. There is another good book for deep learning about one of the most difficult topics in Java, namely concurrency.

3. Java Concurrency in Practice by Brian Goetz

This book can be bought Here. This book details Java’s concurrency constructs and clears up a lot of the misconceptions people tend to have about how threads and concurrency work in Java. Reading this book probably won’t make you feel like concurrency is easy, but you’ll get a crystal clear idea of ​​what exactly happens when you use concurrency objects in one way or another. In addition, it demonstrates the correct way to implement some popular types of tasks that involve parallelism.

If you doubt that this book can still be useful for you, despite the fact that it is already quite old, I recommend that you read this fast.

At this point, you should already be a Java developer with 3 years of experience.

Well, you have almost completely understood the Java language and its use for solving various problems. It’s time to move on to learning design patterns in java. So far, you’ve only learned idioms, but now you need to learn how to organize Java entities (classes, objects, interfaces, etc.) in a way that makes the program flexible and readable. The official term interviewers use to test your skills in this area is LLD (low level design).

LLD

This part is entirely dedicated to LLD (Low Level Design). To study this area, I would recommend the following books to you. Partly because they’re looking at LLD as applied to Java:

  1. Object Oriented Analysis and Design by Brett D. McLaughlin, David West and Gary Pollis (Head First Object-Oriented Analysis and Design, Brett D. McLaughlin, David West and Gary Pollice)

You can buy Here. This book is about the PRINCIPLES of developing good Java programs. Like all Head First books, it is written in very clear and easy to understand language. The authors try to use several means at once to explain the concept so that it is as well as possible absorbed by consciousness. Don’t skip this book, as it will prepare you well for learning the design patterns that you should learn in the next book.

2. Design Patterns, Erich Gamma

You can buy this book Here. This is exactly the kind of book you should use to learn design patterns. It covers all the main patterns in detail. However, it is definitely not designed for beginners. This is where this book comes in handy. In the same book, patterns and their applications are presented in an encyclopedic format. In addition, the examples are written in a language called Smalltalk. It is a pure object-oriented language, almost like Java.

The two books above will help you learn the practical skills of LLD in Java. This should give you a sense of confidence when dealing with complex technical code constructs and patterns that you may encounter in your day to day work. In addition, you will be able to apply the learned patterns to new tasks that arise in front of you at work.

At this point, you should already be a Java developer with 4 years of experience.

Java Performance

Now it’s time to deal with Java performance. This section will prepare you to understand exactly how Java works internally at the JVM level. You must learn how to optimize the performance of the JVM and design your code to be as efficient as possible. The following books will help you with this:

  1. Efficient Java. Code Tuning for Java 8, 11 and Beyond by Scott Oakes (Java Performance – In-Depth Advice for Tuning and Programming Java 8, 11, and Beyond, Scott Oaks)

You can buy this book Here. The author of this book is of the opinion that anyone who works with Java should know how code behaves in the JVM and be able to tune it to improve performance. This updated second edition provides detailed performance information for Java applications using both the JVM and the Java platform.

2. Java: program optimization. Practical Techniques for Improving Application Performance in the JVM, Benjamin Evans and James Gough (Optimizing Java: Practical Techniques for Improved Performance Tuning, Benjamin J Evans and James Gough)

You can buy this book Here. If the previous book was more about theory, this one is more about practical methods that you will use to measure and improve the performance of Java applications in your work. This guide is the “missing link” that aims to move Java performance tuning from the realm of conjecture and folklore to experimental science. You’ll learn how to consistently and systematically approach performance problems, solve performance problems in a production environment by learning about the main types of performance problems in Java, and identify and resolve performance problems before they even occur.

After completing the books in this section, you will reach the level of a Java developer with 7 years of experience!

If you have read this far, I beg you to delve into the study of Java – this will advance your work and career. Don’t settle for just the basics to work with, and overcome insecurities. I promise you that if you read these books in the order I mentioned here and practice them, you will become so good that no one can challenge your authority as a professional Java developer, wherever you work.

Congratulations, this roadmap seems to me to be able to make even a novice Java developer with the equivalent of 7-8 years of work experience in a relatively short time frame of 1.5 years. This is the average time that I estimate it would take people to learn and absorb all of the material mentioned above. And to get the level of knowledge of a person with 7 years of experience in 1.5 years is not even bad. I wish I had a roadmap like this when I first started. I couldn’t take advantage of something like this in my time, but you certainly can. So go ahead! Dare!

PS: If you’re interested in more tips on how to study technical subjects the right way, follow the links I’ve provided below. They discuss practical techniques that you can use to learn something in a way that will forever be remembered.

Detailed study of technology – part 1
Detailed study of technology – part 2
Detailed study of technology – part 3


How do Java web applications work in practice? We will discuss this topic at open lesson, which will be held as part of the Java developer specialization. Let’s talk about how modern web applications work, namely their server side. Let’s see how in practice you can create your own server application. The lesson will be especially useful for novice developers.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *