What technical books do you cherish, re-read, and like to keep with you on your desk? If you ask a random sample of developers to name their favourite programming book, you’ll probably find classic titles turning up quite frequently. In my survey at Red Gate, Kernighan and Ritchie, Knuth, ‘Gang of four’, Code Complete, and Mythical Man Month all cropped up more than once. There were a few curve ball choices in there as well, of course, such as "Practical Algorithms in C++" and "Applied Cryptography" but there was general consensus on the list of "classic" programming books.
These "classic" titles are mainly language agnostic, terse, simple texts that teach the fundamental structures and algorithms that all programmers need to know; they make you a more effective programmer, regardless of your choice of language.
It became clear, in talking to the programmers, that they no longer read many books on more "ephemeral" technical matters; hardly any of the books they mentioned were less than10 years old. They go, instead, to the internet, or use books that are little more than manuals. The short shelf-life and bloated superficiality of many recent books entrenches this "learn as you code" mentality. However, I fear programmers will miss the big picture that a top-quality book often provides. A book gives you time to step back and reflect, to consider what is really the best design, the best way to tackle a given problem, before you get anywhere near the keyboard.
Do DBAs still read books, or has the DBA profession also discarded book-based knowledge in favour of the prevalent Internet-based "real-time problem solving"?
How many of you have well-thumbed copies of Delaney, Stanek, Henderson, Ben-Gan, and so on, in your cubicles? I still believe that technical books, even those tied to specific software releases and so with relatively short shelf lives, can and do make people better programmers and administrators. At their best, they provide practical insights and ideas of a quality that are hard to find online. At other times, they are valuable more for the structure they impose on your learning efforts. The Stanek "pocket consultants", or the "Self paced Training Kits" from MS Press are good examples of this. A browse through these and suddenly navigating BOL seems so much easier.
Despite my misgivings about the fall from favor of technology books, I was heartened to hear from the developers that the classic books on the art of programming are still important to them. What are the equivalent books for DBAs? Are they the same choice as the developers? Which books should every aspiring DBA should read, regardless of platform? What are the books that really capture the fundamentals of the craft in regard to database design, operation, management and programming? I can think of a few candidates, such as Celko, Date and so on, but I’ve love to hear your thoughts.