Sunday, January 6, 2013

Top 9 Java Programming Books - Best of lot, Must Read

These top Java programming books are some of the good Java books and I would say best of them all. Whenever a programmer starts learning the Java first question he asks is "Which book should I refer to learn Java?", That itself says, how important Java books are for programmers especially beginners. Despite having so much free resource available in Java like tutorials, tips, blogs and code examples, Java books has there own place because of two reason :
  • They are written by programmers who are authority in subject
  • They cover the subject with more details and explanation.
These Java books are my personal favorites and whenever I get some time I prefer to read them to refresh my knowledge. Though I have read many of them already, like I have read Effective Java almost 3 to 4 times, I  have always learned something new. They are kind of best Java books available today and equally useful for beginners, experienced and advanced Java programmer. It doesn't matter whether you are completely new in Java or doing Java programming for 5 years, you will definitely learn lot of new things by going through this book. Having said that not all book is equally suitable for all programmers, for Java beginners, Head First Java should be the first book and for advanced Java developer, Effective Java should be the first book.

9 Books Every Java Developer Should Read

Here is my collection of Java books, which I suggest to every programmer who wants to learn Java. If you have some programming experience like in C and C++ and starting fresh in Java, start with Head First Java. If you want to master art of multi-threading and concurrency, pick Java Concurrency in Practice and if you want to master everything about Java, buy Effective Java. 

1) Head First Java

Head First Java is the best Java book for any programmer who are new in both programming and Java. The head first way of explanation is quite a phenomena and I really enjoyed whenever I read there books. I found them most interesting Java programming books for beginners but they are equally good for intermediate as well. Head first Java covers essential Java programming knowledge about class, object, Thread, Collection, language feature like Generics, Enum, variable arguments or auto-boxing etc. They also has some advanced section on Swing, networking and Java IO which makes them complete package for Java beginners. This should be your first Java book if you are learning from scratch. 
Best book to start learning Java programming

2) Head First Design Pattern

Head First Design Pattern is another top class Java book from Head First lab, I guess, this is so far there best title. When I started reading this book back in 2006, I didn't much about design patterns in Java , how they solve common problems, how to apply design pattern, what benefits they provide and all sort of basic things but after reading this Java book I benefited immensely. There is first chapter on Inheritance and Composition, which is simply fantastic and promote best practices by first introducing problem and then solution. They also have lots of bullet points, exercises, memory maps which help you to understand design patterns much quickly. If you want to learn core Java design patterns and Object oriented design principle, this is the first Java book you should refer. Head First design pattern is written by Kathy Sierra and team.
Good book to learn Java Design pattern

3) Effective Java

Effective Java is one of the best or top Java books in my record and most enjoyable as well. I have high regards for Joshua Bloch (writer of this book) for his contribution in Java collection framework and Java concurrency package. Effective Java is best for seasoned or experienced programmer who are well versed in Java programming and want to sharp there skill by following programming best practices, Java best practices and eager to listen from someone who is contributed in Java development kit. Effective Java as book scores high on quality, content and way of explanation. Reading this Java book is pleasant experience. Another important point of Effective Java is Item based structure which breaks whole book in small items and every Item is complete in itself, so you can read this book while travelling or short duration as well. On contents Effective Java is collection of Java programming best practices ranging from static factories, serialization, equals and hashcode to generics, enum and varargs and reflection. This Java programming book almost cover every aspect of Java in slightly different way then you are used to. 
The Best Must Read book for Java Programmer

4) Java Concurrency in Practice

Java Concurrency in Practice is another classic from Joshua Bloch, Doug Lea and team. Probably the best Java book in Concurrency and multi-threading and one of the must read for core Java developers. Strength of Concurrency Practice in Java are :
1) This book is very detailed and capture minor details of multi-threading and concurrency as well.

2) Focus, instead of focusing on core Java classes this book focus on concurrency issues and problems like deadlock, starvation, thread-safety, race conditions and then present ways to solve them using Java concurrency classes. This book is excellent resource to learn and master Java concurrency package and classes like CountDownLatch, CyclicBarrier, BlockingQueue or Semaphore. This is the biggest reason I like to read this Java book and read again and again.

3) One more strong point of Concurrency practice in Java is No nonsense Examples, examples in this book are clear, concise and intelligent

4) Explanation : book is good on explaining what is wrong and why its wrong and how to make it right which is essential for Java book to succeed.
Best book on multithreading and concurrency in Java

5) Java Generics and Collections

Java Generics and Collection by Naftalin and Philip Wadler from O'Reilly is another great book on Java, which I initially forgot to include in my list, but including it now as requested by many readers. I personally like this book because of its content of Generics and Collections, which is core areas of Java programming language. Strong knowledge of Java Collections and Generics are expected from any experienced programmer and this books help on that area. It explains each of Collection interface e.g. Set, List, Map, Queue and there implementation and compares how well they perform in different situation. I really loved there comparison chart at the end of each chapter. 
Book to Learn Java Generics and Collection

6) Java Performance from Binu John

Another good Java book which is my personal favorite. As we are moving gradually started from beginners level to intermediate and senior level. Java performance Book is all about performance monitoring, profiling and tools used for Java performance monitoring. This is another, must read Java book, if you are serious about performance in Java programming language. This is not a usual programming book, Instead It provides details about JVM, Garbage Collection, Java heap monitoring and profiling application. I lover there chapter on JVM overview and its must read to learn about JVM in simple language. Just remember this Java book is advanced in nature and expect that reader has experience in Java. Beginners and intermediate programmer can also benefit from this book but Its good to have some Java experience on your belt before reading this book. So far best Java book on performance monitoring.
Books Every Java developer Should read

7) Java Puzzlers

Java Puzzlers is another worth reading Java book from Joshua Bloch, this time with Neal Gafter. This book is about corner cases and pitfalls in Java programming language. Java is more safe and secure than C++ and JVM does good job to free programmer from error-prone memory allocation and deallocation, but still there Java has corner-cases which can surprise even experienced Java programmer. This Java books presents such Java pitfalls and explains them in detail. A good Java book if you love puzzles, You can even include many of these in core Java interviews to check how deep there Java knowledge is. I don't rate it as high as Effective Java and Concurrency Practice in Java but still you can give it a go. In order to get most of this Java book, tries to solve the puzzles by yourself and then look into explanations to make your knowledge more concrete. 
Best book in Java

8) Head First Object Oriented Analysis and Design

Another good book on Java programming and design principles from Head First series. Head first Object Oriented Analysis and design book can be read in conjunction with Head First Design patterns. This book focus on Object oriented design principles like favor Composition over inheritance, programming for interface than implementation, DRY etc. One part of learning Java is writing good code and following best practices and this book is great in educating programmers about them. knowledge gained from this book is applicable to many object oriented programming language and will overall improve your understanding of code and design principles. 
Good book to learn object oriented analysis and design

9) Thinking in Java

Thinking in Java book is written by Bruce Eckel who is also author of Thinking in C++ and he uses his unique style to teach Java concept. Many would agree that this is one of the best Java book and strength of this books are there to the point and intelligent examples. This is one of the complete book in Java and can be used as reference as well. There is a chapter on Java memory mapped IO from Thinking in Java which is my favorite. I would say this is another Java book which demands space in Java programmer's shelf and must read Java book for beginners, especially if you don't like Head First teaching style and rather need a beginners Java book with plain old example style, Thinking in Java is a good choice. It is detailed, matured and frequently updated.
Good book for Java programmer Thinking in Java

This was my list of top Java programming books and I would say best of lot. I have read all the books, some of them I am still reading and couple of them like Effective Java and Head First series, I have read couple of times. Many programmer ask me about which books they start, which Java book they read now. I hope you will find some good Java books in this collection.


Anonymous said...

Good list of Java books but unfortunately no book for Servlet, JSP and EJB. Can you please suggest good book for Servlet and JSP which not only gives basic knowledge but some advanced knowledge related to web application development e.g. session management, security issues like SQL injection, session fixation etc

Franklin said...

Why not include two more Java book and made this list as Top 10 Java programming books :), here is my suggestion of two more Java books

1) Java language Specification - free available
2) Java Virtual Machine Specification - free

Both of them must be read at least one time in life by any one who claims to be Java developer, agree ?

Anonymous said...

Out of these which one is the best book to learn Java programming ? If I have to start learning Java without any programming experience which one is the best Java book ?

Anonymous said...

Which one is best Java book in your opinion? I will say Effective Java , but that is not best Java book for beginners, only for experienced Java programmer. Best Java books for beginners to learn Java programming is still, Thinking in Java.

Mansi said...

I was searching for a good list of Java programming books from long time, which is easy to understand and doesn't bogged you down with its weight, many of these Java books I find really interesting to read.

Rohan said...

Which book is best Java programming book for beginners? By beginners I mean who doesn't know programming or coding.

techythought said...

Nice collection..Thank you for sharing.

@Rohan, Please grab Head first java to start with.
Also, if you want deep understanding of objects then go for first few chapters of Thinking of Java.

Swathi Venkatachala said...

Ah! good list.. I love "Thinking in Java" :)
To append to the list

Jamal said...

I 100% agree with your #1 choice, it is a great book and has served me well, the explanations are easy to follow and the book keeps you engaged. It's deffinitely worth buying!

Kabeer said...

If you have to suggest just one book, Which one would be the best Java book in your opinion?

Anonymous said...

One book, which is missing is Java Generics and Collections.

Anonymous said...

I found Murach's Java Programming book to be the best.

Clear & precise, with step by step guidelines. It's is like instructional manual format which make it very easy to understand.

Trust me on this (m also a beginner myself & giving my review after reading the book:))

I am sure you might find it beneficial even if you are complete new to Java.

JSP, Servlets 2 is available

Robert said...

My list of must read books for Java developers is slightly different than yours, as it contains some classical books from design and software development in general.

1) Thinking in Java
2) Clean Code
3) Pragmatic Unit Testing in Java with JUnit
4) Java Concurrency in Practice
5) Data Structures and Algorithms in Java by
Michael T. Goodrich, and Roberto Tamassia

Anonymous said...

I have read in detail and sub detail all the posts on "3 ways to resolve noclassdeffounderror in java" and still....
I was able to do a simple hellp world from the windows command line then whe I tried somthing more useful both it and the hello world program give me this:
C:\JAVA>java frog.class
Exception in thread "main" java.lang.NoClassDefFoundError: frog/class
Caused by: java.lang.ClassNotFoundException: frog.class
at$ Source)
at Method)
at Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: frog.class. Program will exit.
Please Help

Anonymous said...

Only book I recommend to any Java Beginners is "Sams teach yourself Java". This is by far the best Java book for beginners, it's lean, thin, contains all a beginner wants to know and gets ball rolling quickly. No beginner wants to bogged down with too much detail, everyone likes to see small things working together and taking towards big things. Sams Series are well known and Sams teach yourself Java doesn't disappoint either.

Pai said...

What is the most recommended book on Java Programming for
- absolute beginner with no programming background e.g. C or C++
- beginner in Java but knowledge of C or C++
- intermediate developer with some knowledge of Java


Shaon Hossain said...

Sir, Can you suggest me that which book i should read first- Head First Object Oriented Analysis and Design or Head First Design Pattern.
I'm confused. Please give me your opinion .
Thanks for the great review.

Javin said...

Read Head First Object Oriented Analysis and Design first then read Head First Design Pattern. Former book is more fundamental as it focus on basics, key principles and concept like Encapsulation, Polymorphism, Abstraction and principles like programming for interface than implementation, encapsulating what changes etc.

Tripti said...

What is a good book to start learning Java for someone with some programming experience? I have done some programming in college and worked as C++ developer for 6 month, now I want to learn Java? How difficult it would be, which books should I take?

Archana Singh said...

how should i follow all these books at a time .Head first java is best book for beginners

Anonymous said...

Can anyone suggest some advanced Java books here? I'm looking to expand my knowledge of Java and I'm wondering if there are any intermediate to advanced level Java books that focus on using language features in simple ways. I've already read through Effective Java and reading Java Concurrency in Practice. Any recommendations?

Neha Kaur said...

Sir can u suggest me that which one book I prefferd first of java.

Francisco Zarabozo said...

Lazy people is amazingly cynical. There are a lot of questions here asking things like "Ok, but what should I read first", or even worst, "...but if you could say only one book, which one should I read". They are not only showing how low their ability to study or read is (and want a quick and easy solution), but they are showing how unable they are to even read this very short article, because if they did, they would not have to ask those questions.

Anonymous said...

Head first java

Anonymous said...

do not use .class while running the program. use only " java frog"

Anonymous said...

Beginning Java Objects From Concepts to Code by Jacquie Barker is very good book.

Anonymous said...

Keep the Good Work, It helps a Lot !
God Bless You !

Anonymous said...

Can please someone suggest me a book for programming problems in java

Raf Ton said...

where can i download these books, for free?

adil faiz said...

Plz suggest me few books for studying java,I m student of first year btech and have completed java begineers books
Plz suggest me books to a few level up

Post a Comment