Due to popularity and extensive use, Java is still the best programming language to learn. Especially if you want to learn a programming language that is both useful in the real world and instrumental in understanding how object-oriented programming works from the ground up.
If you’re looking to study Java from scratch or improve your Java skills the selection of resources can be overwhelming. Video tutorials, text tutorials, references, online courses, and interactive apps are abundant, and many of them come with the promise of a record-fast super-easy learning experience. Most of them deliver what I perceive as an inferior result.
To me, titles like “Learn Java in a Day” sound about as effective as “Learn Dentistry in a Weekend”. Sure, you might know a thing or two after speeding through such a tutorial, but I personally wouldn’t let you anywhere near my teeth or mission-critical Java applications.
Call me old, but I still believe that books, whether printed or viewed on an e-reader, are the best resource for learning a programming language. Not only are books more comprehensive and complete than any online tutorial or app, they are usually easier on the eyes and leave less room for distractions from actual learning. Books don’t have social media app notifications popping up – an undeniably helpful feature.
I am not alone in thinking that books are superior method of self-learning. In fact, there are so many of them on Amazon alone, you can’t even load the full list as it exceeds the number of items you can fetch. Only the top 5000 appear. Since you probably don’t have the time or inclination to go over reviews for thousands of books on Java, we did the work for you.
The top eight books we’ve selected are recommended and relevant for both the complete Java newbie and the advanced Java programmer looking to hone their skills. If you are the later you might recognize books you’ve seen on the desks of coworkers or perhaps even own one or more of them yourself.
This book published by the well-known and trusted O’Reilly publishing house was the first step into Java for many programmers over the past decade. Not to be judged by its somewhat comical cover, Head First Java provides a thorough overview of OOP concepts and delves into topics like distributed computing and remote deployment.
Some may claim the fact it was published over ten years ago (and so does not make use of the latest versions of Java) makes it somewhat outdated. However, it continues to be popular thanks to its engaging story-telling, illustrations and puzzles. Some users even describe the book as “the first GUI-based technical book”.
Price: O’Reilly publishing offers a subscription service with access to several eBooks (including this one), audiobooks, training materials, and more. Subscriptions start at $39 / month. Also available on Amazon starting at $14.50.
If you’re looking for something a little more up-to-date and a lot more in-depth, you should take a look at Java: A Beginner’s Guide, Eighth Edition, written by bestselling author and leading Java authority Herbert Schildt. Updated and revised for long-term support release Java SE 11, this book is one of the most comprehensive ones out there. It manages to make for a good addition to the shelf of any experienced Java programmer, while remaining accessible to anyone with basic programming knowledge.
Price: Starts at $23.50 for a Kindle edition on Amazon.
Published by Packt, Java 9 Programming By Example is, as the name suggests, for people who like to learn from examples and can’t wait to get doing. This book attempts to bridge the gap between learning and doing by providing real-world examples that promise to improve your software development skills.
Price: the eBook is $18. If you subscribe to the Packt subscription (starts at $9.99 / month) then you get free access.
Some claim this book is a must-read for every Java developer, and previous editions of it won the Jolt award. With the book author also being the author of popular Java classes and APIs, like java.lang and Java Collection framework, it’s worth a read. Especially if you’re looking to focus on learning and applying best practices in your Java code.
Price: available for a one time payment of $35.19 for a Kindle edition or also available as part of the O’Reilly subscription.
Although somewhat outdated as it only covers Java 5, Java Concurrency in Practice is still a highly recommended resource for Java programmers looking to understand concurrency and multithreading in Java. It’s important to note that this is not an easy read, but considering how complex the topic discussed is, it actually does a fair job at explaining it in depth.
Price: Amazon has an available Kindle version for about $27.50.
One of the latest, freshest, most complete and up-to-date books on Java is without a doubt the Complete Reference by Herbert Schildt.
In over 1,000 pages from one of the best-selling authors of programming books for Java developers, you will find pretty much everything.
From a deep understanding of the entire Java language, including its syntax, keywords, and fundamental programming principles to an introduction to JShell, Java’s interactive programming tool – it really is a complete reference.
Price: 34.10 for a digital Kindle edition.
This book is for advanced Java programmers interested in learning more about how Java works with databases and vice-versa.
High-Performance Java Persistence tries to bridge the gap between application developers and database administrators, demonstrates how you can take advantage of JPA and Hibernate without compromising application performance. It also delves into jOOQ and its type-safe querying capabilities.
Price: eBooks start at $25.
The last book on our list is not a Java book, but rather one that will make your programming better regardless of what language you use.
Helping eliminate common coding errors and introducing best practices for writing good code (rather than just code that runs), Clean Code is a book highly recommended for anyone who wants to move up in the programming world.
Oh no! How could we leave out [insert your favorite book for learning Java here]? You’re more than welcome to educate us in the comments. Which book do you think every Java programmer should learn from?