We learn by reading books and experimenting on it. So, it is imperative that you choose the best
available options. In this post I would like to share my experience with some
of the books and how they can help you evolve as a Java Developer.
Lets start from the floor, the first 3 books are a good
starting point for any Java student. Java Programming Language helps you to get
yourself familiar with Java, where Head First will help you stick the Java concepts into
your brain, so that you will never forget them. I have chosen Thinking In Java 3rd
book in this category but Java the Complete Reference By Herbert Schildt and Java in a nutshell By David Flanagan are good substitutes. These books are more of a reference
than a must read.
1. Java Programming Language By Ken Arnold, James Gosling,
David Holmes
Direct
from the creators of the Java, The Java Programming Language is an
indispensible resource for novice and advanced programmers alike. Developers
around the world have used previous editions to quickly gain deep understanding
of the Java programming language, its design goals, and how to use it most
effectively in real-world development. The authors systematically conver most
classes in Java's main packages, java.lang.*, java.util, and java.io,
presenting in-depth explanations of why these classes work as they do, with
informative examples. Several new chapters and major sections have been added,
and every chapter has been updated to reflect today's best practices for
building robust, efficient, and maintainable Java software.
Above are extracts from the book index page.
2. Head First Java By Kathy Sierra, Bert Bates
Its
unique approach not only shows you what you need to know about Java syntax, it
enables and encourages you to think like a Java programmer. Mastering object
oriented programming requires a certain way of thinking, not just a certain way
of writing code. The latest research in cognitive science, neurobiology, and
educational psychology shows that learning at the deeper levels takes a lot
more than text on a page. Actively combining words and pictures not only helps
in understanding the subject, but in remembering it. According to some studies,
an engaging, entertaining, image-rich, conversational approach actually teaches
the subject better. Head First Java puts these theories into practice with a
vengeance.
Above lines are copied from Google books read more here.
3. Thinking In Java By Bruce Eckel
Eckel
introduces all the basics of objects as Java uses them, then walks carefully
through the fundamental concepts underlying all Java programming -- including
program flow, initialization and cleanup, implementation hiding, reusing
classes, and polymorphism. Using extensive, to-the-point examples, he
introduces exception handling, Java I/O, run-time type identification, and
passing and returning objects. Eckel also provides an overview of the Key
Technology of the Java2 Enterprise Edition platform (J2EE).
Above lines are copied from Google books read more here.
I am
not a big fan of SCJP Exam, but A Programmer's Guide to Java SCJP Certification is
much more than a certification guide. It gives you an insight in to Java, the
tips and tricks. SCJP Sun Certified Programmer for Java 5 Study Guide By Kathy Sierra, Bert
Bates is a go to book if you are mad about SCJP. Better to read these books
than spending time in reading question dumps, these books will help you much
more than clearing the exam in your career.
4. A Programmer's Guide to Java SCJP Certification: A
Comprehensive Primer By Khalid Azim Mughal, Rolf Rasmussen
This book will help you prepare for and pass
the Sun Certified Programmer for the Java Platform SE 6 (CX-310-065) Exam. It
is written for any experienced programmer (with or without previous knowledge
of Java) interested in mastering the Java programming language. It contains
in-depth explanations of the language features. Their usage is illustrated by
way of code scenarios, as required by the exam. Numerous exam-relevant review
questions to test your understanding of each major topic, with annotated answers
Programming exercises and solutions at the end of each chapter Copious code
examples illustrating concepts, where the code has been compiled and thoroughly
tested on multiple platforms Program output demonstrating expected results from
running the examples Extensive use of UML (Unified Modelling Language) for
illustration purposes
Above lines are copied from Google books read more here.
OK, so you got to know Java and been working in it for
couple of years its time to take the next step. Everything in this world has
good and bad. Java language if not used the way is supposed to be, can make your life miserable. When you write code, its written for future. Writing good Java code is an art that needs lot more
skill than knowledge of basic Java. Here I would like to introduce the next set
of 4 books that can make you a master in the trade.
The Pragmatic Programmer is not really a Java book but is a
self help book for any programmer. It is a great book covering various aspects
of software development and is capable in transforming you to a Pragmatic
Programmer.
5. The Pragmatic Programmer, From Journeyman To Master By
Andrew Hunt, David Thomas
Written
as a series of self-contained sections and filled with entertaining anecdotes,
thoughtful examples, and interesting analogies, The Pragmatic Programmer
illustrates the best practices and major pitfalls of many different aspects of
software development. Whether you're a new coder, an experienced programmer, or
a manager responsible for software projects, use these lessons daily, and
you'll quickly see improvements in personal productivity, accuracy, and job
satisfaction. You'll learn skills and develop habits and attitudes that form
the foundation for long-term success in your career. You'll become a Pragmatic
Programmer.
Above lines are copied from Google books read more here.
So, we wrote code. It is time to add some style. The
elements of Java style is one of the earliest documentation on the style part
of Java including its various aspects.
6. The elements of Java style By Scott Ambler, Alan
Vermeulen
Many books explain the syntax and basic use of
Java; however, this essential guide explains not only what you can do with the
syntax, but what you ought to do. While illustrating these rules with parallel
examples of correct and incorrect usage, the authors offer a collection of
standards, conventions, and guidelines for writing solid Java code that will be
easy to understand, maintain, and enhance. Java developers and programmers who
read this book will write better Java code, and become more productive as well.
Above lines are copied from Google books read more here.
Now, we know how to write code in style. But is it best is
class? Does it uses the best practices? Effective Java is one of the best book
on best practices is a favourite book for many Java developers.
7. Effective Java By Joshua Bloch
Joshua brings together seventy-eight indispensable
programmer's rules of thumb: working, best-practice solutions for the
programming challenges you encounter every day. Bloch explores new design
patterns and language idioms, showing you how to make the most of features
ranging from generics to enums, annotations to autoboxing. Each chapter in the
book consists of several “items” presented in the form of a short, standalone
essay that provides specific advice, insight into Java platform subtleties, and
outstanding code examples. The comprehensive descriptions and explanations for
each item illuminate what to do, what not to do, and why.
Above lines are copied from Google books read more here
Then, you know the good, it is time for the bad stuff. Bitter
Java is one of the first book to bring up the Anti-patters in Java. There are various
articles and books on Anti-patterns and code smells and is an area where there
is lots of space to learn. There are many other books on this topic I am adding this book as a starting point.
8. Bitter Java By Bruce Tate
Intended
for intermediate Java programmers, analysts, and architects, this guide is a
comprehensive analysis of common server-side Java programming traps (called
anti-patterns) and their causes and resolutions. Based on a highly successful
software conference presentation, this book is grounded on the premise that
software programmers enjoy learning not from successful techniques and design
patterns, but from bad programs, designs, and war stories -- bitter examples.
These educational techniques of graphically illustrating good programming
practices through negative designs and anti-patterns also have one added
benefit: they are fun.
Above lines are copied from Google books read more here
Many say you need to know Design Patterns, if you want
grow as a developer. So I thought of mentioning the best Design pattern book
that I have read. It is not a reference book nor it contains the patters catalogue
but the book explains the Object Oriented Design Principles that are as
important as the patters. Use the book Design patterns: elements of reusableobject-oriented software if you are looking for a reference book.
9. Head First design patterns By Eric Freeman, Elisabeth
Freeman, Kathy Sierra, Bert Bates
You
know you don't want to reinvent the wheel (or worse, a flat tire), so you look
to Design Patterns--the lessons learned by those who've faced the same
problems. With Design Patterns, you get to take advantage of the best practices
and experience of others. Using the latest research in neurobiology, cognitive
science, and learning theory, Head First Design Patterns will load patterns
into your brain in a way that sticks. In a way that lets you put them to work
immediately. In a way that makes you better at solving software design
problems, and better at speaking the language of patterns with others on your
team.
Above lines are copied from Google books read more here
If your are a master at coding and designing application using
Java its time to crack the JVM. I have read that 'The Java language specification'
is the best book to do that. I have not got the patience or skill to read the
book but is an interesting pick if you want to cross the line.
10. The Java language specification
The
book provides complete, accurate, and detailed coverage of the Java programming
language. It provides full coverage of all new features added in since the
previous edition including generics, annotations, asserts, autoboxing, enums,
for each loops, variables, methods and
static import clauses.
Above are extracts from the book index page.
In these web-years online resources may be more reachable than books, but I fell these books will help in tuning you to a better Java programmer.