Must-Read Books for Java Developers
There are few ways to keep your Java programming skills constantly improving. The most popular ones of course is online web-resources with articles, forums and blogs, question and answer online communities.
Another one great source of teaching you new things is books. Here is my list of books advised for all levels of Java programmers.
1. Effective Java (3rd Edition) by Joshua Bloch
Joshua Bloch does an amazing job explaining best practices and providing detailed insights into how and when to use the different Java features. Effective Java is a must-read for every professional Java developer.
It's kind of a dictionary for me, so I would recommend to have it in paper on your working desk.
2. Object Thinking (Developer Reference) by David West
For sure it's a kind of a Bible of Object Oriented Programming.
If you consider yourself not just a codder, but software engineer, you have to read this deep and philosophical book about how to turn your mind to an Object Oriented design, programming, analysis, and thinking.
3. Java Concurrency in Practice by Brian Goetz
The best book explaining concurrency in Java for sure. It gives all the concepts you ever need to know about concurrency in general. From basic concurrency principles to concurrency issues that would arise in almost all concurrent programs, and finally to some optimization techniques.
It also provides some in-sights on some of the Java concurrent utility classes provided by the JDK package.
5. Test-Driven Java Development by Viktor Farcic and Alex Garcia
The book covers every aspect of TDD, and contains helpful information for both novices and experts Java developers.
Viktor Farcic and Alex Garcia give very clear explanations showing their experience in real life scenarios involving QC / QA departments and their often obsolete methodologies.