02 September 2010

Java Books - Must Read

I was involved in fresh professionals' training program and got an opportunity to think over list of books in Java that must be read by anyone who is new to Java.

Head First Java (Step 1)
I m great fan of Head First books. It is a killer idea to present complex technical concepts with fun. Many things get registers quite well and quickly. Head First Java, like usual Head First books, has lot of examples, lot of exercises at relevant places. The concepts are not covered in a hurry. For anyone who is new to Java, Head First Java should be the first book to get started with so that it gives you confidence. I would recommend to read this book cover to cover at least twice and make sure that you complete all the exercises. It is the worth the time spend.

Effective Java (Step 2)
This is a treasure. What is more required from a programming language? While many books teaches about certain concept, this book creates "love" towards the programming language and that makes you to create your own ideas/concepts. It makes you to think and stretches your imagination and technical knowledge. It raises many questions on the design of the language and answers them. What else can you expect from the author who has created many APIs in Sun Java.

Java Concurrency in Practice (Step 3)
If there is one book in Java on threads, this is the book. It is worth the money and time you spend on this book. Period

Inside Java Virtual Machine (Step 4)
In order to understand the interpreter, there is no other material available better than this. This book talks about internals of JVM and logic behind each modules. A must read for those who wants to understand internals of JVM.

Java Language Specification & Java Virtual Machine Specification (Step 5)
It is always great feeling to get ourselves exposed to specifications. Once you get sufficient handle in Java/JVM basics, these two specs should take you deep drive into design decisions of the language and JVM. It may be bit dry to start of with but certainly be interesting as you read. The following are the links.

Java Language Specification
Java Virtual Machine Specification

Hope this helps.