I <3 Steve McConnell*
Coding Horror
programming and human factors
by Jeff Atwood

December 15, 2007

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 cliché. 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.

[advertisement] The new Axosoft OnTime 2008: it's a bug tracker, project wiki, requirements manager, and help desk incident tracker. It's backed by a guarantee, a community, a weekly podcast, and smart support. Installed or hosted -- Free single-user licenses and 30-day team trials.

Posted by Jeff Atwood    View blog reactions

 

« Our Fractured Online Identities Software Registration Keys »

 

Comments

Whoa... deja vu. Didn't you write that explanation already? For the record, I get tons of inspiration from your blog, because it mirrors my own geekery.

Winsmith on December 16, 2007 03:38 AM

Within the partial talk of your development that to exceed in programming you have to acknowledge that your always going to make mistakes and compared to the next generation of programming your doing it the wrong way. I would tend to somehow agree with that. I've never seen a programmer that hasn't not had the experience of trying to fix major mistakes that they could have done only the week before. Programming is not foolproof and never will be. The larger your program is, the more fundamental problems you may run into.

My advice would also be open minded to what your trying to achieve, and is someone else's way better than yours? Programmers sometimes have the notion that their own ideas are the correct ideas, but often they are not.

Chris Vincent on December 16, 2007 03:41 AM

"My happiness only becomes real when I share it with all of you."

And thank you so much for sharing it, for it makes me happy when i read it.

rien on December 16, 2007 03:46 AM

Jeff,

Your blog inspires me, keep up the good work and ignore the people that can't see the good you are doing. You can't appeal to everyone after all. I would kill for the audience you have, it beats my 3 readers, lol, anyday.

Keep up the good work,

Rob

TheProblemWithProgrammers on December 16, 2007 04:13 AM

Scott Adams (Dilbert) had something in one of his books, roughly paraphrased: "some people would say one out of five is a terrible success rate, I think it's often fine because I know if one in five of my cartoons makes someone laugh then they'll forgive me for the other four times."

The mental economics of this works out because there's a small cost of reading something mediocre. You don't have to write top-drawer posts EVERY time, just being "good enough" is enough to keep your regular audience as long as you have some really good posts occasionally to remind us why we bother. The Internet is great for filtering this sort of thing.

Gomez on December 16, 2007 04:14 AM

Odd that people want you to basically be a backup DailyWTF. That name change must have really stung.
Congratulations on over 1000 (mostly) great posts.

"Didn't you write that explanation already?"
Oh come on, what kind of sad loser would find this blog for the first time, and then read every post in the archive. Well sure, there's me, but I'm "special"...

Tom on December 16, 2007 04:16 AM

Cheers Jeff !

Originally, I began coming here because I was under the impression there would be WTF style writing and coding *Horror* articles, and I expected a few laughs along the way. Instead, I've gotten a profound sort of enjoyment from the addicting educational content you write and from the writing of the talented commenter's.

Thank you for your blog.

Patrick on December 16, 2007 04:20 AM

It may be that many of us came here to read rants about bad design or bad products, but we keep reading and becoming humbler programmers.

the 'humble programmer' issue deserves another post.

Thanks and keep on writing.

Jorge Diaz Tambley on December 16, 2007 04:31 AM

Hey Jeff,

Its been a simply great experience by tracking your blog since over an year. I am just reaching my 20-s and your tips and experiences are already making an ultimate effect on me/my style of looking at a problem. And wherever I go, I share my experiences to my colleagues and partners-in-Projects. I know that these projects may not be of much importance, but, Experiencing early always helps later :)
Really thanks to your blog ! hats off to it :)

Cheers

Bhavik Vora on December 16, 2007 04:34 AM

Hey there,

I'm exactly in the same situation as you were about 15 years ago. A young developer in a small company with no one to lookup to. So I'm following your advices and anecdotes here...your are somehow my surrogate mentor.

Keep this blog the way it is!

Regards, David

David on December 16, 2007 04:39 AM

Wow, maybe I'm more professional than I thought.

I've been saying the following to younger guys in my teams for years:

"All code is #$$^, and you've written some of it yourself"

JM on December 16, 2007 04:48 AM

"Oh come on, what kind of sad loser would find this blog for the first time, and then read every post in the archive. Well sure, there's me, but I'm "special"..."

Yeah, me too.

Jack on December 16, 2007 04:50 AM

jeff,

firstly thanks for your blog. i read it everyday eversince i stumbled upon it on google. a hard task cause i'm in east africa thus 6six hours ahead of you.

MKJS on December 16, 2007 05:26 AM

hi
Your blog is the great source of fun and inspiration for me.:)
Thank you:)
Great story about "hapiness only real when shared". *touched* :)

sheleztt on December 16, 2007 05:29 AM

Interestingly enough Jeff, the very first blog post I wrote about programming (when I was 23) was picked up by you. That was the first time I'd heard of CodingHorror. I initially presuming this was Steve Mc Connells blog, but learned pretty quickly.

Since then I've read everything you've wrote, every word of it.
Your blog is really great, and it's been a large influence on my programming life, not so much as Code Complete itself, but a large influence none the less.

So congrats :)

Des Traynor on December 16, 2007 05:35 AM

Jeff, keep up the good work.

prog.reddit.com is mostly inhabited by youngish CS students, hence the massive amounts of Haskell posts and discussions about FizzBuzz. They find your blog "boring" because it's about real development, with clients, and deadlines, and the inevitable compromises, and the need to use VB, or Java, or C#, or other impure languages.

You're a voice of reason in a blogosphere that's sometimes shockingly uninformed. No-one should be allowed to write about professional software development without having worked with it for at least 2 years.

Gustaf Erikson on December 16, 2007 06:04 AM

I'm going to be reading Code Complete this Christmas on your recommendation of course. I've only been a professional developer about 10 months so I'm glad I've already found this blog. I really hope I can find as much inspiration in the book as you obviously have.

Alex S on December 16, 2007 06:17 AM

Another "quantum leap" of yours.

http://www.stevepavlina.com/blog/2005/04/levels-of-consciousness/

cheers,

wqw on December 16, 2007 06:17 AM

I never get what I expect from Coding Horror, but that is why I keep coming back.

Who wants to talk with people who agree all the time.. how boring is that ?

David Ginger on December 16, 2007 06:21 AM

Ill sum-up how much I like your blog in one sentence:
"I check it DOZENS of times a day for new posts."
Or mabey this one:
"Thanks Jeff"

Arron on December 16, 2007 06:41 AM

I have been writing instructions for computers of one form or another since I was 11, in 1981. I watched (and enjoyed) Doctor Who, and I used to try to find ways to make commodore basic break the time barrier. 11 was awesome.

All these years later, I am a C++ game developer. I have read this blog for quite some time now, and have always enjoyed it. The comments and commenters have made me nod, and made me curse. But, as has been said above, it doesn't matter whether I agree with you (or those who comment) or not... the point is, you have an opinion. All my life, trying to talk to people about code, or Doctor Who, has been like bashing my head against a wall.

You, sir, are not someone who THINKS they have an opinion. You are someone who's hands are dirty with screwy logic, as are many of the people who comment on your blog; and therefore, I gain a sense of community, or belonging here, reading the words of someone who`s opinion is genuine and valid... and the opinions of those who are inspired or stimulated to agree or disagree. I dont believe I have ever commented but today warranted the time taken.

I don`t believe anyone that wastes time comparing your words with anyone else`s is getting the point, or maybe they`ve found their own point, who knows... it`s a big wide world...

But, I am glad you write this. I don`t know how you find the time. My every waking moment is parsable text (and not by humans). I don`t know how my fiancee puts up with it... maybe coz she`s a sysadmin...

But, thanks Jeff (!), I read this every day (even my local newspaper doesn`t enjoy that attention, LOL). Everything you say has a grain of truth to it... I always end up feeling that my life has been enriched by bothering to come here and read.

Philip Snelgrove on December 16, 2007 06:56 AM

Jeff,

I have been reading your blog for about 2 years now, and I look forward to every post. I came here during a search for some books on becoming a better programmer, and found your recommended reading list. I have read nearly every book you have put on there. Being actually in the programming field for about 2 years now, your blog has been a tremendous source of inspiration, knowledge, and ideas.

Keep up the GREAT work!

Ryan on December 16, 2007 06:58 AM

What a great book to find so early in your career. I'm still supporting code I wrote 12 years ago, and at times it's quite painful.

Kearns on December 16, 2007 07:10 AM

"Limb-gnawing tedium"? Great phrase, but hardly applicable to Coding Horror. Hey, listen, I'm not a programmer, just know (X)HTML/CSS and wish someone would write a good word processor. I'm a writer, and I read your column for the delight I get from your craft. Also, as an almost daily reminder that writing well requires a deep investment in research and editorial elbow grease. Thanks, thanks.

George Beinhorn on December 16, 2007 07:42 AM

Hi Jeff,

I can't believe the comment about "limb-gnawing tedium"!!! I just looked at my Google Reader feeds and your blog has more starred articles for me than any other blog I read! I can't even begin to count the number of times I referred articles you wrote. At one place I contracted for I know one of the articles I referred to went to the highest levels and was the basis of the final decision made.

And as I also mentioned to you before, I bought the book Code Complete because of your referral. It's a great book! It was so good I also get Rapid Development by the same author. I also just recommend them both on my blog.

All I can say is thank you for writing your blog. Your blog is one of the best blogs online. It's not fluff, you have really good content. It's very thoughtful. I highly recommend it to any and all software developers. I know it's required reading for me!

Stephane Grenier on December 16, 2007 07:56 AM

Hi Jeff,

Actually after posting my last comment, it made me think about something. For you to post such consistently interesting topics, and with the amount of detail and effort you put into each one, I can't even begin to imagine how much time it takes you a week...

Stephane Grenier on December 16, 2007 08:00 AM

Hi Jeff. I read you blog daily (I'm even added it to my rss feed reader...), I've always appreciate your posts and youre style... Now, after this explaination, I can say you've got the Olympus of bloggers... At least for my personal thiught. :D

Blackstorm on December 16, 2007 08:13 AM

If you wrote this post to get all of your readers to post a comment lavishing praise upon you and generally sucking your toes, it worked.

I love Coding Horror. :P

Chris Luebbe on December 16, 2007 08:29 AM

Me thinks you doth protest too much. I don't think you should need to defend your blog in over 1,000 words. Either do it or don't, and if people like it, don't worry about it, and if people don't like it, keep your day job.

But if we're on the subject of unsolicited advice, why do you bold random sentences? One would think that each time you bold a sentence you're going to want us to find that to be the take-away point or a very witty line, but half the time it seems like you've just bolded the topic sentence of the paragraph. Ease up on the bolding, it looks silly, and each time you do it I imagine you making a very silly-serious face even though half the time you're not saying anything that really needs to be bold. There's no reason that "becoming a professional software developer" should be bold in the above post; the others are probably fine though unnecessary. Excessive bolding makes it look like you're taking part of a bad parody of business culture.

Shmork on December 16, 2007 09:11 AM

i read your blog and the daily wtf and get very different benefits from reading both. in fact, according to the 'trends' link in google reader, i'm reading 97% of your posts and only 23% of the daily wtf posts. i find that you post at a reasonable frequency, with articles sized right for a short break from coding and about issues i find interesting. the daily wtf is great too, but there are way too many articles coming off that site lately and it's a bit overwhelming to try to read it all.
keep up the good work!

frankzappa on December 16, 2007 09:21 AM

And, I thank you for sharing. I discovered your blog not long ago, but it has been very satisfying to read over you new and old posts.

I remembered when I first read Code Complete. It was given to me by an old boss on my first week on that job. At the time, I also thought I knew what I was doing, and the book made me realize what developing software is all about.

This was long time ago, and I haven't read it since then, but I should go back and revisit it. A reallity check comes handy once in a while.

Isaac Rodriguez on December 16, 2007 09:32 AM

Don't worry about the Reddit guys, 98% of them are mouth breathing morons.

Jonathan H on December 16, 2007 09:39 AM

Your words are an inspiration, and so is your motivation. Stay the course!

K Elbashir on December 16, 2007 09:48 AM

Limb-gnawing tedium? Never. And you have the good sense to avoid blogger cliches like superfluous pictures and faux-Zen quotes.

:-)

Reg Braithwaite on December 16, 2007 09:55 AM

It does often seem that all people want are easy pre-chewed answers. They'd rather see a how-to or list of stuff for programming then actually read something that is thought-provoking. With Coding Horrors you are clearly one of those blog authors who is working hard to elevate the discussion beyond just syntax and semantics. And your doing it well. Software development is so crude right now that we have a virtually unlimited sphere of interesting things to explore and write about. The reference stuff is ok, but it is not helping us make improvements on our work; it is just helping us to get it done a little faster (or possibly just providing a good excuse to keep a web connection and do some surfing while at work :-)

Paul.
http://theprogrammersparadox.blogspot.com/

Paul W. Homer on December 16, 2007 10:16 AM

i wouldn't let this get to you. aside from thousands of articles of ron paul, reddit has contributed little to the global collective intelligence. continue doing what you do!

JMC on December 16, 2007 10:21 AM

even in the general sense, this is easily one of the best blogs online. i'm surprised at the rate and depth at which you update. really takes something to be a full time programmer yet accumulate the knowledge and thinking that goes behind writing the around the topics you write here, it's really impressive. keep up the great work jeff!

Gaurav Sharma on December 16, 2007 10:36 AM

I only read Coding Horror for information on sci-fi zombie flicks. So far Jeff "I am Legend" Atwood has done nothing but disappoint.

Eam on December 16, 2007 10:54 AM

When I started reading codinghorror I gave up on dailywtf. I realized that consuming other people's misery did not make me a better developer. Codinghorror makes me a better developer :)

Marko on December 16, 2007 11:11 AM

you graduated from college 15 years ago!? wow... i feel young :)

opensoresfreak on December 16, 2007 11:16 AM

I'm generally a silent reader, but I thought it's THE post to comment on and say:
Don’t make even the slightest change in the way you write, and in topics you choose. It’s already perfect man ;)

Bahador on December 16, 2007 11:19 AM

The passage of time has made me realize everything I wrote some years ago is utter crap. The fact that it keeps working in spite of the glaring absence of style, documentation and logic is amazing. In just one program I wrote for my for personal use, there's a table that will never, ever, exceed 200 TV channels and a Y3K bug. If daylight saving time ever starts on the fifth Sunday of February (2036) bad things happen at 2:00 AM. There's a routine I won't touch because I forgot how it works or why it's there. Yikes!

The only consolation is I write better crap today than I did then.

Izzy on December 16, 2007 11:47 AM

Just wanted to toss in my 2c that I love your blog for what it is, and I love your explanation today for the name of your book. Half the time I want to cry out "Who wrote this $h!t, I'm held back by the possibility that I did it..."

Keep up the great work!

John Fiala on December 16, 2007 11:49 AM

Jeff,
Keep up the good work, your blog is used in the classroom for inspiration. We read your blog weekly, one of only a few that has substance.

Rick on December 16, 2007 12:27 PM

Additional note on why that probably showed up on programming.reddit.com: Your posts are widely read by people there, and most likely they're subscribed to you in their feedreaders. Each time you put out a new post, it gets submitted and shoots to the front page of prog.reddit.com, which is far from a bad thing. But I think these people get tired of seeing you there, because they want to see something they haven't read yet (already having read your latest post in their feedreader) and reddit is supposed to bring them interesting stuff from all over, not just one site they already knew about and read. The CS-students who are bored by descriptions of clients and deadlines is probably accurate, too.

Mathias on December 16, 2007 12:52 PM

Reddit is full of 18-20 year old kids who think AntiTrust was a good movie, and that Open source solves all problems.

Most of them are absolutely fools, happily endorsing both Ron Paul and programming fads such as Rails.

I'd IP ban the block of them if I could :)

Reddit on December 16, 2007 01:07 PM

Wow, it looks like we are on similar career paths, mine just taking place 15 years after yours.

I work from a small company, about 20 or so people in the IT department, and I would have to say that there are no mentors for me there. In fact, at 25 years old, I was asked to be the mentor of my project group, a group where everyone has more coding "experience" than myself.

I too was enlightened by reading Code Complete. Not until I read the book did I realize that I was coding wrong, and that my code was horrible. I would have never read the book (which I have had since 2000, but just read it this year), had it not been for this blog.

Martin on December 16, 2007 01:27 PM

I've never thought that this blog was some form of "programming gone bad entertainment." Every time I come, I expect great insight into the world of programming, which is what I always get. Thanks for the great work!

Matt on December 16, 2007 01:39 PM

Heh, I also thought this would be a Daily WTF kind of site. I am a CS student, too..but I find your articles quite illuminating. Some more linux stuff would be nice (you focus a lot on .NET, etc), but otherwise, it's v. good, and keep it up!

Jean Azzopardi on December 16, 2007 01:42 PM

"You're an amateur developer until you realize that everything you write sucks."

As someone who has been (in his own mind, at least) an amateur programmer since I coded my first program on IBM punch cards nearly forty years ago, this strikes home!

But on the other hand, I'm often well aware that what I write sucks, so maybe that means I'm no longer an amateur. Whatever the truth about this, I was delighted to discover your blog some months ago, and have gained a great deal from it. "Code Complete" is on its way to me from Amazon.

David on December 16, 2007 01:50 PM

Hi Jeff!

I have started reading Code Complete today.
Thanks!

Peter Juhasz on December 16, 2007 02:33 PM

At our workplace a coworker bought the Code Complete that you refer to. It has many great insights, I started reading it but after reading some pages I decided to work on our projects instead. I thought that my way of programming was just good enough.

My style of programming is "throwing mud up on the wall and hope that it will stick". On some occations, I rewrite the whole thing, making shorter routines, separating the code into objects and methods, and doing a better job than the first time. I just discovered that one of my coworkers who is also a programmer, also rewrites the whole thing to provide a more readable program, so that other programmers won't get a headache reading the code.

By the way, everytime my browser starts up, it reads www.codinghorror.com/blog. It is my home page, whatever that means.

Gunnar Vestergaard on December 16, 2007 03:00 PM

Jeff, just wanted to say thank you for your work, your writing, on this site. More often than not, it's enjoyable and thought provoking. Maybe "Coding Horror" evoked the idea of software train wrecks briefly before I started reading, but you provide SO much more than that. So thanks, and keep up the great work!

bill weaver on December 16, 2007 04:05 PM

I check every day to glimpse your limb-gnawing tedium.
It's so relevant to my life :-)

hmmmm now why would that be so?

Eric on December 16, 2007 05:21 PM

Surpised no one has mentioned this one yet:

http://blog.kickin-the-darkness.com/2007/09/confessions-of-terrible-programmer.html

Timbo on December 16, 2007 06:10 PM

This site is my joy of cooking, I was barely a Mort++, then I stumbled upon it a year ago, right away I had to go to post #1 and read them ALL in succession. Basically, Jeff's easy accessibility and real humility inspired me to hone my own craft. I am a much more serious, professional, and successful Developer thanks in large part to this site.

Thanks,
-Andy

Andy P on December 16, 2007 07:01 PM

One of the three vitrues of a good programmer, at least in PERL, is laziness. However, once code is written, it will have to be maintained eventually, just to keep track of new compilers and new operating systems. That sounds contradictory to me.

Jon Abaca on December 16, 2007 09:17 PM

No "limb-gnawing tedium" for me. I love your blog.

Likewise, I love "Code Complete." I had already been programming 20 years when I discovered it, took it home, and quickly realized it was the best programming book, by far, I'd ever seen. Ever since, I've been recommending that magnificent classic to anyone that will listen.

I'm way too busy to spend any time on web resources that aren't the richest, densest, "most bang for the buck" available. That's why I check your blog regularly; I'm constantly learning new things.

Your blog perfectly captures the "Code Complete" way of thinking. No need to get defensive over uncomprehending infants that think otherwise.

Thanks for your work.

Jeff Rice on December 16, 2007 09:49 PM

I enjoy my shitty coding. It reminds me that I'm still human.

And while we're on the subject of shitty coding, can someone please explain to me why the second line compiles fine, but the third line gives me a "cast from pointer to integer of different size" error:

const char Boobs[] = "they feel like.. bags of sand!";
char *bra = (char *) Boobs;
*bra = (char *) Boobs;

Abel on December 16, 2007 10:09 PM

To paraphrase another: blessed are the poor in programming skill, for theirs shall be the kingdom of bug-free code.

Of course, _my_ code is all excellent first time! (I wish)

John Ferguson on December 17, 2007 01:20 AM

Jeff,

Dont change a thing. Except bad coding.

Chris on December 17, 2007 01:25 AM

Abel, are you trolling? ;-)

char *bra = (char *) Boobs;
*bra = (char *) Boobs;

On the last line you are casting a (probably) 32-bit pointer to a (definitely) 8-bit char.

cheese on December 17, 2007 01:37 AM

Your blog is certainly not limb-gnawingly boring! And on the times when I'm not interested in graphics card stats, I find myself able to close the window without losing any limbs....

Mags on December 17, 2007 01:54 AM

I think the problem with blogs is the articles and the comments about the articles. If the articles are tedious, or the comments are tedious, then the blog is going to be tedious. As the owner of the blog you have little control over the comments. I don't find much of what's on Coding Horror amazingly insightful, but it's worth it for the stuff that is. I also like WTF, and I wouldn't like to have to choose between them.

Dave on December 17, 2007 02:24 AM

I read your blog every day. Keep up the good work. Loved the "Happiness only real when shared." bit too.

Alex R on December 17, 2007 02:26 AM

Wait, there aren't any hilarious DailyWTF type articles?

That's four years as a regular reader of this blog wasted.

Ben Moxon on December 17, 2007 02:40 AM

I found Coding Horror 'cause we're both Steve McConnel fanboys. I have both editions and his writing makes me a better programmer. If I wrote a blog, it would be just like this one -- so, I suppose I don't have to.

Keep up the good work, Jeff.

I look forward to reading your posts.

g

Garret on December 17, 2007 04:37 AM

Being borderline MTV/youtube generation, my attention span is shot to hell so long blog posts don't fit well with me when there are a hundred other RSS subscriptions to flick through. That said, yours is one of the few blogs that I will stop and read from top to bottom. Very insightful and also very well written which is the key.

izb on December 17, 2007 04:49 AM

I've read an enjoyed this blog more times than I care to count.

It strikes a kindred note in my soul to realize that there is someone else in this world that understands what we go through.
Programming is to many of us; not just a profession but a love. I was first bitten in my early twenties in those glorious days when 64K was a LOT of memory and hard disk drives were what you were awed by at the 1st Northeast Computer Show in Boston, MA!
I've been at this for a long time and I've met and known a lot of the people who founded this industry but always remember, if it was not for guys and gals like us Jeff, none of this would have ever happened.
So, where am I going with this? WE ARE THE POINT!!!
We (us programmers) are the ones who put the magic in the box. The managers don't do it, the accountants don't do it, and Lord knows, the users don't do it. We do.
And this blog not only lightens my day but also provides some real technical insights.
As for being horrified? We can all use improvement in whatever we do but for every horror that I've implemented, I've also implemented beauty, that piece of code or design where one has 'nailed it' the first time and it's a wonder to behold. Any programmer who has done any amount of programming has experienced this and it is truly a wondrous feeling.
So, maybe I should start a counter (alter ego, whatever) site and call it “Coding Wonder”! That talks about the exemplary things that go on in our industry.
What do you all think?

Mac (aka John McPherson) on December 17, 2007 05:09 AM

Denver and the Tattered Cover. I miss Colorado. And love your blog. Just started tuning in every day just a few weeks ago. I "got it" right away, and have spent numerous lunch hours perusing the archives. From a Coding Horror Fan newbie and former Thornton - ite.

PaulG. on December 17, 2007 05:37 AM

> That talks about the exemplary things that go on in our industry.
> What do you all think?

I don't think you'd find much to wonder over...other than `how do all these guys writing really bad code get paid`!

Dave on December 17, 2007 05:38 AM

As always Jeff, leave the hyperbole to others. Your posts are rational, balanced, and persuasive.

And most important, they are interesting, without having to resort to attention-getting tricks like hyperbole and profanity.

If what you write is limb-gnawing tedium, then Dare To Be Dull, dude. Thanks for writing.

John Pirie on December 17, 2007 05:47 AM

Hey Now Jeff,
I'm very entertained & educated by reading this blog.
Coding Horror Fan,
Catto

Catto on December 17, 2007 06:20 AM

Jeff,
Since I began reading your blog earlier this year, I have had the feeling that you have access to my inbox. Now, I suspect that you've been following me around my career as well (probably cleaning up my messes). Your words are too often filled with truth, however uncomfortable. Thankfully, most of us can laugh at ourselves too.

Stay focused and keep up the good work. Ignore the haters.

-jeffh

jeffh on December 17, 2007 06:31 AM

Jeff,

Your blog is my Code Complete. Thanks.

bryan on December 17, 2007 07:01 AM

We love you, Jeff.

Mattkins on December 17, 2007 07:34 AM

Congratulations, your blog is a piece of art. It has motivated me to start my own blog.

Jose Lozano on December 17, 2007 07:53 AM

I don't know about all you other guys/gals, but I never write bad code... it's the interpreter/compiler that causes the bugs in my code... I know exactly what I want the program to do, it's the computer that gets it wrong.

I love this blog, and I am glad you made a Google widget so I was able to find it.

opensoresfreak: I have a student worker on my team that wasn't in school yet when I was taking my last Data Structures class...

Wayne on December 17, 2007 07:53 AM


Jeff,

Thank you for the gift of your time and software development philosophy. The only limb gnawing around here occurs when my cats snack on the Christmas tree.

Happy Holidays to you.

/Andy

Andy on December 17, 2007 07:56 AM

It was kind of nice when I realized that I was the coding horror. And, of course, I did think that I wasn't *really* the horror (that belonged to Marlon Brando); I thought I was coming along.
Now I know that I *really am* the horror. I've realized after nigh on 8 years that I don't even have enough knowledge and experience to be *decent*.
I'm getting laid off, and having a difficult time finding new work. I've put *massive* amounts of time and study into this career and I'll be very lucky to be re-hired @ 70K. Talk about not worth it!
I used to love it, so it didn't matter so much, but loving it only lasts so long when so many circumstances are out of your control (don't have the freedom to start my own business).
I see lots of people encouraging youngsters to choose this career path. Nonsense! Don't do it!

Card carrying 80% member on December 17, 2007 07:57 AM

> I'll be very lucky to be re-hired @ 70K.

Nobody needs more than 64k so you should be ok! ;)

Dave on December 17, 2007 08:04 AM

J,

You did it again!

Here I'm just minding my own business, plugging away at IT support at a busy university lab--and loving it--and not even thinking about the whole development process, let alone laying down a single letter of code, and you have to go and write something that inspiring and transcendent. It makes me want to sell all my things, give the money to the poor, and live an ascetic life in...well, anywhere. Or, just carry a mirror around, you know, just *waiting*.

Seriously though, that was beautiful. I'm printing this out and stuffing the page in my tattered copy of "The Rag and Bone Shop of the Heart".

Alexander Safir GS-ITS CST

Alexander Safir on December 17, 2007 08:15 AM

Sometimes your posts can be tedious, self-serving, boring, and pompous. Nobody's perfect.

Robert on December 17, 2007 08:35 AM

cheese: I suppose that post was a bit trollish.. I apologize for that, and thank you for explaining the code to me.

About the post though, I really liked it, and I think the reason it was so good is because it was basically a hollywood-movie version of the about me page. You showed us how other people see you, how you see yourself, you examined your blog's most humble origins, and it's even more humble reason for existing.. Maybe it's just the fact that it left me feeling good at the end, like I also had some reason to exist, but in any case, this was an awesome post, and it exemplifies the reason I keep coming back hear to read (rather than comment).

P.S. I don't know why, but I kind of feel like you've answered the meaning of life, if only a little bit :P

Abel on December 17, 2007 09:36 AM

In defense with the others...thanks for writing what I feel *is* an entertaining blog. You include some personality in your articles...articles that if written by anyone else would probably be rather bland.

And in the end, there's a reason Coding Horror ranks high.

Thanks for making my lunch hours enjoyable. Cheers.

Morning Toast on December 17, 2007 09:46 AM

Long timer reader of your blog, first time commenter.

I've enjoyed nearly every blog posting I've read on Coding Horror. I'm all too often laughing or crying along with what you have to say. So in other words, you've hit a chord with me.

The water from your well never fully quenches my thirst, I have to keep coming back for me.

Thanks keep up the good work.

Jon on December 17, 2007 09:49 AM

Jeff,

I love your blog. Like others, my first impression was WTF stuff (actually the first article I've read WAS a WTF-like, though I don't remember which one it was... anyway).

I soon realized that it wasn't. It's this geekness type of talk that I love and finally found here. I love every article.

Thanks for all the good literature you filled the web with.

Rod.

Rod Perry on December 17, 2007 09:51 AM

Wow,

If people don't like your blog, it's so easy to stop reading it. Too many haters in this world.

CptBongue on December 17, 2007 10:01 AM

"I read it three times in one week."

WTF, weren't you working during this time? Its like an 800+ page book.

Ryan Castillo on December 17, 2007 10:01 AM

Jeff,
Thanks as a non-coder who has to understand the mindset of coders your blogs have been invaluable, humorous and insightful. This blog is particularly well done because you manged to explore coding and blogging.
Keep up the good.

Jeff on December 17, 2007 10:11 AM

Reading the comments to this post, the word "inspiration" stands out, and thats exactly what this blog is to me as well. You can find hundreds of blogs out there about programming, but yours is one of the few (or dare I say the only?) blogs that goes beyond that to discuss the philosophy of programming. You are the Ralph Waldo Emerson of programming blogs!

Monsur on December 17, 2007 10:33 AM

A professor explained programming the following way in class, and I think he hit it on the nail: "Programming is writing logic with such precision a machine can understand it."

My interests vary between philosophy, software, and media theory. However, although they seem different to others it's all the same to me and it's rooted in a passion for concepts and ideas.

Software development is so uniquely amazing, and why it's my favorite, in that your play with ideas and concepts can express themselves with this level of precision, that you can unit test them, that you can build upon so many other ideas so explicitly. The arts are great, and philosophy in English is amazing, but there's such a satisfaction in computer programming that I haven't found anything else like it.

Cheers to the love of code!

Sachman Bhatti on December 17, 2007 12:40 PM

Yet another teeny tiny tear of joy trickes down my cheek as I read your remarkable blog and wonder how on earth we do it. Yes, that is it exactly, and yet again, we do write some remarkably good code on occasion, some stuff that has elegance, drive, and just the right set of core understanding of the problem to make it last for years and years. But the difference between greatness and mediocrity is impossible to predict. Just as in blogging, you don't know how it will turn out until it is out of your own hands, and in the hands of your audience. You work just as hard at the stuff nobody pays attention to. You work just as hard at the stuff that seems to reek to high heaven only moments after it is gone to the wilds of public consumption.

What bugs me though, is the number of times I read others whine and complain about some post or other, only to find them weeks or months later spouting the very prose they claimed was so lame. I think if Jeff's success is measured in INFLUENCE rather than the number of people who lay lovin on him, then we can all see that his blog is a certified hit. I even hear the odd 'unreachable' coder getting it from time to time.

So keep pluggin, and let the punters have their day. You can't be successful without throwing it out there to be consumed. And you can't be briliant at every turn, but neither can the whiners who want to be fed brain candy at every turn. Let them eat cake once in a while.

Michael Rempel on December 17, 2007 01:20 PM

You gotta be like Howard Stern was with listeners who whined and complained - you don't like it, don't tune in.

Your blogging stems from the maturity that you have as a person to reflect upon what you do, how you do it, and how you can improve. The issues that you bring to light only interest those who have depth, so screw the script kiddies and their short attention spans.

You rock - don't change anything.

ActiveEngine Sensei on December 17, 2007 01:43 PM

Jeff,

I graduated from school almost two years ago now. Like you I am working for a small software company where you grow up and quickly and have to learn to hold your own. I truly find your blog educational and inspirational. I don't get much education out of daily wtf. You're constantly presenting new ideas, new things to think about as well as well as a wide variety of books that I've gone out and bought on your recommendation. So Long time reader, although it's that obvious as I don't comment that often. However you're doing an AMAZING job and the commenter who related you to WTF doesn't know what they're talking about.


Ps. Are you going to be on .NETROCKS anytime soon again ?

Chris Howell on December 17, 2007 02:25 PM

This was a great post, thank you!

joe on December 17, 2007 03:00 PM

A great post.

And I agree with you: until the day you realize how horrible your code is, you are not yet a professional developer.

I realized how awful my code was, not by looking at my own code though, but by maintaining and reading other people's code. I guess it was easier to see the speck inside other's eyes rather than noticing the logs that are inside my eyes :)

NguSoon Hui on December 17, 2007 05:36 PM

Hey! I love the blog. Keep up the great work!

JDM on December 17, 2007 05:50 PM

Now that you mention it... A few months ago you wrote one that bored me. But otherwise fine, Rock on Garth!!

Steve on December 17, 2007 06:19 PM

Heh, I am definatly a coding horror infact so much so I am scared to blog my code, but I do it anyway in hopes to get help.

This was a very elegant post on the "why" blog that almost applies to me verbatum. So yes you hit on a variety of things that other people are concerned and interested about so keep up the good work.

Buddy Lindsey on December 17, 2007 06:53 PM

I have always been a fan of your work, because it's obvious your a quality guy, that cares about the craft of your work so much, your sharing the lessons your learning with all of us.

I love coding so much, just sad my industry is so screwed.

But keep up the great work.

Craig M. Rosenblum on December 17, 2007 10:28 PM

I'm only a senior in high school whose just recently discovered my latent love for computer science and the like and I can't get enough of your blog. How you manage to find the time to add the level of polish each post has is beyond me. Keep it up, Jeff.

Jake on December 18, 2007 03:40 AM

I've read this blog quite frequently, normally I do not comment, but this time I'm more than compelled to. The criticism you received about your blog is without a doubt completely misguided and inane.

Every article I've read, does just what every other comment from your readers have agreed upon. We're awful coders and can ALWAYS improve. I personally like the humility once in awhile in a world where it is easy to fall into a holier-than-thou mindset where we feel our creations are always going to be infallible.

Thanks Jeff! Keep up the great work.

Dean on December 18, 2007 05:25 AM

Jeff: Where is your mirror? Who cares what other bloggers, who don't have as popular site as yours, thinks?

Keep up the good work and coverage of our industry!

Eric on December 18, 2007 08:28 AM

"My happiness only becomes real when I share it with all of you."

Aww. You give me the warm fuzzies Jeff.

Steve-O on December 18, 2007 10:33 AM

I realize I'm always the surly curmudgeon here but anyone who regards this blog as "limb-gnawing tedium" has no business ever trying to program. They have already missed the boat. Code is for people and as you point out: if it is not shared it cannot be enjoyed. Thanks for all the fish, Jeff!

Terrier on December 18, 2007 11:59 AM

Jeff, nice web site. Lot's of great info. I like the code horror theme. Also, I didn't know there was a second version of the code complete book! It is so true how important it is to develop as if it were for yourself...never slacking on code design just because it is for someone else. Your site takes me back also to the good old days of programming the atari 130xe. Keep up the good work.

Adiel

Adiel on December 18, 2007 01:53 PM

Actually the only sad thing is that this blog is so satisfying and topical that I really have no desire to read any others. Please don't let the crap-stirrers get to you.

Dennis D. on December 18, 2007 05:58 PM

(First and probably last post)
Great blog: interesting, stimulating, enjoy it. Thanks.
Now get back to writing some more.

ian_scho on December 18, 2007 11:49 PM

Damned critics. What do they know?

I have your widget on my iGoogle page, mentioned you in my own blog a couple of times and Coding Horror is an outstanding blog.

I don't read every post - I skim the first couple of paragraphs to see if it's a post relevant or entertaining to me. I can't fault you on your written style or content, even if sometimes the things you talk about are not of personal / professional interest.

Clearly the critique offered is not worth anywhere near as much as all the appreciative comments you receive day in, day out, but still it's always worth adding another one, just in case you're in any doubt about how popular and successful this blog is.

Deb on December 19, 2007 02:31 AM

I've been programming for about thirty years. The terrain has changed significantly over that time. My first programming language was PL/1, which I believe stood for "programming language one", ironically enough. It was a big shift moving from mainframes to PCs, then to client/server apps, GUI applications, and then to web development. I try to maintain relevant skills, and after 30 years, I still have not gotten to the bottom of the pile of trade press books next to my reading chair. (All you programming geeks keep developing new technologies that I have to learn.) The more I learn, the more I realize how much I have to learn.

This blog is a great help in keeping my finger on the pulse of the programming community. For me, it represents the "water cooler conversations" that I wish we had time for at the office -- a place to hang out and mull over all variety of programming-related topics.

Jeff, I relate to and understand what you say when you point out that "coding horror" is a situation that we all create. Some of the scariest code I've seen is stuff I've written. Sometimes my horror is complete the moment the code leaves my fingertips. Other times, it requires revisiting the code again months or years later to truly comprehend the horror of it all.

I've come to realize that even when my code looks good to me today, I'll learn something tomorrow that will make me realize there was a better way. And like many programmers, I seem to have developed a belief that I deserve an opportunity to write better code, and could have done so if not for deadlines and a lack of hours in a day. That's why I'm always desperate to get ahead of the learning curve. Unfortunately, after thirty years I've come to realize that such "programmer nirvana" is a bit like the horizon; it's always within sight but never within reach.

I enjoy the humble tone of your postings, and I've learned a ton from tuning in every morning. Thanks, Jeff!

Brian Wilson on December 19, 2007 05:03 AM

As my job has shifted to programming full time for the web, I really appreciate your Coding Horror blog. Not only do I learn a lot, I also enjoy sharing posts with co-workers when we are trying to decide how to approach classic programming or process challenges. Thank you!

I stumbled across WTF (by which ever name it was using at that point) about the same time as Coding Horror. I enjoy it as well, but as others have noted, it's quite the different sort of blog. Amusing, and a test of my understanding of programming, but not the sort of analysis that would make me want to fundamentally assess how we practice programming.

Back to the code!

Catriona on December 19, 2007 01:18 PM

"You're an amateur developer until you realize that everything you write sucks."
Cool. And to think I misinterpreted it as sucking instead of outgrowing being an amateur.

Keith on December 20, 2007 12:05 AM

What I love is how when I finish reading one of your posts, I have about five other links queued to read...and when I down one of those, five more have popped up.

Your blog is a veritable hydra. But thank you very much for sharing this with us. It takes a lot to attain humility and instead of laughing at others' "Coding Horrors" or "WTF" realizing that it's more important to know what you don't know than what you know.

Mike Brown on December 20, 2007 06:24 AM

The articles here are a really good read, im no software delevloper or even a programmer for that matter an i still find the content here interesting,

**get the google widget on your iGoogle page, helps you know when there are new posts and what they are.

Dan on December 20, 2007 11:05 AM

My only disappointment in you blog comes when I check for new posts only to be disappointed. I love your blog in fact I read it more often then my own... in fact I cant remember the last time I even wrote for my blog...

Arron on December 26, 2007 04:19 PM

This blog is excellent. Even spanish people reads your blog. Like me ;)
Este blog es excelente. Incluso personas de habla hispana leen tu blog. Como yo ;)

Keep it with the good work. And sorry for my bad english.
Continua con el buen trabajo. Y pido disculpas por mi ingles malo.

Regards. Saludos.
/jk

jk on January 16, 2008 04:44 AM

Thanks for sharing... what I read here makes me happy, so mission accomplished! =)

Juan on February 22, 2008 08:30 AM

hi i love you

tiffany on March 12, 2008 05:45 AM







(hear it spoken)


(no HTML)




Content (c) 2008 Jeff Atwood. Logo image used with permission of the author. (c) 1993 Steven C. McConnell. All Rights Reserved.