Friday, November 1, 2019

10 Books Every Java Programmer Should Read - Best of Lot, Must Read

If you are a Java programmer and wondering what to read to improve your knowledge of Java and become a better Java developer, then you have come to the right place. In this article, I am going to share some of the best Java books ever written. In fact, this is my list of all-time great Java books. They have withstood the test of time and emerges as more and more successful years after years. It doesn't matter if you read them this year or reading them next year, you are always going to learn a lot, and that's why I call them all-time great books.

Personally, I am a big fan of reading books and have been reading books for a long time. I have hundreds of books and eBooks in my library. When I was a kid, I read a lot of comics, Super Commando Dhruv was my favorite character because of the scientific theme in his story and how he usually defeats his more powerful enemies by his brain, acumen and simple knowledge of scientific facts.

My passion for books continued when I became a programmer until then. I really just know about textbooks in college. The first Java book, apart from the textbook I read, was Head First Design Pattern, and it completely changed my knowledge of Java and my understanding of Object-Oriented Programming.

Until then I didn't know what is the real use of the interface, to me they look like useless because you can't write code to do anything there. But, after reading the book, I realize how awesome they are in terms of reducing the coupling between different parts of your program.

From that point, I have read many programming books, mostly related to Java, and today, I am going to share 10 best Java books every Java developer should read. They are evergreen and all-time great. Even if some knowledge is out-dated, most of the stuff you learn will help you a long time in your career.




10 Best Books Every Java Developer Should Read

Without any further ado, here is my list of some of the most popular and essential books for Java programmers. If you have been a Java programmer for 2 to 3 years, it's a good chance that you have read these books already, but if you haven't now is the best time to read them. I am sure you will not regret investing time and money on these books.


1. Test-Driven

Automation testing is an important skill, and for developers, it all starts with unit testing. Java has been blessed that it has JUnit from the start, but just knowing the library doesn't make you a professional programmer who writes tests.

It takes much more than knowing a unit testing library like JUnit or Mockito, and that's where this book helps.

If you are serious about code quality and writing unit, integration, and automation test, this is the book to read in 2020 and if you need some more help and active learning, you can also join Learn TDD in 24 hours course on Udemy to get the best of both world.



2. Effective Java

There should not be any surprise here; the Effective Java by Joshua Bloch is hands down the best Java book ever. A definite must read the book for Java programmers of any level of experience. You will learn so much about Java and its API, then you won't imagine.

The fact that Joshua Bloch himself is the author of several key Java classes and API, like java.lang and Java Collection framework itself, is enough to read this book, but his style is also impressive.

You can read this book on a beach, or while traveling, or just at your desk. It's simply awesome. There is no doubt that you would emerge as a better Java programmer after reading this book. Btw, if you are a beginner, I also suggest you join The Complete Java Masterclass by Tim Buchalaka on Udemy, a perfect course to fill gaps in your Java knowledge.




And the best thing is that a new edition of Effective Java is available now, which covers Java 7, 8, and 9. There can't be a better time to read this book.



3. Head First Object-Oriented Analysis and Design

Another Head First title, in the list of all-time great Java books. Yup, they are simply awesome, well I did find them impressive.

This book forms a trilogy of Head Fist books for Java programmers, like Head First Java, Head First Design Patterns, and Head First OOAD.

It actually complements Head First Design Patterns by explaining techniques of object-oriented programming and design. The most crucial technique which I learn from this book was coding for interfaces and encapsulate what changes. They simply changed how I write Java code.

If you are keen to learn Design Patterns and develop the coding sense which actively helps you to choose the right pattern while coding, I also suggest you go through The Design Pattern library course on Pluralsight. It's an awesome course and helps you better understand these patterns.




4. Java Concurrency in Practice

Multithreading and Concurrency is an essential part of Java programming, and there is no better book than Brian Goetz's Java Concurrency in Practice to learn and master this tricky topic.

Even though the book covers only Java 5, it's still relevant, and a must-read book for any serious Java developer.

Some of you may find some of the sections a bit difficult to understand, especially sections 3.5.1 through 3.5.6, And if that's the case, I suggest you go through  Extreme Java - Concurrency Performance Course by Dr. Heinz Kabutz, which will help you to digest those topics better.






5. Head First Design Patterns

Good knowledge of OOP and design patterns are essential for writing Java application, and this is the best book to learn that.

As I have said before, this was one of the first books I read on Java, apart from textbooks, and I was very impressed. This is the book, which taught me why Composition is better than Inheritance and how you can change the runtime behavior of a class without touching the already tried and tested code.

You might think it's another old book, but you don't need to worry; an updated copy that covers Java SE 8 was released a couple of years ago.

If you are serious about learning design patterns in Java, this is the book you should read.





6. Spring in Action

Sorry, but I have to include one Spring book in this list of classic books for Java programmers. Spring is the most popular Java framework ever, and this is the best book to learn Spring framework, but to be honest, this book is much more than a Spring book.

After reading the 5th Edition of this book, I realized so much about Java and writing better code that I can't explain.

The books take a topic, like JDBC, and explain where JDK went wrong and how Spring corrects that mistake, e.g. SQLException, a one-size-fits-all exception that says something is wrong but not exactly what is wrong and how to deal with that.

Like Josuha Bloch, Uncle Bob, Craig Walls also is a great author, and you will learn much more than Spring by reading his book.






7. The Definitive Guide to Java Performance

Another aspect of becoming a better Java developer is knowing about JVM, Garbage collection, and Performance tuning, and though there have been several good books on this topic, like Java Performance by Binu John and Charlie Hunt, The Definitive Guide of Java Performance by Scott Oaks is my favorite.

Even though it covers until JDK 7, you will learn a lot about performance tuning and JVM in general, which totally justify the time and money you spent on this book.




8. Head First Java

How many of you have started learning Java reading this book? Well, I do. Just after I come to know about Head First Design Pattern, I also found this book and I really enjoyed reading it. I learned a lot of Java concepts by reading this book, and many of my misconceptions are also corrected.

Though many feel this is an out-of-date book now, given it's released a long back and cover only Java 5, I still think its an excellent book for anyone just starting with Java because of unique style and content.

You can quickly learn about Java 8, Java 9, and Java 10 changes on other versions once you know Java by reading this book.







9. Java: A Beginner's Guide

If you ever need a comprehensive Java book, this should be it. Even though the title says Java: A Beginner's Guide, it's one of the most complete books to learn Java.

Sir Herbert Schildt has also done a commendable job in keeping the book up-to-date, like. the 8th Edition of this book now covers Java 10.

Though, I don't know how he is going to keep this book up-to-date going forward, given Java's new 6-month release cycle, which started with Java 10.




10. Clean Code

This is another timeless classic book for Java programmers. As the title suggests, it teaches you to write better code, which is so so difficult thing to learn. To be honest, it's easy to learn Java but challenging to write better Java code, which uses strong OOP principles, and that's where this book helps.

Similar to Joshua Bloch, Robert C. Martin, or Uncle Bob, is an excellent author and shares a lot of his experience as a software developer to teach you programming techniques and practices, which helps a lot in your day to day job as a programmer.




That's all about some of the classic best books for Java programmers, my all-time best list. If you are a passionate Java programmer, there is a good chance that you have already read most of these books, but if you haven't, then 2019 may be just the right time to read these books. They are absolutely awesome. You can choose the latest version of the text wherever possible, like Effective Java 3rd Edition or 8th Edition of Java A Beginner's Guide.


Other Java Articles you may like
The 2019 Java Developer RoadMap
10 Things Java and Web Developer Should Learn in 2019
The 2019 DevOps Developer RoadMap
5 Courses to Learn Big Data and Apache Spark in Java
5 Frameworks Java Developers Should Learn in 2019
Finally, Java has var to declare Local Variables
10 Free Courses to learn Jenkins, Maven, and Docker
10 Books Every Java Programmer Should Read in 2019
10 Testing Tools Java Developers Should Know
10 Tools Java Developers uses in their day-to-day work
10 Tips to become a better Java Developer in 2019

Thanks for reading this article so far. If you find these classic Java books useful, please share it with your friends and colleagues on Facebook and Linkedin. If you have any questions, suggestions, or feedback, please drop a note.

P. S. - If you are looking for some courses to learn Java in-depth, check out this list of Top 10 Java Courses for both beginners and intermediate developers on Medium. It contains courses to learn Java from scratch as well as master useful topics like Collections, Concurrency, and JVM internals.

1 comment :

Unknown said...

Out of three or four Java beginner books, I've personally enjoyed Core Java Vol I-II (by Horstmann) the most. I like the style of the book, it's both practical and easy to follow. At least for me, anyway:)
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, as it had helped me.

Post a Comment