4 Books to learn Java Programming from Scratch in 2020 - Best of lot

I receive half a dozen emails every day asking about which is the best to learn Java from scratch? Which book should I read in 2020 to learn Java? Or Which is the best Java for beginners? When I receive such an email, before giving my recommendation, I ask two questions, first do you have any programming experience? like, Are you coming from C, C++, or Python background? Or you are a fresher with no experience in programming, just a couple of classes on data structure and algorithm and operating system in college.

If the guy some prior experience, I recommend him a book like Core Java for the Impatient, which teaches basics of Java programming language and API and also how to use Java in the right way.

But if he doesn't have any programming experience, I usually ask him to first read the Head First Programming before suggesting them to read any Java book. Why? Because before learning Java, you must know what is programming.

If you don't know anything about variable, function, loop, if-else block, or switch statements, it's difficult to learn Java. In this article, I'll recommend what I think is the best book to learn Java from scratch in 2020, where Java 13 has gained a lot of paces, and push for Java 14 has already started.

I will only recommend the book, which I found, both interesting to read, informative, and thorough, also keeping in mind that you know the little bit of programming.

All the books I recommend covers Java 8, except Head First Java, which has not updated for a long time but still good enough to teach you basics of Java given its unique style of teaching. Btw, if you prefer online courses, then The Complete Java MasterClass on Udemy is also an excellent place to start with.

Top 4 Books to Learn Java Programming in 2020

Here is my list of some of the best books to learn core Java from scratch in 2020. These books also cover Java SE 9, 10, 11, 12, 13, and 14 the more recent versions of Java.

Of course, it's not possible anymore for a book to cover the latest Java version as a new version is coming out every 3 months, which is a short time to update a paper. Btw, courses have done well to update themselves like The Complete Java MasterClass was recently updated for Java 12.

I have include books which you can read quickly to gain knowledge, like the first book as well as books which can provide you comprehensive learning of Java and its different API, the second book.

1. Modern Java in Action

This is the revised version of Manning's best selling "Java 8 in Action" book to cover new features of the latest Java versions like Java 9 and Java 10.

This is not a book to learn from scratch but it is the best book to build on your existing Java skills with the newest features and techniques.  The best use of this book is to combine this with a resource which provides a comprehensive introduction of Java-like The Complete Java Masterclass course on Udemy

best book to learn Java 9 and Java10

2. Core Java Volume 1 and 2

This is another excellent book from Cay S. Horstmann and the second-best book to learn Java for beginners. This is the ideal book for any C or C++ programmer who wants to learn Java.

The author often correlated the C++ concept with Java, like he talks about how the constructor is different in C++ and Java. How Generic and Template are similar but different, and so on.

This comparative analysis takes advantage of a prior knowledge a C or C++ programmer has to explain new concepts in Java. Though this book is not limited to the C++ programmer.

Even if you don't know C++, you can benefit from this book.

best core java book 2019

There is also the second part of this Core Java Volume 2 - Advanced Features, which covers the more advanced topic in Java, like JDBC, XML processing, JSON, Annotations, etc.

The current edition, 10th Edition of this book, covers Java SE 8, but 11th Edition is on the way, which will also include Java SE 9 and hopefully Java 10 and 11.

3. Head First Java

This book is the best beginner's Java book of the last decade. It still a great book but desperately needs the 3rd edition to convert Java SE 8.

The Head First Java only covers up to Java 1.5, which is more than 12 years old now, and Java has changed a lot starting from Java SE 8.

Then why I still recommend Head First Java to beginners? Well, because of its unique style and presentation.

best book to learn core Java from scratch

The Head fist style works best for beginners, and thanks to Java's backward compatibility, there is no significant change in fundamentals.

So, even if you learn Java by reading this book, you are still in good shape. You can later read a book like Java SE 8 for Really Impatient to learn Java 8.

4. Core Java SE 9 For Impatient

This is no doubt the best book to learn Java for beginners in 2020. I am a big fan of Cay S. Horstmann, who has that unique skill of explaining complex concepts in the easiest way possible.

This book covers Java SE 9 and structured in a charming way to allow a beginner to learn a concept at his own pace.

There are many things I like about this book, like the way it explains concepts, the way it explains tools of concurrency before explaining low-level details like wait, notify, and synchronization, which beginners often struggle to understand.

If you want, you can also combine this book with the Pluralsight's Java Fundamentals: The Java Language course, I have suggested this to many of my readers and they said they learned better.

3 Books to learn Java from Scratch in 2019 - Best of Lot Must Read

It's also the most popular book on Java in the market.

In short, if you want to learn Java from scratch in 2020, just buy Core Java SE 9 for Impatient. It's worth every single penny you spend.

That's all about the 3 best books to learn Java from scratch. There are many other titles available, but with my 10+ years of experience, I have found these three books, the best Java resource, especially in 2020. You should also try and learn Java SE 8 because it will be the way Java code will be written in the coming decade. You can also explore new features of Java SE 9, like . modules and API enhancements, to keep yourself up-to-date.

Further Learning
Btw, if you are intermediate Java developer and wants to become an expert Java programmer, you can always refer my recommendation for advanced Java developers below:
Thanks for reading this article so far. If you like these books, then please share with your friends and colleagues. If you have any questions or feedback, then please drop a note.

P.S. - If you prefer to learn from an online course and looking for some free resources to kickstart your journey, you can also check out this list of 10 free Java Courses for Beginners on Medium. It's an excellent resource for beginners looking to learn Java.


  1. As a beginner, I searched for such lists all over the internet and most seem to repeat the same books.
    I've personally tried reading Head First Java, Thinking in Java (Eckel) and Core Java Vol I-II (Horstmann) and I must admit that only Core Java by Horstmann has struck the right balance of theory and style so far.
    If it helps any other beginners on here, I came across a very good list of best books to learn Java. Hope it helps you too.