This is my reading list for "enterprise" projects that use Java as the primary programming language. The list is short, but it has served me well.
This "bare-bones" reading list is designed primarily for programmers who (like me) work on large-scale, "legacy" Java code-bases. The list could serve as the foundation for a more expanded list with "more advanced topics."
- "Effective Java," 2nd edition, Bloch - this is the one book to have if you have only one book.
- "Java Concurrency in Practice," Goetz, et. al. this is a must have for concurrent enterprise apps.
- "The Java Programming Language," 4th ed. Refer to it often.
- (freely available) "The Java Language Spec," http://java.sun.com/docs/books/jls/ Refer to it just as often.
That's it for the core, "must-have" Java stuff, but you'll need to understand patterns as well:
- "Design Patterns," Gamma, et. al.
- "Patterns of Enterprise Application Architecture," Fowler
- "xUnit Test Patterns," Meszaros
Then there's the "recommended" section for Java, a little dated, but still relevant:
- "Hardcore Java," Simmons
- "Better, Faster, Lighter Java," Tate & Gehtland
That's it. Happy reading!