Whenever a programmer starts learning a new language, say Java in this case, the first question they ask is, “What are the Best Java Books out there?” or “What is a good Java book for a beginner like me?” This very much shows how important books are for programmers who are just getting started in a new language or for those who are just learning programming from scratch.
Well, lets stick to Java. Although there are various resources available in the names of tutorials, blogs, coding examples and tips, a good Java book is always necessary as it covers the subjects with more details and explanations.
While making this list, I realized that it is very difficult to make a top-ten-like list of books that would represent a particular field (Java programming language in this case).
Especially when all the books are detailed in different cores and aspects of Java, also when some of the books are meant for either beginners or experienced programmers or both, and above all, when you haven’t read ALL Java books, making a list and ranking them under “Best Java Books” is quite difficult.
Nevertheless, I spent a good amount of time looking at similar other lists as well on the internet, and came up with this compilation:
10 Best Java Books:
1. Head First Java
“Head First Java” is the one of the best Java books for every programmer who is new to both programming and Java. Here, every aspect of Java is detailed in “head first way of explanation”, i.e. with the help of easily understandable images, diagrams and examples. Head First Java covers: 1) all fundamental Java programming topics about Object, Class, Thread, Collection, 2) language features like Enum, Generics and 3) advanced features like Networking, Swing and Java IO. If you are looking forward to learning Java from scratch, this is the book for you.
[divider]
2. Effective Java
Joshua Bloch’s “Effective Java” is one of the most enjoyable Java books for intermediate and experienced programmers. The book guides you to best programming practices in Java and teaches you how to effectively use and optimize the language in real programming world. It’s content are categorized into Items which are sub-categorized into chapters, and compared to other Java books, it covers and details almost every concepts of Java with a slightly different approach. If every Java programmer read this book, we would see a lot less broken Java codes!
[divider]
3. Java Concurrency in Practice
When it comes to Multi-threading and Concurrency, “Java Concurrency in Practice” is probably the best Java book. With intelligent and concise examples, the book is very detailed with clear explanation for: what is wrong, why it’s wrong and how to make it right in Java. If you are pursuing your career as a Java programmer and are wiling to learn real core aspects of Java programming language, this is one of the must-have books for you.
[divider]
4. Head First Design Pattern
Written by Kathy Sierra and team, “Head First Design Pattern” is another top top-class Java book for learning design patterns in Java. This book provides a clear and concise explanation to how to apply design patterns, how to solve common problems, etc. Understanding core Java design pattern and object-oriented design principle has been made easy with lots of exercises, memory maps, bullet points and more. “Head First Design Pattern” is not purely a Java book; it is an essential book for every Java developers who design their applications themselves.
[divider]
5. Thinking in Java
“Thinking in Java” by Bruce Eckel is one of the best Java books for beginners with a unique approach to teaching book. It is complete covering every aspect in Java, and can also be used as a reference Java book. With many class diagrams and intelligent coding examples, this is a must-have book for those who like to analyze Java concepts by writing example codes. It is detailed in Containers, Graphical User Interfaces and Annotations. Overall, “Thinking in Java” is a good choice for both beginners and intermediate programmers in Java.
[divider]
6. The Java Programming Language
Written by the creators of the language itself, “The Java Programming Language” provides in-depth understanding of the language along with its design goals and ways of using it effectively in real world programming. In newer editions of the book, several new chapters, topics and sections have been added and updated with modern practices for making robust and efficient Java softwares. This book is for both novices and seasoned Java developers.
[divider]
7. Java Generics and Collections
“Java Generics and Collections” is written by Maurice Naftalin and Philip Wadler; Wadler is one of Java generics grandfather. For Generics and Collections, which are the core aspects of Java, this book has a gold mine of detailed information. It is a very useful book for experienced programmers as well as for those who want to sharpen their knowledge of Java Collections and Generics.
[divider]
8. Head First Object Oriented Analysis and Design
This book can be read together with Head First Design Patterns. It focuses on object oriented design principles such as programming for interface rather than implementation, DRY, favor composition over inheritance, and more. Head First Object Oriented Analysis and Design teaches you best programming practices by writing good codes in Java. The knowledge gained from this book will prove to be useful for understanding any object-oriented programming platform.
[divider]
9. Java Performance
“Java Performance” deals with performance monitoring, profiling and various tools for monitoring performance in Java programming. It is widely regarded as the best Java book on performance monitoring. If you are serious about performance in Java, this is another must-have book. It is a bit advanced in nature; it’s not recommended for beginners. So, those who already have some Java programming experiences will find this book very useful.
[divider]
10. Java Puzzlers
Another good Java book from Joshua Bloch (in collaboration with Neal Gafter), “Java Puzzlers” thoroughly explains corner cases and Java pitfalls. If you love puzzles (which are often included in core Java interviews to determine the Java programming skills of a candidate), this book is a boon. The best way to utilize this book would be to try to solve the puzzles in the book by yourself and only then look into the explanations and solutions provided.
[divider]
Other Good Java Books:
Sun Certified Programmer for Java: One of the best Java books for beginners, Sun Certified Programmer has covered all aspects of Java in a proper manner. It comes with a CD containing sample papers of the OCJP (Oracle Certified Java Professional) exam. This is a highly recommended book for better understanding of Java concepts.
Java in a Nutshell: Written by David Flanagan, this is a good reference cum tutorial Java book for both beginners and intermediate programmers who want to improve their understanding of Java concepts.
Data Structures and Algorithms in Java: Unlike most other Java books, with this book you can learn Java together with the very basic algorithms and data structures.
Java 7 Programming Black Book: Most of the books presented here are good for understanding and analyzing the core concepts in Java programming. “Programming Black Book” is very detailed (with examples) in explaining how to use Java swing elements. So, if you’re a Java developer focused on User Interface, this book will provide whatever you need to create User Interface for your Java software.
The Java Language Specification: This books provides a complete and detailed coverage of all aspects in Java. New features such as annotations, asserts, generics, enums, autoboxing, etc. have been added in the newer editions of the book. “The Java Language Specification” is a good read for those who want to strengthen their knowledge about the semantics of Java programming language.
[divider]
Some of the best Java books for beginners from my list would include Head First Java, Thinking in Java, The Java Programming Language, Sun Certified Programmer for Java and Java in a Nutshell.
And, for intermediate and experienced Java programmers, some good Java books to look into are Effective Java, Java Concurrency in Practice, Head First Design Patterns, Java Performance and Java Generics and Collections.
“Which book should I choose from the aforementioned list?” The answer to this would depend upon how much you know about Java, i.e. whether you are a beginner, an intermediate-level programmer or a seasoned Java developer, and also on “on what aspect of Java you’re trying to specialize”.
This compilation of “Best Java Books” is still incomplete as there may be other good Java books I have missed. You can mention your favorite Java book/s in the comments section.
head first dot net is good book compare with head first java…can i call dot net method from java.