Categorizing Software Engineers

Jeff Atwood posted a nice blog post today about The Two Types of Programmers. I always like to refer to programmers by using the term 'Software Engineer', when they're software engineering. The term 'programmer' is often associated with a 'code monkey' (human code generator), and Jeff's post isn't about code monkeys.

The post by itself is interesting, but what's more interesting is the long list of replies to it, mostly in the category of "your categorization is wrong/insulting/arrogant" etc. I think the replies show the point Jeff tried to make.

I'd like to quote one little gem, one reply by Robby Slaughter which IMHO is what Jeff's post is all about :

the question is what percentage of software engineering is done by amateurs who think they are professionals. There's nothing wrong with being an amateur---everyone starts at the beginning---but we don't let people whose only qualification is that they leafed through a few books do brain surgery, design bridges, or organize the Superbowl. There's more to writing good software than being able to sling code. I'm not interested in whether or not you live and breathe tech and write Linux drivers blindfolded for fun, I just care whether or not you *know what you are doing*.

It seems like most people don't. In our industry, that's easy to get away with.

It doesn't matter in which group you belong, according to whatever person. What matters is that last sentence of Robby's reply. In a world where every day we become more and more dependent on software, it's essential that that last sentence becomes history. Let's all work on that, in whatever group you feel yourself belong to.


  • I wish there was an easy enough way to seperate the two :)

  • Putting on the incredible cynical hat, but doesn't that 20/80 rule hold true for most industries, that there's always a good percentage of people that don't know what they are doing. You may say that at least in most of engineering you at least have some sort of proficiency coming from having a degree, but really that's a horrible measure. Schools vary, students vary in quality. Just because you have a BS in mechanical engineering from State U doesn't mean you should be allowed to build a bridge. At the same time you may be better qualified than the next candidate from a much higher rated school.

    I'm certainly not saying that it's a good statistics, but the fact is that a large percentage of people learn as much as they need to get by and work a job because it pays the bills. Being passionate about your field and constantly wanting to better yourself is not the status quo in any field, imho.

    So i'd just say that the problem is real but it's not just our industry that's affected by it.

  • Software development is creative, not technical.

    You can teach any nub to repeat the same old things over and over and bluff their way through the debug messages ... you cannot teach them the inspiration and creativity required to evolve new solutions to the problem ... your 1996 link hit the nail on the head.

    The problem exists in other industries too, but it is easier to hide in software development if you are sub-standard. Any fool can see when a builder builds a wonky wall, almost nobody can tell when a piece of software is inefficient, insecure, and unstable, and when they do they just accept all software is made that way.

  • When I was doing some help with job hiring I had a fairly easy question that helped seperate the two.

    Ask them what was the last couple of computer/technology books they read and then the last non-religious book they have read.
    Also ask them what magazines they have subscriptions to. This is kind of dated probably should switch to asking about blogs and web sites they have accounts on and regularly read.

    If they havn't been reading anything recent they are probably not of the 20%, the non-tech just adds to that knowlege.
    The magazine is the same way, since almost every technology use to offer a free magazine, usally filled with tons of ads and a few useful article but it gave you info on what was happening outside of your work environment.
    The blog/web site works the same if they are not reading a few tech sites then they are not keeping up what is happening with the tech you are hiring them for and are probably in the 80%.

    The non-religious part is to make sure you don't break laws.

  • While I'm inclined to believe the 20/80 rule, the categorization is pretty narrow and silly in its definition. At the end of the day, the only thing that really matters is that you can deliver something high quality, on time. That's what professionals do. Whether or not they know anything about Linux (or any platform/tool/toilet/elephant) is irrelevant.

  • "...we don't let people..."

    Good thing I don't live anywhere near that guy.

  • 2 types -> those we believe sw is about creativity and those who believe hard work will get you there.

Comments have been disabled for this content.