Clinton Forbes asks the big money question for authors of computer books. I actually buy around ten or so computer books per year, of which I probably find the time to read about seven. They tend to be less of the reference manual type (such as Microsoft Bob 1.0 for Dummies) and more of the analysis/synthesis type (such as Jeffrey Richter’s CLR via C#).

To me, a worthy computer book has several notable qualities:

  • It aggregates, collates, and condenses. You can find information on just about anything on the web, but it’s often like an Easter Egg Hunt to collect all the salient bits into a coherent understanding. A good book brings together many threads, many ideas, and many sources and creates a point of entry into a subject.
  • It distinguishes between idea and expression. Every time a new version of product or platform comes out, it advances an expression of an idea. For example, Microsoft Excel represents an idea of how to model, store, and interact with data, an idea that is older than Windows and DOS. Even the latest version of Excel is an imperfect expression that idea, and while you can write a book demonstrating how to use that expression, a good book will differentiate between what the tool is capable of doing and what the tool is trying to do (even if it does not yet do it).
  • It makes an argument. Data without interpretation is neither information nor knowledge. It’s one thing to amass data, but it is another to understand it and make an argument for what it means. If a book doesn’t hang it out there and say something that you can disagree with, it isn’t steering the evolution of anything.
  • It tells a story. Read Knuth or Robbins or Tufte. These authors fill their presentations with stories. Technical material always rides with a story: how it was discovered, how it was applied, and how it is connected to a human endeavor.
  • It has a sense of author. No one wants to read a book written by committee. A book is a form of communication from one person to another: from teacher to student, from peer to peer, from explorer to practitioner.

I agree with Clinton Forbes’ argument that the computer publishing business may not be fomenting an environment that consistently creates these kinds of books. But should a book keep to the qualities that matter, I believe there is always a market for it.


It’s a Book!

31 Mar 2007

As much as I like “a riddle wrapped in a mystery inside an enigma”, it’s probably best not to let that gem at the bottom of my New and Improved: Now with Lab49! post remain unanswered for too long. The answer has nothing to do with family planning. Mom, don’t call. It’s not a baby.

It’s a book!

My proposal for Programming Distributed Applications (a working title) was accepted by the kind folks at Microsoft Press. The focus of the book is to show the mainstream .NET developer how to take advantage of current parallel-oriented hardware through distributed computing techniques (instead of multithreading, which in many ways can be much more difficult for the average developer). Rather than being a dry, academic focused treatise on the subject, it is a practical field-guide to recognizing, implementing, and tuning distributed applications using .NET within a largely enterprise context, subject to the peculiarities of that context (such as security, deployment, and administration). I develop a pedagogically-oriented distributed computing framework within the book as well as closely examine commercial off-the-shelf solutions such as Microsoft Compute Cluster Server and the Digipede Network.

The elevator pitch was to do for distributed applications what Petzold did for Windows applications. Big talk, of course, but that’s what elevator pitches are supposed to do…

With the hard work of book proposals and contract negotiations behind me, all that’s left to do is write the book. David Allen, may your GTD magic do its work.