What's Wrong With The Daily WTF

“If anything, there should be a website where you could marvel at the truly unique code – the stuff that doesn’t suck.”

A start? http://redhanded.hobix.com/

Or perhaps this book needs a blog: http://pyre.third-bit.com/blog/archives/863.html

I like reading wtf, but I don’t like the elitism (if that is even a real word). Maybe because I’m a relatively new codered, but I don’t always see what is wrong with the code that is posted. My point is this. I agree that the correct way to write code should be posted along with the bad code. But I’m sure that someone would say that it was wrong and should have been done another way.

Sometimes it works, sometimes it doesn’t. […] You can also be a
bad programmer that refuses to learn.

Agreed, but we have to try.

Of course. You are good unless proven bad. You can also be a good programmer in one domain and a horrible programmer in another. For example, someone who has spent the last five years writing content management systems may not be so hot when having to implement a cipher.

What I was getting at was that there are some coders who simply refuse to learn. And by some I really mean some. Most are not this way. I think your goal - to help people better themselves - is very noble and good and right, but unless augmented with the realism that some people can’t be helped it will remain unattainable and sometimes downright damaging. For example, if you have one of the refuse-to-learn coders on your team, how much of the time that you should spend with the inexperienced-but-learning coders on your team do you waste on the bad one?

In the best of all worlds you could spend infinite time on the bad one, trying one approach after another until he finally opens up. But in this deadline-ridden world of scarce resources, you’d be irresponsible to do such a thing.

So - I’m with you, but with a small correction.

Maybe because I’m a relatively new codered, but I don’t always see
what is wrong with the code that is posted.

Well, if the end product was delivered on time and on spec and on budget - not really anything, I’d say, save for some cosmetics.

Many "WTF"s are nothing but a programmer who asks himself “well, I can do this the proper way or I can get a working product out the door”, and opting for the latter.

I find it hard to argue with that reasoning, and impossible to argue that the coder in question is somehow “inferior”.

Here’s what we do with the crowd who would never read a site such as WTF: [1] detect them, and [2] don’t hire them, fire them, or reassign them to “special” projects. Caring cannot be trained into a person any more than a pig can be trained to sing.

Every time somebody starts a sentence like “did you see the dailyWTF” I always butt in with a worried “none of us were actually NAMED though were we”…

Up front, and most importantly, I’d like to say thanks for your guest article on WTF. I didn’t particularly agree with your argument, but it was interesting to read, and it reminded me to bookmark this site. (None of your RSS rubbish here…)

I would suggest that recent history on WTF gives us all an interesting insight into (technical? or maybe even more general?) blogs.

Firstly, there’s no excuse whatsoever for the idiots who insulted “Coding Horror” in response to your guest article. Apparently these people haven’t been brought up correctly, and do not understand the concept of “guest.” Let alone the fact that you took time out to write something – that they might well disagree with – on someone else’s site.

Secondly, a lot of posters on WTF moan about captchas, VB-bashing, and what-have-you. A ridiculous number moan about changing the name of the site, as if that mattered. When you’ve stopped responding to what you read, and concentrate on ritual and incense, then you are truly WTFed.

Thirdly, there are probably around 100 million “developers” out here, both professional and amateur. (I’m basing this on a quote I read that IT accounts for around 6% of the jobs in the industrial world. Whatever.) This number is only significant to you if you establish a blog (or call it what you will) that gains visibility. In that case, you’ll end up with maybe ten reasoned, sensible, and/or interesting responses per posting, and a blizzard from the trailer-trash end of the 100 million who’ve book-marked your site. Which adds up.

I’m afraid my only conclusion is that any sane blogger will need to take the attitude of fanzine editors from ten or twenty years back, which is to edit contributions ruthlessly. God knows, I used to get ten-page scrawls in green ink on lined paper, all those years ago. And I always made space for at least a paragraph or two, because the dimwit in question was actually paying for me to mimeograph the 'zine.

And I was going to moan about the responses on this thread, but, looking back, they’re all perfectly reasonable. Even “agntOrange,” who appears to be either a bad typist or dyslexic, but hey, (a) through (f) make sense to me. “Gordon,” on the other hand, is a tedioius troll, and the perfect example of why you need to edit a blog, not just accept all-comers.

PS Where’s the “Preview” button?

I’m not teaching programmers anymore. Screw them. They do not want to learn what I have to say, and I’m tired of people calling me a horrible bitch because I pointed out their mistakes. When somebody points out your mistakes, they are going above the call of duty and doing you a favor.

People just don’t want to learn. They want to be coddled and encouraged. This is a problem emanating from the public school system, where kids are never corrected when they screw up, they’re encouraged to press on. Kids are being told that if they just work at something hard enough, they can accomplish whatever they want. This is simply not true… some people are incapable of doing certain things, and people who are capable of being good programmers are pretty rare. We have a huge number of people out there who are writing code, but they don’t have an aptitude for it. So they try really hard and they screw up, but rather than realizing that they are in the wrong job, they get encouragement and help, and nobody ever says “hey, you suck at this, why don’t you try something else?”

They end up hating their jobs because they don’t enjoy it and they find it difficult, and people who hate their jobs are not going to do quality work, no matter what field they are in.

If you want to have more quality software then you should also
pay more money for it !!
Also no crap free software for slackers who do not want to pay money for the effort of others !!

What’s wrong with laughing at your faults? Who hasn’t failed at something? And have you cared really deeply about every mistake you made?

Laugh and learn. We’re all fallible and there’s no blame to cast about. Take responsibility and better yourself.

If you think something “sucks”, check yourself (or rather your attitude.)

For those who hate to fix other people’s mistakes, no one ever said you can escape all of humanity inside code. Get over that.

The comment about our educational system struck a note with me, leading to this response. The premise of our (USA) constitution is that all men are created equal, which is beaten to death in our educational system. What is unstated in that premise is that all men are created equal in the eyes of the law . This is true of all fields of endevor, especially the more complicated professions - medicine, physics, etc. This includes software development. You can attend all of the CS and coding courses in the world, but if you don’t have what it takes to be a good developer, you ain’t gonna be one (with or without the degree). The only thing that a guild or union would do is perpetuate the incompetence, not improve the quality, as has happened to all of the “organized labor” positions in this country. If you have the necessary makeup to be a good developer, you will become one - with or without formal schooling. The creative “drive” or “mindset” or whatever you want to call it cannot be taught to you, only the tools. The rest is entirely dependant on the individual. Everyone can throw a ball, but only a few have what it takes to become a major league pitcher. It still amazes me that we can accept that, but still insist that anyone with the proper “education” can become a good developer. All men are not created equal - when we accept that, then we can begin to make progress toward good software development. There are a lot of degreed (and non-degreed) developers who should not be in the field. They probably got there because “it sounded like a cool job” or “that’s the way to make big bucks”. Whatever the reason, I an reminded of something a wise man once told me - “A college education has ruined a lot of good ditch diggers”. If and when you can admit to yourself that you should be a “ditch digger” instead of a developer, you, and everyone else, will be a lot happier.

I consider myself a pretty good programmer. I left my job to start freelancing about a year ago and it’s been alright. But I’m really scared one of the guys where I used to work (great people) is going to paste some of my previous code on TheDailyWTF.

I swear I was young and didn’t know any better!! They made me write it in ASP!!!

Well, that’s what I’ll say anyway.

No, TDWTF is NOT for teaching how not to make stupid errors. It’s for laughing at those who made an incredibly idiotic error. Nobody goes there to learn anything… There are many good sites, like your stackoverflow.com to learn something good. Man, you need to chill out some. It’s purely for fun.

I don’t think TDWTF is completely useless.

I wrote a terrible piece of code at work not too long ago. And, thanks to TDWTF, I recognized it, and I changed it.

TDWTF is a collection of examples of bad design, so once in a while I’ll:

  • Recognize them in my own code, or
  • I’ll see something on the site, and realize that I might have done the very same thing in that situation.

I find that educational.

Interesting post.

I once had a very good Architect Lead (at a couple of past .coms I worked at) and he refused to share his genius with the rest of the team…only being an ass when you did not write perfect code or asked what he thought was a simple question and every question ended up being a simple question no matter wtf you were asking. I say those types of pricks need to get a nice firing. His excuse was I have no time and you should figure that out on your own or already know this type of attitude.

That attitude gets you nowhere and is a naive and stupid response. It assumes all developers below him are either stupid, or do not make an effort. Now if someone is leaching off you and you are a Sr. developer fine, but if they simply are trying to learn some of the stuff you have mastered and need a bit of a nudge on more advanced code, then you shouldn’t have to be a prick about it.

Jeff, if you’ve read some of the recent comments on the daily WTF, you must no doubt be aware that the reason several of its readers don’t do anything about it is because they’re no better (or perhaps just marginally better) themselves. It should be no surprise that some of these people didn’t appreciate your input.

You might think that by virtue of reading your blog and other tech blogs, most of us are already Good Developers™ (that’s open to debate), but the same definitely does not hold true for WTF/TDWTF. There’s a smorgasbord of people on that site, all the way from professional military developers to the lowest of IT grunts hired to reset passwords and replace toner cartridges. It’s like fark or YTMND with much better content.

I’d love to reprogram some developers at other companies we do business with, but I don’t think they’d take it too well.

I actually like the new name for The Daily WTF and the reasoning behind it.
I can’t be the only person who’s walked in to work on a system held together by snot and duct tape or where users were forced to perform all manner of gesticulation and chicken sacrifice to get the software to do what it’s supposed to and wonder “how did it get like this?” and then come to the sad realization that the people who botched this up didn’t get any sort of reprimand whatsoever and have either been promoted or have gone on to make the same mistakes over again.
Failing to acknowledge or learn from your own mistakes is a very special breed of failure, the kind that won’t be purged of its own accord.

tcliu: That’s a little silly. Even if a project is on time and under budget and meets the spec (if there even was a spec, which there usually isn’t these days), it’s not a successful project if it’s completely unmaintainable and doesn’t last in production for more than a few months (unless it was intended as a one-off).

Even if there’s no scope creep, which there always is, projects often have to be updated for scalability reasons. The more cruft that’s in the original code, the more painful it’s going to be to do that.

I can even see the difference in my own code. Same project, modules written about 2-3 years apart. The new code is lucid, almost reference quality in some places, but some of the old code is like a minefield. I’m finally getting to phase out most of those ancient bits, and it’s a tad scary. If I can see the difference in my own code which I already have extensive knowledge of, surely I can see it in other people’s code that I know nothing about.

There is a difference between good code and bad code, and it’s not measured solely by the first product release.

Linux got something working released quickly. HURD didn’t.

And you’ve stumbled on an aphorism that’s messily entangled with the original sentiment - sometimes worse is better (Google “worse is better” for the paper and assorted articles on the matter).
Development often feels like one large terrible balancing act.

“Daily WTF” renamed to “Worse Than Failure” is a WTF in and of itself.