by Dave Thomas et al, or Practical Common Lisp
, or Learning Python
The fifth book in this list really isn’t a specific book at all, but a more general recommendation to get a book about a language very different from the Java/C# family. Learn one of the hot dynamically typed languages all the kdis love these days, like Ruby or Python. If those are old hat, pick up the The Haskell School of Expression
if the online tutorial
seems interesting. Or maybe Graham’s On Lisp
, which recently put online for free. Just learn a language that forces you think in a different way from Java. Even if your day job continues to be Java, knowing how you would solve a problem in Ruby or Lisp will only make you a better programmer.