Wednesday, December 19, 2007

If You're Not a Good Programmer, What Are You?

I don't know what the deal is, but over the last few days, I've seen a barrage of posts from some of my favorite tech bloggers saying they suck at programming.

Here's Jeff Atwood:

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.

Steve Yegge:

Please – don't think I'm implying that I'm a great programmer. Far from it. I'm a programmer who's committed decades of terrible coding atrocities, and in the process I've learned some lessons that I'm passing along to you in the hopes that it'll help you in your quest to become a great programmer.

Ayende:

I'll start by saying that I often write bad code. What is bad code? In DevTeach, I showed James Kovacks a 150 lines methods that involved threading, anonymous delegates and exception handling in a ingeniously unmaintainable form. Bad as in you will get the axe and come after me with froth coming out of your mouth if you ever see it.

So, if all of these people I read, and trust, and look up to, all write bad code, then what does that say about my code?  I think I've definitely come to grips with the fact that I've seen far more elegant code than what I have produced in the past.

Maybe I'm my own worst critic, and maybe that's what makes me ultimately a better programmer.  And maybe that's exactly what they are all saying.  They've made mistakes, they've recognized them, the mistakes piss them off, and they want to do it a million times better next time around.

** If you are a recruiter, or someone who is interested in hiring me, please disregard all previous comments.  All code I write is extremely pleasing to the eye, rarely, if ever, contains any bugs, and will likely make your product and/or service and/or clients an overnight success.