Skip to main content

Head Games

Posted by editor on September 21, 2007 at 7:28 AM PDT

Can good programmers be good writers, and vice versa?

JRuby co-lead developer Charles Nutter has kicked up a contentious discussion with a recent blog wondering Are Authors Technological Poseurs? His argument, in a nutshell, rests on his assertion that "good authors do not have time to be good developers":

What brings me to this conclusion is the growing realization that working on a JRuby book would--for me--mean a good bit less time spent working on JRuby and related projects. I fully intend to make a large contribution to the eventual JRuby book, but JRuby as a passion has meant most of my waking hours are spent working on real, difficult problems (and in some cases, really difficult problems). It physically pains me to consider taking time away from that work.

As someone who sees a lot of technical writing and has written a couple of books, there's a degree to which I can agree with Nutter. The best books come from a deep practical knowledge of a topic, and that comes with time. Aerith, cited heavily in Filthy Rich Clients, was written a year before the book came out. If it were written concurrently for the sake of the book's examples, it's a good bet it wouldn't have been as ambitious, and that would make the book less interesting. And it's a very safe bet that the first book on a topic is almost never worth owning, unless it's from a technology's creators, and even then it won't enjoy the knowledge that comes from people putting the stuff to unintended, unforeseen uses.

Knowing what you're talking about takes time. Nearly three years after my first book came out, my consulting work and other exploits in media make me wish I'd included some topics that didn't seem important when I was writing it. That's the kind of perspective that only comes with time and experience. So in that way, Nutter's right: the more you program, the better author you'd be, but the less time you have to actually write.

But on the other hand, I think he sells short the idea of writing, implying that it is just a brain-dump of knowledge that is measured solely by the time it takes to get the words and bytes out of your head and into natural language by way of a keyboard. Frankly, the best writers I know are also good programmers because both tasks require of the same skills: discipline, self-direction, design, a sense of perspective, detail-consciousness, etc. When I see writers who struggle to express themselves and what matters in their writing, I suspect their code is equally creaky, and is more a mass of statements that just happen to work (under current conditions, and only after a lot of clueless banging against the compiler and System.out.println("WTF?");s).

Developers who know what they're doing can tell you how and why it works, and how to do best do it. And that's exactly what technical writing is.

So, apropos of book writing, the latest Poll asks
"Which factor is most important in choosing a book on a Java topic?" Cast your vote on the front page, then check out the results page for current tallies and discussion.

One writer/developer with wide ranging interests and abilities is Joshua Marinacci, and he's looking for feedback in today's Weblogs.
You vote for your favorite article and I'll write it!, he says,
"I'm thinking of working on another article or two over the next few weeks, but I don't know what to write about. Oh sure, I have lots of ideas, but I don't know what's most interesting to you."