I have, on occasion, posted on how generally unimpressed I am with the world of programmers as a whole. Every once in a while, there is a beam of light, but, for the most part, I find programmers to be pompous and prideful. I will include myself 15% of the time, with the other 85% of the time being humbled at how little I really know. However, I'm starting to realize that although my lack of knowledge of design patterns, compilers, and implementations is my Achilles heel, I still seem to have a few abilities that give me potential as a programmer that many older programmers have never seemed to grasp. I guess I should explain the thought process that brought me to this solution.
A week ago, I posted my Python implementation of Fizzbuzz. Having never heard of Fizzbuzz, I was intrigued when someone told me the criteria. In less than a minute, I wrote out Python code on a whiteboard of a full implementation. I was then told that many programmers cannot solve this problem. WHAT?! Are you kidding me? That's a basic iteration problem. I can understand if the problem was a bit more complicated like Conway's Game of Life, but something like Fizzbuzz should be taught in the first weeks Intro to Software Development. Maybe it's a fault of mine that I want to instantly generate code for a problem like this, and work through the bugs, instead of drawing up UML diagrams first. I guess I'm more about Proof of Concept first, then planning and implementation. If your proof never works, why would you continue to plan for something that might not work?
This morning, I can to work, and browsed over to Worse than Failure (formerly The Daily WTF). Jeff Atwood of Coding Horror has a guest post where he talks about why Worse than Failure makes him uncomfortable. The following quote sums the entire post up:
Ultimately, I decided that Worse Than Failure makes me uncomfortable because it exposes the dirty little secret of our profession: we all write bad code...The only difference between us and them, in fact, is that we know when we're writing bad code
I read Coding Horror on a regular basis, and I seem to enjoy Jeff's insight. The fact that we all write bad code is apparent. I laugh every time I see a chunk of code I wrote that I can't even follow any more, and make a commitment to myself to comment better in the future (which I do for about a week, and then forget again!) Jeff then applies a response on his own site, where he quotes Dennis Forbes:
I fear the output of any developer who claimed that they've never written bad code. I would fear them because they're either bald-faced liars -- believing that simply saying it repeatedly will somehow convince others into this fiction -- or they're completely blind to their own weaknesses
I would like to say I am a good programmer because I am reminded of my weaknesses daily. I work around some of the best developers I've ever met. I've experienced bad code at the hands of ALL of them. However, they acknowledge the "hack," if you will, and sometimes even add comments on WHY it was written in that manner. So to those developers I find so useful in my life, Thank You for pointing out my WTFs and showing me a better way.