Coding Horror

programming and human factors

On The Meaning of "Coding Horror"

In a recent web search, I found the following comment in a programming.reddit.com thread from eight months ago, completely by accident:

I think prog.reddit will continue to move in phases... a couple of days ago, someone complained about a drop-off in Haskell articles, today there were 4 or 5 ... next time Django or Rails does something worth noting, there'll be a plethora of Python/Ruby stuff. Despite its limb-gnawing tedium, Coding Horror will continue to rank high.

I personally think describing what I do here as "limb-gnawing tedium" is a bit hyperbolic. But it made me laugh.

I can understand where the commenter is coming from; the web is chock full of content that absolutely bores me to tears. If I stopped and wrote a comment bemoaning every boring blog post or web page I've ever found, I'd scarcely have time to do anything else. Such comments would also be a bit of a downer for the author, as I'm sure someone is interested in that particular topic. The whole point of putting content on the internet is to find an audience, however tiny that audience might end up being. Maybe you're not a member of the audience, and that's OK.

I try to avoid blogging about blogging because it's such a cliche. And it's boring. However, after digging a bit deeper in the programming.reddit.com comments, I became concerned:

What I don't like about "Coding Horror": the title promises "Daily WTF" style entertainment, but doesn't deliver. "Coding Horror" ought to be about people coding dynamic web pages entirely in SQL, or having some mission critical system written in a cryptic version of csh.

This is a profound misunderstanding. If you're coming here looking for that sort of entertainment, you're bound to be disappointed. I'd like to think this site is the opposite of The Daily WTF.

I apologize for the confusion. Allow me to explain.

First, the literal explanation. The sidebar of Steve McConnell's seminal book, Code Complete, contains a series of icons denoting particular areas. There's a "Hard Data" icon, a "Key Point" icon, and a "Coding Horror" icon.

Excerpt from the book 'Code Complete', page 340

I have to talk a little bit about the influence this book had on me as a young developer.

I graduated from college in 1992, and entered the field of professional software development at that point, at least in terms of being paid to do so. I loved it, but I really had no idea what I was doing. I was a young, inexperienced developer working in small business, where there aren't a lot of other developers to look to as mentors. Nor was the internet a factor; the internet didn't really hit until '95 for most people. I was living in Denver at the time, and I frequented the Tattered Cover, a great independent bookstore. Code Complete was originally published in May 1993; I stumbled across it while browsing the computer book section at the Tattered Cover sometime in 1994. I was floored. Here's this entire book about becoming a professional software developer, written in this surprisingly friendly, humane voice. And it was backed by rational research and real data, not the typical developer "my brain is bigger than yours" chest-thumping.

I had found my muse. Reading Code Complete was a watershed event in my professional life. I read it three times in one week. It immediately became my Joy of Cooking. I didn't even know it existed, but it showed me that if you loved food enough, it was possible to go from being a mere cook to a real chef.

One of the most striking and memorable things about Code Complete, even to this day, is that Coding Horror illustration in the sidebar. Every time I saw it on the page, I would chuckle. Not because of other people's code, mind you. Because of my own code. That was the revelation. You're an amateur developer until you realize that everything you write sucks.

YOU are the Coding Horror.

The minute you realize that, you've crossed the threshold from being an amateur software developer into the realm of the professionals. Half of being a good, competent software developer is realizing that you're going to make tons of mistakes. You will be your own worst enemy almost all the time. It's a lifestyle. You're living it right now. You, me, all of us. The problems start with us. We're all coding horrors. This story from the Tao that Reginald Braithwaite posted is as good an explanation as any:

There was once a monk who would carry a mirror wherever he went. A priest noticed this one day and thought to himself, "This monk must be so preoccupied with the way he looks that he has to carry that mirror all the time. He should not worry about the way he looks on the outside. It's what's inside that counts." So the priest approached the monk and asked "Why do you always carry that mirror?", thinking this would surely prove his guilt.

The monk took the mirror from his bag and pointed it at the priest. He said, "I use it in times of trouble. I look into it and it shows me the source of my problems as well as the solution to my problems."

If you're horrified by what you see in the mirror, you are not alone.

I chose that title for my blog – with explicit permission from Steve – because it's a clever in-joke about becoming a humble professional programmer. That's what I try to do here. I write to learn and explore topics that deal with computers and programming, and because I'm easily bored, the topics I find most interesting tend to apply to a wide audience of programmers. Maybe even people who don't know they're programmers yet. To steal a phrase from the talented Rich Skrenta, I blog to help others and also to learn. As it turns out both are aided by getting folks to actually read the stuff.

But that's not the complete story. I'd be lying if I didn't admit that there's an element of selfishness at work here. I love computers and programming. I love it so much it borders on obsession. When I saw the movie Into The Wild, I was transfixed by the final note written into the margins of Dr. Zhivago by a doomed Christopher McCandless: "Happiness only real when shared."

Into The Wild, partial quote, 'Happiness only real when shared'
Into The Wild, partial quote, 'Happiness only real when shared'
Into The Wild, partial quote, 'Happiness only real when shared'

I realized, that's it. That's it exactly. That is what is so intensely satisfying about writing here. My happiness only becomes real when I share it with all of you.

Written by Jeff Atwood

Indoor enthusiast. Co-founder of Stack Exchange and Discourse. Disclaimer: I have no idea what I'm talking about. Find me here: http://twitter.com/codinghorror