Programmers Are Idiots

Aug 2

Programmers Are Idiots

So I’m out here in Boston (home of the Free Speech Zone) at a seminar on distributed enterprise application development. The instructor is Pinku Surana, who certainly seems to know his stuff. I found this interesting article in his blog, where he argues that programmers are idiots, and I have to say he makes a pretty good case.

I occasionally teach IT programmers. I’ve taught over 100 people now and I can honestly say I’ve met maybe 5 good programmers. The rest are dangerously incompetent. In fact, they are so profoundly ignorant of computer science and programming that they actually believe they are fairly good. This is the perverse effect of ignorance: because they don’t know what they don’t know, they think they know everything. Brookes’ Mythical Man Month described the uberprogrammers who are mysteriously 10x more productive than the average. I would go further and say the uberprogrammers aren’t really so uber; rather, the average is abysmal.

He goes on to say that if non-IT companies want effective software, they should ditch their programmers and demand flexible software from vendors.

I agree with him on the first point. We, as programmers, are not nearly as good as we think we are. I think it probably stems from the fact that even a novice programmer knows more about computers than nearly everyone he knows, and they all praise him for being “so smart” when he fixes their printer or gets rid of their virus problem. My mechanic is “so smart” about replacing my car’s water pump. No one really praises him for it because cars have been around a long time and there’s not much magic to them. I don’t think I’d have my mechanic build me a new car from scratch, though.

I disagree with Pinku on the idea that you can solve your software problems by demanding configurable and interoperable software from vendors. It’s a great idea in theory, but when you start dealing with vendors in reality, it quickly breaks down. We already demand these things from vendors, and they either don’t deliver, or don’t deliver as expected. Most programmers dislike vendor solutions because they’re crappy in some way and hard to integrate with. That’s because the vendor’s programmers are idiots, too. The vendor’s programmers spend a lot of time griping about how the customers write crappy architectures that are hard to integrate with their “well-written” solution. So, which is more dangerous, the idiot you know or the one you don’t?


Comments

by Boris Anthony,   August 2, 2004 8:28 PM  

This is not endemic of just programmers: most PEOPLE in general are "idiots". Perceived greatness is always enhanced by mediocre surroundings. In all fields and all areas of human endeavor.


by z,   August 2, 2004 11:53 PM  

nothing new here, Sturgeon's law: 90% of everything is crap.


by LD,   August 9, 2004 4:15 AM  

Even though I have never heard the term before Uberprogrammers do exist, I am lucky to know two that would qualify. One in particular has the stuff legends are made about. I could relate lots of stories that would not be believed but I will tell you one: Many years ago at a computer club meeting another programmer had been complaining he had been fiddling for weeks to produce a program to draw a shaded sphere. My friend didn't even sit down he just typed in the code off the top of his head and it ran first time, it took him less than a minute.


by Deane,   August 9, 2004 11:13 AM  

There's a great link in the second or third comment to an APA study that has this in the abstract:

"... people who are unskilled in these domains suffer a dual burden: Not only do these people reach erroneous conclusions and make unfortunate choices, but their incompetence robs them of the metacognitive ability to realize it."

I've always believed there are three kinds of skillsets in people:

  1. People who are skilled
  2. People who are unskilled and know it
  3. People who are unskilled BUT THINK THEY ARE SKILLED

The last group is the one you really have to worry about. There was a time in my life when I was very much a member of this group. I now fit in to #1 or #2 depending on what skillset we're talking about.


by Pinku,   August 13, 2004 2:15 PM  

Hi Joe, saw your post in my web logs. Just want to make one correction to my comments. I should have said "ignorant" instead of "idiots" when describing these programmers. Ignorant means they don't know something; idiot implies they are incapable of doing better. I believe all programmers can get better, just as I hope I can continue to get better. But I have a long way to go before I am good enough to kiss an uberprogrammer's feet, and so I study and practice, just as you do, to further hone my skills.


by JL,   February 10, 2005 1:52 PM  

Well, heres where I fit in; People who are unskilled BUT THINK THEY ARE SKILLED. Maybe this statement contradicts itself.

JL


by Craig Fleming,   February 21, 2007 12:33 PM  

Good programmers who know what they are doing are literally one hundredth of one percent of the entire population of programmers.

I've been doing this in every programming paradigm since 1979 (assembler on aircraft data recorders was my first job) and seriously, sad to relate, I have not yet met anyone half my age who can actually understand what its all about.

The language is unimportant. The problem and the solution is 99% of the work: get that right in your head and the actual coding is almost an irrelevant afterthought.

We actually often drafted the code using a pencil and paper, flowcharts etc, and then had a very accurate typist to actually input it into an editor.

We would watch as it was compiled (by the typist) and were seriously surprised if it threw any errors.

That was systems analysis -- a skill seriously lacking in "programmers" today.


by D. G.,   June 14, 2007 3:17 AM  

This is totally true. I am new at a Company where i'm working now, I'm an inexperienced Developer just finnished my study. They already have one Developer that has worked over 15 years in programming. I was quite excited to learn new things from his experience, but was quite shocked to see that she didnt even understand OOP, RDB etc. Her code was like mine when i was a 10 year old boy :P.

Now i don't know what i have to do, as i have to learn a lot and got a lot of Projects too lately and She's not much of a help. She's been doing a really small database app for nearly 4 month now! LOL. And she is still looking at the monitor couriously, compile her code and waiting for some "magic" to happen :P God, help me!!!


by protospike,   August 1, 2008 4:57 PM  

I think the more appropriate way to deal with this is to frame the question "Why is this so?" instead of stating that programmers are idiots :-)

I would throw at least some of the blame at some Universities. My "Computer Science" course for example, only has 1 maths subject and the rest is focused in this magical land of OOP and documentation. I think that's crap.

Btw I'm in a bad mood. I'm gonna regret posting this.



Add Comment


Want to advertise on this site? Contact FM.
Laser Toner Cartridges UK laser toner, toner cartridges, hp toner, lexmark toner, samsung toner, canon, toner, epson toner, oki toner, kyocera toner, xerox toner, remanufactured toner, compatible toner
Direct TV Deals Free 4 room direct tv deals. no equipment to buy. free fast professional direct tv installation. this is the best direct tv deal available anywhere.
SEO Article Learn from the experts with our SEO article.
rope light Shopping with birddog distributing, inc., gives you access to the lowest prices, the best customer service and the quickest delivery times possible.
Laptop AC Adapter We offer genuine factory direct replacement AC adapters.
Direct TV Best satellite TV deals.
Direct TV Deals Direct TV programming deals are varied and include packages containing from 50 channels up to over 250 channels.
8mm film to DVD Retain family memories with the only frame by frame digital restoration service in the United States for your 8mm film to DVD today
Rubber Stamp Shop for custom self-inking stamps, hand stamps, address stamps, label stamps, check endorsement stamps, check deposit stamps, date stamps, pre inks, pocket stamps, ink and much more!