Wednesday, February 16, 2011

How to be a Programmer

To be a good programmer is difficult and noble. The hardest part of making real a collective vision of a software project is dealing with one's coworkers and customers. Writing computer programs is important and takes great intelligence and skill. But it is really child's play compared to everything else that a good programmer must do to make a software system that succeeds for both the customer and myriad colleagues for whom she is partially responsible. In this essay I attempt to summarize as concisely as possible those things that I wish someone had explained to me when I was twenty-one.

This is very subjective and, therefore, this essay is doomed to be personal and somewhat opinionated. I confine myself to problems that a programmer is very likely to have to face in her work. Many of these problems and their solutions are so general to the human condition that I will probably seem preachy. I hope in spite of this that this essay will be useful.

Computer programming is taught in courses. The excellent books: The Pragmatic Programmer [Prag99], Code Complete [CodeC93], Rapid Development [RDev96], and Extreme Programming Explained [XP99] all teach computer programming and the larger issues of being a good programmer. The essays of Paul Graham[PGSite] and Eric Raymond[Hacker] should certainly be read before or along with this article. This essay differs from those excellent works by emphasizing social problems and comprehensively summarizing the entire set of necessary skills as I see them.

In this essay the term boss to refer to whomever gives you projects to do. I use the words business, company, and tribe, synonymously except that business connotes moneymaking, company connotes the modern workplace and tribe is generally the people you share loyalty with.

Welcome to the tribe.

Posted via email from

Monday, February 14, 2011

You need someone like Marc around to overcome the soul-sucking blackness that sets in when you've agreed to impossible goals.

Saturday, 24 September 1994, 5pm.

We had one of those ``we're going to win big'' meetings today, where Jim and Marc wave their arms a lot and say ``these are not the droids you're looking for,'' and we all sit there and nod enthusiastically and grin and say ``these are not the droids we're looking for.'' I like those meetings, because they're so convincing. They make me feel like maybe I haven't been wasting my time. You need someone like Marc around to overcome the soul-sucking blackness that sets in when you've agreed to impossible goals.

I've been working, trying to beat this accursed Unix client into shape, and everyone else has been dipping into the corporate beer supply. You know, I spend basically every waking hour with these guys, and I think we get along remarkably well, considering, but it's really starting to wear thin. Add alcohol, and they all get Extra Special Annoying.

Posted via email from

Facebook generation