Wednesday, April 30, 2008

Pulp Nonfiction: Defending the Transient Book

First, there was this attack on books: they are too long and have high-falutin' ideas versus the immediate gratification of raw code. After 2 days, I still cannot tell if it is a satirical piece.

Then, Jeff Atwood defends the timeless classics (e.g. Pragmatic Programmer) which stay on his bookshelf for 5+ years. Fine. This is the blog equivalent of shooting fish in a barrel.

I, too, enjoy the classic books and use online resources (such as these, by my colleagues) all the time.

However, someone has to stick up for some friends of mine: the excellent programming books that are highly relevant to me right now, but yet are not timeless. These books, call 'em Pulp Nonfiction, may well not be as useful in 5+ years. They aren't cheap, and I will probably clear them out for new editions. *sigh* What a pain! What an expense!

And yet you will have to pry them from my cold, dead hands.

I'm not talking about Dummies books, or "How to Learn X in N Days". I'm talking about books like Thinking in Java, Java Persistence with Hibernate, and Java Concurrency in Practice. And other books that may or may not be useful in 5+ years like the delightful duo of Groovy Recipes and Programming Groovy.

Here are some defenses for these wonderful works of Pulp Nonfiction. The following is brief because I fear that those "who be needin' it won't be readin' it".

The Forest and the Trees

A good book will offer up not only the tree-oriented detail that you need right now, but will give you a view of the forest. Consider concurrency in Java 5: there is no way that you can pick up the overall themes and issues from online docs. By understanding the forest, you'll always have a sense of context for the particular trees that you are dealing with.

Often, when confronted with a climbing a particular tree (i.e. solving a problem at hand), you'll know that it isn't about the answer, but a rephrasing of the question. That is, the real answer involves another tree entirely.

Timeless Tranquility

Sure, it takes time to read books, but the payoff is that the author has the chance to expand on ideas. For centuries, a book has been a thoughtful discussion in an intimate setting. Imagine having a dinner series with Gavin King!

It's a good example: the Hibernate online docs are terrific, but the book is better. The writing is more thoughtful and the background and issues are explained very well.

Getting Things Done

The book remains the ultimate mobile device. Yes, they are hard to search. Yes, they are a proprietary format and have limited storage (i.e. 1 book). But y'all can keep your Kindles and iPhones. When I am waiting for my car to be serviced, I'll take Effective Java, thanks. (Possibly the best example of Pulp Nonfiction, with a new release due).

The Great Conversation

When loaded up with the ideas and vocabulary of the times, you can engage in the discussions. And from these spirited conversations, we learn new ideas and views.

This isn't about elitism or impressing those at the local user group: it's about participation. And fine-tuning your B.S. detector so that you can protect your project, and minimize your time spend talking to posers.

(Note: it is true that the online stuff is vital on this point.)

The World is Flat

Imagine that you are at an interview for a new position. You need to read the Pulp Nonfiction because your competition already has done so. Give 'em hell.

Better Reader, Better Writer

Perhaps best of all, the more one reads, the better one can write. And that goes for prose, code, you name it. Don't scoff at this one: effective email communication is extremely important to your career.

The Upshot

Sure, use online resources. Absolutely, read the timeless classics.

But don't discount the transient books.

Discount most of them, but find the best, because they'll change the way you think. That's profound stuff. And if that comes for $40 and with a 3-year shelf-life, so be it. That's a steal.

1 comment:

Casper Bang said...

I completely agree. For tutorials and reference, the online media is superior - but it does not replace books entirely!

Pardon the candidness, but when I go to the bathroom, I usually grab "Code Complete", "Effective Java", "Java Generics and Collection", "Java concurrency in practice", "Head first design patterns" or a similar piece of (art)work.

Not to mention when I go to bed, between Letterman and dozing off completely.

It just paints more of a completely picture. Even though I have access to books24x7 or Safari books on the screen, I will always prefer a hard book where I can underline interesting passages and treat it as geek prose.