Are Programmers Engineers?
The Llama King writes "The Houston Chronicle has an interesting story about a debate in the Texas Legislature over whether programmers are really engineers. A quote: " 'It's one of the silliest issues we're having to deal with this session, but it's also one of the most important,' said Steven Kester, legislative director of the American Electronics Association, an organization of computer companies." Are you really an engineer? Or just a code-monkey?"
They said the same thing when our governer ran for President, but that turned out all right.
Well... sort of...
1: Ask the question, "Are Programmers Engineers?" on a tech-oriented website.
2: Well... pretty much any other question, but No. 1 is the humdinger granddaddy of all waltzing in a minefield questions.
And just to get things started, "Yes."
A feeling of having made the same mistake before: Deja Foobar
I think there are three types of people who program.
Code-Monkeys: these guys do exactly what they are thought to do: Grind out code. Usually not innovative, usually no technical achievement. Nevertheless, they'll get the job done especially if its something that they can base off other things.
Computer Scientists: These guys use code to test new ideas and methods. This is the research side, but its not always practical research. An analogy I can make is you can't a bridge without math but advanced number theory really doesnt make better bridges.
Computer Engineers: These are the practical counterparts to somputer scientists. Usually innovative but in a sense that they comstruct useful things. What an engineer makes a code-monkey will be able to replicate soon. Just like it takes an engineer to design an engine, but Joe-mechanic can rebuild one or even "modify" it to get some use out of it.
I dont want to put a negative spin on any of these as they all serve their purpose in my mind. Perhaps you will dis/agree.
cheers
-bort
The term "engineer" has already been besmirched by Novell and Microsoft. Lets not water it down futher. The answer is simple. Someone with a computer engineering degree from a 4 year university is an accredited engineer. Someone with an IS, IT, MIS, ITM degree is _not_ an engineer. Sorry but if you wanted to be an engineer, you should have studied engineering. Someone who drops out of college and learns VB or perl or something is not an engineer. The term engineer implies some form of accreditation. I applaud Florida who makes it illegal to expand the term "MCSE" on a resume or in a business letter unless you are an actual engineer.
Never overestimate the end user. -jeramy b. smith
Programmers work at a tactical level. They are supplied specifications and produce a product to meet them. They are skilled labor, akin to tailors and masons.
Engineers engineer. They understand the problem better than the customer, and are consequently relied on to help form the basic goals of the project itself. Engineers, working at a strategic level, could also excel in business or government if technology didn't have the best toys.
yeah, but you do the same stuff as the code-monkey in the cubicle next to you that took courses for 6 months to a year at the local commmunity course
Do not go gentle into that good night. Rage, rage against the dying of the light.
By their meaning, clearly most poeple are not engineers. That's a clear cut one.
7/8 of the people working as "coders", that read "Java for waiters" clearly are not engineers either. Also clear cut.
4 year degree with something on the EE//CS line (I'm right in the middle) and a dozen years in the real world... if you have the degree, and you have the insurance covering your work by yourself or by proxy - which i'm gonna call "licensed" then yea, you're clearly an engineer by THEIR meaning.
But nothing is more insulting then being considered in the same job category and resume pile as waiter-turned-coder-last-weekend.
I'd love to see Texas lay the law down on the clueless, and license those of us that really do this for a living. Then all those waiters and such can go back to doing things they can do well.
- Adam L. Beberg - The Cosm Project - http://www.mithral.com/
There was a similar problem here in Ontario (Canada) to use the term "Engineer" you have to be lisenced. It is illegal to try and pass your self off as one if you are not lisenced. M$ had to drop the term engineer from their certification process. Check out Professional Engineers Ontario under Software Engineer for more details.
It all boils down to liability. If I certify a water treatment process safe and its not. Than I am in DEEP trouble. No more lisence, fines and basically the carrear is down the tube. In Canada and I think most of the commonwealth this is true.
Now I know a bunch of computer engineers, most of those guys are hardware, not software, but these guys wouldn't want to be engineers under Canadian law if they were doing programming. The computer software industry is still too immature to fall under these types of guidelines. Too many programs are not stable yet are shipped out because marketing wants them to.
I think I all boils down to currently the public is willing to let flawed software exist. And until someone dies nothing will change.
Like water in Ontario. People have to die before there is a backlash and things are fixed.
Optimist: "The glass is half-full."
Engineer: "The glass is twice as big as it needs to be."
Programmer: "Who cares? Just drink the free beer!"
On the other hand, licensed Professional Engineers undergo rigorous training in order to obtain that status. I'm not sure exactly how it works in Texas, but in North Carolina (where I'm in school), becoming a professional engineer takes 3 steps. 1) You have to pass an extremely long and difficult test in various areas of engineering such as thermodynamics, fluid mechanics, and solid-state physics. 2) You have to work a set number of hours under an already licensed PE who signs off on your work. 3) After completing those required hours, you have to pass yet another exam that tests your engineering know-how. I'm sure if anyone ever tried to implement such a system for liability for software engineers, it would require having those coders undergo similar training. I'm not saying that this would make the software engineers any less likely to make mistakes, but it does mean that: (a) those who are professionally certified know the risks and have been trained in avoiding mistakes and (b) only those who are willing to be held liable would become PE's. You are allowed to do less critical engineering work without obtaining your PE license. I'm sure the same would true for software developers.