Books
- The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt, David Thomas (1999): This is no Java book, but about how being one of the best developers, called pragmatic programmers.
- UML Distilled: A Brief Guide to the Standard Object Modelling Language by Martin Fowler (3rd Ed. 2003): A short and nicely written introduction to OOA/OOD and the UML.
- Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1994): The bible of patterns, also called the Gang of Four (GOF) book.
- Refactoring: Improving the Design of Existing Code by Martin Fowler, Kent Beck (1999): Refactoring to clean up bad code. And your code will be bad, given some time of evolution...
- Test Driven Development: By Example by Kent Beck (2002): A really easy introduction into test driven development, nicely written - you will become test-infected...
- Mastering Regular Expressions by Jeffrey E. F. Friedl (3rd Ed. 2006): The only book available on the topic, really giving a deep understanding of Regular Expressions.
Books on the Java Language
- Thinking in Java by Bruce Eckel (4th Ed. 2006): The best book to start with the Java language. Basics are covered in detail to build a robust fundamental base. Available for free download from Bruce Eckel's website.
- Effective Java Programming Language Guide by Joshua Bloch (2001): The best book on the Java language. It features 57 items any good Java developer has to know.
- Java 2 Performance and Idiom Guide by Craig Larman, Rhett Guthrie (1999): Although this book is outdated and pure Java 1.1/1.2, it documents useful techniques and best practices.
- Java Performance Tuning by Jack Shirazi (2nd Ed. 2003): A wonderful book about something most worried about in Java - performance.
- Java Puzzlers: Traps, Pitfalls, and Corner Cases by Joshua Bloch and Neal Gafter (2005): Although I was only able to answer 49 out of the 95 questions correctly, I love this book :-)
Newsletters and Sites
- IBM developerWorks newsletter: technology edition by IBM developerWorks
- Java Performance Tuning News by Jack Shirazi
- The Java Specialists' Newsletter by Dr. Heinz M. Kabutz
- Java Examples from The Java Developers Almanac: Code examples to copy and paste into your programs.
Tools
- Eclipse IDE: free integrated development environment (IDE) to create your Java code.
- JUnit: Then test your code.
- PMD: Source Code Analysis - Analyse your code for potential problems.
- Apache Ant: Build and package your code.
- Anthill Build Server: to daily build your code because Daily Builds Are Your Friend.
- Apache Tomcat: Reliable servlet container for your web components code.