The vast majority of candidates I speak to answer my question of “What good development-related books have you read lately?” with something along the lines of “I haven’t read much lately” followed by any number of rationalizations for their lack of drive for self-improvement.
Reading is important, folks. Not just blog reading, but diving into good books written by good authors. I’m working on updating my list of what I consider to be essential books for developers at different levels to glom on to. My list is based heavily off of the Contrux Reading Ladder. I figure Steve McConnell probably knows a thing or two about what to read — although that list is old and includes nothing on agile methodologies, so I’m adding in some of what I think are critical works from that area.
I’m also including a few things from Sam Gentile’s .NET list. Sam’s list has a bunch of terrific content on it, but is very different from McConnell’s list. McConnell’s list is all about the broad fundamentals of development. Sam’s is all about the nitty-gritty of .NET specifics.
I’ve come around to the idea of two categories of books: general development and technology specific things. I think books from the latter list tend to last a shorter timespan than those from the first, perhaps as little as a year or two. Hiller’s Advanced SharePoint Services Solutions book is a critical read for someone working in SharePoint 2003, but we’re now past that and on to SharePoint 2007 (MOSS, or my loving nickname “PITA”.)
You need those technology-specific books to get over short-term hurdles: getting up to speed on a technology, figuring out how to solve particular problems for a project or two. The general fundamentals are just as critical, perhaps even more so.
Grokking out Wagner’s Effective C# ensures you’ll be doing your C# development properly and avoiding some subtle pitfalls. Whacking the contents of Agile Principles, Patterns, and Practices in C# into your head means you’ll be approaching your design from the right angle. Sleeping on Code Complete until it melds into your subconcious ensures you’ll think about construction as you’re doing your coding. Devouring some classics like Programming Pearls, The Practice of Programming, or Conceptual Blockbusting helps guarantee that you’re looking carefully at how you approach your software. Then go read Peopleware and figure out how to improve the envrionment you’re working in.
Not reading? Get to it. No excuses. If you’re not reading, then you’re not, uh, reading.