Saturday, June 9, 2018

10 All-Time Great Books for Java Programmers - 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 popular years after years. It doesn't matter if you read them in 2018 or reading them in 2019, 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 eBook 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 continues when I became a programmer until then I really just know about textbook 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 book 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 All-Time Great Books for Java Programmers

Without any further ado, here is my list of some of the most popular and important books for Java programmers. If you have been Java programmer for 2 to 3 years, it's a good chance that you have read these book 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. Effective Java
There should not be any surprise here, The Effective Java by Joshua Bloch is hands down 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 e.g. java.lang and Java Collection framework itself is enough to read this book, but his style is also awesome.

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 better Java programmer after reading this book.

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.

2. 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 difficult 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.

3. 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 books 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.

4. Head First Design Patterns
A good knowledge of OOP and design patterns are important 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 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 which 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.

5. 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 4th Edition of this book I realized so much about Java and writing better code that I can't explain.

The books take a topic e.g. JDBC and explain where JDK went wrong and how Spring corrects that mistake e.g. SQLException, a one-size-fits-all exception which 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.

6. 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 start but just knowing the library doesn't make you a professional programmer who write 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 2018.

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 e.g. 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 its released a long back and cover only Java 5, I still feel its a great book for anyone just starting with Java because of unique style and content.

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

9. 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 awesome.

This book forms a trilogy of Head Fist book for Java programmers i.e. 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 important technique which I learn from this book was coding for interfaces and encapsulate what changes. They simply changed how I write Java code.

10. 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 e.g. the 7th Edition of this book now covers Java 9.

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.

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 2018 may be just the right time to read these books. They are absolutely awesome. You can choose the latest version of the book wherever possible e.g. Effective Java 3rd Edition or 7th Edition of Java A Beginner's Guide.

Other Java Articles you may like
10 Things Java and Web Developer Should Learn in 2018
5 Courses to Learn Big Data and Apache Spark in Java
5 Frameworks Java Developers Should Learn in 2018
Finally, Java has var to declare Local Variables
10 Books Every Java Programmer Should Read in 2018
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 2018

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

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