book recommendations


There are hundreds of Java books. Most range from bad to terrible. Almost all are full of style crime, and few give any help with designing more complex, longer-lived programs. Here are the best ones.
 
General-Purpose

* Java in Practice: Design Styles and Idioms for Effective Java,
Nigel Warren and Philip Bishop, Addison-Wesley, 1999.
[not for beginners, but the gold standard for practicing programmers. except for sometimes weak names, no style crime at all.]
 
* Refactoring: Improving the Design of Existing Code,
Martin Fowler, Addison-Wesley, 1999.
[another excellent book on practical java. very funny too.]
 
* Essential Java Style: Patterns for Implementation,
Jeff Langr, prentice-Hall, 2000.
[a third excellent book on java pragmatics.]
 
* Understanding Object-Oriented Programming with Java,
Timothy Budd, Addison-Wesley, 1998.
[an excellent book for beginners marred by several coding style crimes]
 
* Thinking in Java,
Bruce Eckel, Prentice Hall, 1998.
[an excellent book for programmers coming to java from c++. probably the overall best book on java. unsuitable for beginners.]
 
* The Java Programming Language,
Ken Arnold and James Gosling, second edition, Addison-Wesley, 1998.
[the standard in the field, coauthored by java's inventor, james gosling. far too cryptic for beginners though.]

 
Special-purpose
* Cutting-Edge Java Game Programming,
Neil Bartlett, Steve Simkin, and Chris Stranc, Coriolis Group Books, 1996.
[not only a good book on java, but a good book on games too. the book is old however, so it only covers java 1.0]
 
* Patterns in Java: Volume 1: A Catalog of Reusable Design Patterns Illustrated with UML,
Mark Grand, Wiley, 1998.
[required reading for every serious Java programmer. flawed, but still useful. don't on any circumstances buy volume 2.]
 
* Concurrent Programming in Java: Design Principles and Patterns,
Doug Lea, Addison-Wesley, 1997.
[the definitive book on threads in java. also great for advanced patterns. new edition coming out soon.]
 
* Java in a Nutshell: A Desktop Quick Reference,
David Flanagan, second edition, O'Reilly 1997.
[the best overall reference for the Java APIs. not recommended for its coding style.]

last | | contents | | next