I was planning to write about the blub paradox, a term coined by Paul Graham in an essay that argued that programmers can’t conceptualize programming languages more powerful than the ones they already know. Or paraphrased, you get stuck in a certain way of thinking and can’t see past it.
Unfortunately, I made the mistake of rereading his essay to verify that I remembered it correctly. Bad move. Several hours later, and essays, I ended up being impressed once again by how well Paul (or should that be Mr. Graham?) writes and thinks.
I hate to admit it, but I also had a more primal reaction – to shutter up this blog, purge Google’s caches and hope that no one who has ever visited has heard of Paul Graham, let alone read anything he’s written. But sadly, that cat is already out of the bag.
Working at a Snails Pace
But it did make me focus on an issue that’s been percolating in the back of my mind – how long does it take Paul Graham, or any grade A blogger, to write their posts?
Why do I care? Because it takes me a significant amount of time to write anything and I’m curious how that compares to other people (I think the time is well spent, but that’s a topic for another post).
If you’re feeling obstreperous, you might point out that its an impossible question to answer. To really know, you’d have to compare the time it takes for two people to write equivalent posts. But of course there is no obvious way to define equivalency. What is you measuring yardstick? Number of words? Please. Relevant content? Popularity? Who knows.
The Realm of Masters
I think we can look to the programming world for guidance. It is generally accepted that the best programmers are an order of magnitude more productive than average ones. Put another way – one great programmer replaces ten average ones. In the abstract it sounds impressive. But when you see it in real life, its truly amazing.
I have an alarming suspicion that writing is the same. I don’t have any proof to back it up, and a couple of minutes of googling failed to turn up any studies that compared the productivity of different writers (I assume such studies exist, does anyone have some links?).
But I think writing and programming are very similar. Both are creative endeavors that force you to carefully formulate your thoughts so that you can translate them from your mind into a language (English or Java) that is then read by a person or computer.
The tiniest details matter – every word, every line, every paragraph, every block. I used to argue that point with my English high school teacher, Mr. Kelleher – I didn’t believe it. In particular, I remember arguing over Faulkner’s As I Lay Dying, triggered by the famous chapter “My mother is a fish.”
At the same time, the biggest details matter – without a clear organization your story or program soon dissolves into a mass of unintelligible gibberish. Thus writing, and programming, work from the bottom up and from the top down.
Both require raw talent. Without it, no amount of practice will help. You might want to be the next Tiger Woods, but even if you practice golf every day for the rest of your life, you likely aren’t going to come close.
That’s not to say practice isn’t vital. It is. It helps you improve your skills and gives you an edge over people with similar talent. Without it, you’ll squander your raw talent and achieve nothing. But sadly, practice alone won’t let you beat those with much greater talent.
Trying to Be a Good Writer
You may have noticed my choice of I words above – an “alarming” suspicion. Why alarming? Because if my analogy is correct, then I fall squarely into the average category. To be a master writer, not only would I have to write interesting things (ala Paul Graham) but I’d also have to produce them with much greater frequency than the average writer.
I actually do consider myself a good writer (then again, what else am I going to say on my blog?) although of course by now you’ve come to your own conclusion. Back in my younger days, I put writing down as one of my skills when preparing for my first job performance review at Environ, an environmental consulting firm I worked at. I figured that might be a bit boastful – but little did I know that I had doomed myself to a 30 minute dress-down as to why I was wrong. And looking back, rightly so. Environ’s business was, and still is, creating impartial documents that evaluate the health and environmental risks posed by chemicals, food packaging, superfund sites, industrial sites, etc. These documents are required by local, state and federal regulatory agencies and can make or break business deals. Clients pay tens of thousands of dollars for them – so they have to be clear, fair and defendable in court.
Since then, my writing has gotten better (practice, practice, practice) and I’ve gained a more nuanced view of my abilities. My real strength is editing – I can almost always improve drafts that people send me. And I’m good at creating/editing technical and scientific documents. But after that my skills start to fall off. In particular, and as I mentioned above, my achilles heel is my writing speed.
Program Like You Write
I program like I write. Which means I figure out roughly what I want to achieve in my head or on a whiteboard, and then I create a first cut of it. That inevitably exposes parts of the problem that I didn’t see, which in turn leads to major revisions in my proposed solution. And then I repeat the process over and over until I’m happy with my final solution.
Its a ghastly inefficient way of doing anything, but that’s how my mind works and I’ve come to accept it. But it doesn’t work as well for writing as programming, because I have a harder time figuring out what I want to write. In fact, when I’m suffering writer’s block (I rarely suffer programmer’s block, although it happens), the only solution I’ve found is just start writing something – anything. After a few hours, or sometimes days, something will emerge out of my muddled thinking. The end result is that writing requires more iterations because I’m less able to see the solution before starting.
I wonder if other people program like they write? Is the same part of the brain involved in these two creative processes? Or do I have two parts of my brain that like to approach problems in the same way? Or is it some combination of the above? I’d love to hear other people’s experiences.
The Final Score
To finish, let’s tally up the final score. This was a particularly painful post to write – it took roughly 7 hours to write over the course of a week. Why did it take so long? Because it took 3 major revisions to figure out what I wanted to say. And even now, I’m not particularly happy with it. But I think its good enough to post, and there are other more pressing matters at hand.