The Java Programming Language, 2nd edition
- By James Gosling (the father of Java) and Ken Arnold. This book
is to Java what K&R is to C. Grab the Java2 appendix at http://www.awl.com/cseng/titles/0-201-31006-6/1_2Update.pdf
Thinking in Java
- By Bruce Eckel. If the Gosling/Arnold book is too terse for you,
try this one. A very good explanation of the Java language and
The Java Language Specification
- By James Gosling, Bill Joy, and Guy Steele. The final word on
the Java language (except that it needs to be updated for 1.1. and 1.2)
Any serious Java programmer should own a copy for reference and
it doesn't hurt to read it too. Also available online.
The Java Virtual Machine Specification
- By Tim Lindholm, Frank Yellin. The other spec -- if you really
want to grok Java you'll buy and read this book. Also available
Concurrent Programming in Java: Design Principles and
- By Doug Lea. Required reading if you are going to be writing
multi-threaded programs in Java. The second
edition is now available and even better the first.
OO theory and practice
Design Patterns: Elements of Reusable Object-Oriented
- By Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides.
The book that started the patterns movement in software
UML Distilled: Applying the Standard Object Modeling
- By Martin Fowler and Kendall Scott. A useful and brief
introduction to UML, the Unified Modeling Language. This was
originally a bit of a placeholder until the three amigos books
shiped. But if you don't want to wade through all three of the
three amigos books (Grady Booch's Unified
Modeling Language User Guide, James Rumbaugh's Unified
Modeling Language Reference Manual, and Ivar Jacobson's Unified
Software Development Process) this is a good intro to
see if you want more. Personally I've got all three of the
three amigos' books on my shelf and they aren't perking to the top of
my priority list.
The Art of the Metaobject Protocol
- By Gregor Kiczales, Jim des Rivieres, and Daniel G.Bobrow. If
you think you've fully grokked object orientation, try wrapping
your head around metaobject orientation. Virtually no mainstream
OO languages provide support for a metaobject protocol, or MOP,
but you'll deepen your understanding of what makes object
oriented languages tick if you read this book.
Rapid Development: Taming Wild Software Schedules
- By Steve McConnell. A process book -- a massive collection of
best practices and the rationales behind them. Anyone who writes
software under deadline pressure should read this book.
Code Complete: A Practical Handbook of Software
- By Steve McConnell. Just as good as Rapid Development but
more focused on the actual production of code as opposed to the
management of the production of code.
The Deadline: A Novel about Project Management
- By Tom DeMarco. DeMarco's no Tolstoy but The Deadline is
a fun read and full of interesting ideas about how to manage
Peopleware: Productive Projects and Teams
- By Tom DeMarco and Timothy Lister. A now-classic book on the
care and feeding of professional programmers. Worth reading if
you're a programmer trying to figure out why you can't get
anything done at work. Required reading if you manage
the Development Process
- By Steve Maguire. Another must-read for managers and project
leads. Though you wonder a bit when a guy from Microsoft claims
that it's better to leave features out than ship them implemented
The New Hacker's Dictionary
- Compiled by Eric S. Raymond. The book version of the Jargon
File. The only dictionary I ever read cover-to-cover. A
compendium of hacker lore and wisdom.
Hackers: Heroes of the Computer Revolution
- By Steven Levy. An ode to the hacker ethic -- and a history of
hacking from the AI lab at MIT in the 50s to Silicon Valley in
Where Wizards Stay Up Late: The Origins of the Internet
- By Katie Hafner and Matthew Lyon. A history of how the internet
was built. Just interesting.
Back to index
Peter Seibel <firstname.lastname@example.org>
Last modified: Thu Feb 10 20:15:44 Pacific Standard Time 2000