Joshua Kerievsky once asked Jerry Weinberg how he keeps up with all the books that come out. Jerry said, “Easy—I only read the great ones” (Refactoring to Patterns, p. 33). By Reading Constantly and Reflecting as You Work, you will, like Jerry, eventually be able to “only read the good ones.” When you pick up a book and the first thing you wonder is how out of date it is, you’re reading the wrong kind of books. Successful apprentices tend to focus on “long-lived books” and use the Web or experimentation to learn how the information has evolved. Dave remembers vividly the experience of reading his first classic in this field, The Psychology of Computer Programming, and marveling at how relevant the book felt, despite the stories of punch cards and room-sized computers. The wisdom captured in such classics is vital information to keep you heading in the right direction on The Long Road.
One danger of focusing on the classics is taking it too far and abandoning the more pragmatic knowledge and information that enables you to improve your day-to-day craftsmanship. Be sure to intermingle classics with modern, pragmatic books and/or articles in your Reading List.
What is the oldest book in your pile? Read that one first. The next time you’re flicking through another developer’s book collection, take note of the oldest books and ask the developer why she still owns them.