Agile Web Development with Rails
Dave Thomas, David Hansson, Leon Breedt, and Mike Clark (Pragmatic Bookshelf)
Ruby proponents have known for years that the language's potential was far greater than any other object-oriented scripting tool. However, 2005 was the year for programmers to come out of the closet. Ruby on Rails has become the spotlight vehicle to give the language something visibly exciting to do.
Ideally timed with the official 1.0 release of the Ruby on Rails framework, Agile Web Development with Rails captures the energy and enthusiasm in this exciting Web 2.0-oriented application design platform. While knowing how to program in Ruby isn't a required prerequisite to reading this book, the Pragmatic Bookshelf's Programming Ruby (the "pickaxe book"), provides an outstanding preface to this Ruby on Rails guidebook.
Productivity Award Winners
Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries
Krzysztof Cwalina and Brad Abrams (Addison-Wesley)
Maybe you're working at Microsoft writing code used by millions of .NET developers, or maybe it's a class used only by the developer in the next cubicle. Regardless, someone else will eventually use your code. Framework Design Guidelines shows you how to design your exceptions, how to design your classes for extensibility, and how to make your classes more usable.
Practical Common Lisp
Peter Seibel (Apress)
Peter Seibel offers a fresh view of Lisp and its possibilities for elegantly solving problems. In Practical Common Lisp, he gives enough basic information to let you quickly see the power of the functional language paradigm. He then dazzles you with examples that seem almost magical in their simplicity and power. This read is pure fun from start to finish.
Why Programs Fail:
A Guide to Systematic Debugging
Andreas Zeller (Morgan Kaufmann)
Why Programs Fail is a book I wish I had at the beginning of my career. It answers two important questions: How do you find and fix defects? And how do you prevent defects in the first place? This is a practical book where you find excellent discussions, everything from tracking defects to debugging. If you want to write better software, read this book.