Coders at Work: Reflections on the Craft of Programming – Peter Seibel

Coders at Work is consciously modeled on the Paris Review Interviews with famous writers and comes out better for it. The interviews are deep, thoughtful, wide-ranging, and show strong opinions without pedantry or needless prejudice. Many such opinions aren’t unique to programming or can be transferred easily to a wider domain area; Dan Ingalls, for example, says that “[M]y feeling about the powerful ideas that are necessary to lead a good life, it’s not clear how many of them are in this space,” this space being the intersection of computers and math. The expression is a bit awkward, which shouldn’t be surprising given that these interviews were conducted in person, but the idea of tremendous respect for powerful ideas is an attractive one that’s expressed over and over in these essays.

Coders at Work is surprisingly fun and useful, even for people whose connection to computer science is tenuous, chiefly because its metaphors and ideas about work and beauty travel. The author’s bio says, “An English major and would-be journalist in college, Peter was seduced by the web […]” and eventually became a hacker. Perhaps not surprisingly, then, I see a lot of ideas that one can apply to writing in this book. Joe Armstrong says that writing is an essential skill for programmers, and he says that writing is “actually very difficult to teach because it’s very individual.” Since I teach writing, that resonates with me, but it seems that coding is equally difficult if not quite equally individual, but the difficulty in learning both seems like a similar problem space. I write this from the position of someone with about a dilettante’s Computer Science 102 view of these things, but I see nothing in Coders at Work that’s incompatible with such a view. Both hacking and writing seem like what I call “10,000-hour problems,” or those that will require that much time to master. Ingalls implicitly agrees:

[…] I still love to just take a problem and sit down and pore over it until it’s right. There’s an analogy here: I tried to learn to play the piano fairly late in life. People said, “Oh, you should learn when you’re young. You learn so much quicker.” Although I didn’t go very far, my conclusion was that it isn’t that young people learn that much faster; it’s just they have more time. When I would put time in, I made progress.

I feel a bit the same thing with programming. When I look back on earlier times in my life, I had all the time I wanted. I would just work and work. Now there are other things going on in my life and I’ve got responsibilities that aren’t just programming. That undermines a bit of that intense focus.

Replace “programming” with “writing,” and I think the ideas about the process of learning stand. Ideas about beauty seem to transfer as well. L. Peter Deutsch says, “[… I]t’s just seeing anything around me that’s being done badly has always offended me mightily, so I thought I could do better.” Perhaps not surprisingly, Deutsch also says:

As crazy as it may seem now, a lot of my motivation for going into software in the first place was that I thought you could actually make the world a better place by doing it. I don’t believe that anymore. Not really. Not in the same way.

Maybe not: but I suspect that we make the world a better place by becoming really, really good at something—so good that no one else can do it as well as us, or some small coterie of skills that interact with one another—and then ultimately teach others that skill or suite of skills too.

The dominant idea in Coders at Work is not how to apply the skills once you have them, but the challenge and process of acquiring those skills. The coders interviewed acquire and apply them in diverse ways, but the dominant theme in all of them is starting early and intense, dedicated work. There is no other way to learn and to develop “Taste for Makers.”

One question is why more people don’t find and excel in coding, or in any particular, demanding field. Donald Knuth speculates that only about 2% of the population has the aptitude and desire for coding. Maybe. And maybe some segments of the population are turned off by the culture or cultures of coding. In a blog post, Seibel wonders whether there are “Enough women in Coders at Work?” The obvious answer from a gender parity perspective is “no,” but from a practical prospective I’d observe that a) there has been an overly low proportion of women in computer science for as long as one can remember and b) many of the interviewees came of age in the 60s and 70s, when the problem was even worse than it was now because of other institutional and cultural barriers.

Fran Allen takes up some of these issues. But Seibel is also a writer, and not directly responsible for the number of prominent, expert women coders; the fact that the issue arises is a sign of progress. Still, it is not effective to order people to learn to code or to like to code any more than it is effective to order people to become writers; the best you can do is give them an environment conducive to growth and remove institutional barriers and see what happens. Maybe some of them will learn taste and, better still, beauty.

(You can—and should—also read Joel Spolsky’s take on Coders at Work. His point: sometimes you need people who get things done.)

3 responses

  1. Thanks for this. My father spent his career first as a programmer (beginning in the punch-card days at IBM) and then as a systems analyst. He and I once talked about how the underlying skills of our respective careers really aren’t all that different. I’ve only recently realized that the most important steps I took toward becoming a writer didn’t involve the usual exercises in creativity. Instead, I learned to program a computer, took a course in symbolic logic, and dabbled in highly inflected foreign languages. I don’t know that I’d recommend that exact path to others, but I have found that many aspiring writers are too quick to dismiss the value of programming, even though it’s an incredibly illuminating way to begin organizing and understanding one’s own thought processes.

    Like

    • You’re welcome for this—I’m impressed that your Dad got into the business, as it were, during the punch-card days, as many of the subjects in Coders at Work did too (but not all—Jamie Zawinksi started in the 80’s).

      “I’ve only recently realized that the most important steps I took toward becoming a writer didn’t involve the usual exercises in creativity.”

      I suspect most writers’ first steps don’t really involve creative exercises, at least as defined as sitting around staring at clouds—I suspect many involve spending a lot of time at their computer/notebook/typewriter/whatever and hacking out a lot of crap. Or maybe we all tend to generalization that whatever we spent doing early is what everyone does.

      “I don’t know that I’d recommend that exact path to others, but I have found that many aspiring writers are too quick to dismiss the value of programming, even though it’s an incredibly illuminating way to begin organizing and understanding one’s own thought processes.”

      Yeah. One other thing is that programming is immediately bloody hard in a way that few other intellectual activities, at least in my experience, are or have been. In a recent post, I quoted Ian McEwan saying of Calculus, “It was like trying to lift a weight that was a little too heavy.” But trying to lift that heavy weight has benefits of its own.

      Like

  2. Pingback: Links: Peter Norvig, Coders at Work, Tucson tedium, bookselling, teachers, Tolkien « The Story's Story

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: