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?"
In this particular case, it also pobably has to do with the safety standards issue. For example, a civil engineer has to certify that the bridge that he designs meets certain minimum safety standards, and will be held professionally liable for it if it doesn't.
:)
I'm a code-monkey and not an engineer in the sense that I don't think I'd be willing to be held liable for my bugs
If you are a licensed Professional Engineer (PE) in the state of Texas, you can be held liable for any damages on a project. That was the reference to the 1937 project.
How many 'software' engineers in Texas are willing to put their reputations on the line (and stand up to civil lawsuits) if they have made a coding mistake??
"Software is the difference between hardware and reality"
- level of involvement
- size of project
- mindset
Level of involvement:
Are you a system architect? Do you write php or perl on the weekend? I think the answer to those should be obvious. The higher ups who do design the system, and work with what parts fit where, etc, I concider engineers. They need to know the rules, have good practices, and so on.
Size of project:
Writing a web-based app is usually not engineer-level work. I'm not putting this on what language you use, but in general anything written in perl/php/other-scripting-language is not engineer-level (a project we just finished at work was written entirely in perl/ksh, so this is not 100% true.)
Most of all....
Mindset:
If you think like an engineer, you are an engineer. If you plan carefuly, and think everything through and treat your product as a full system, you are likely an engineer.
If you sit down and start typing code, you are likely a code monkey.
no comment
On what you studied, here i took a 5 college year course including physics 1 & 2, thermodynamics, calculs, adv calculus and all the regular programming/db/hw subjects finishing with a work-experience paper presented 6 months after finishing classes to graduate.
I EARNED the right to be a Software Engineer.
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/
are you an engineer that writes software or a computer science major who does electrical engineering - I have met computer science majors who by all rights I would call Systems Engineers - they had a complete understanding of the hardware at a very low level and how the software makes up these systems of systems - on the other hand I have met computer science majors who were just code monkey's or sys admins who thought what they did was engineering when they plugged a PCI card into a motherboard. The very best software programmers that I have personally met were all Electrical Engineers (and one PhD in Physics who wrote radar signal processing code). I think the trend in Universities offering "software and computer engineering" degrees is telling in this respect - its a grey area.
Actually, I'd rather be called a Software Developer, since it's more of an evolutionary process, not a fixed science. There are fewer physical principles that drive software development than something like Mechanical or Chemical engineering. There are also way more philosophical ramifications to our job, since software driven computing equipment is so pervasive in our society.
In fact, I'd rather NOT be called an Engineer, it's kind of demeaning.
To celebrate the occasion of my 1000th post, I will post no more forever on Slashdot. Goodbye.
As an Electrical Engineer, I would like to say that being an EE is in now way the least. It is definately one of the more difficult engineering fields. As far as programmers being engineers, I would say that they can be, but it the main difference is the methodology behind how they write their code.
In an interview I recently had, a group manager for lockheed martin told me that he prefered to hire people that were educated as electrical engineers to do the programming for his group. He said their methodology made their code better. By the way, he is in charge of programming the targeting and tracking for the weapons systems on F-16s.
If organizations such as the ACM, ACL, ALP, CRA, ISOC, and the various national associations were to combine forces and come up with accreditation and standards for "Software Professionals", we might get somewhere. An accredited computer science degree, followed up by specialized examination in a particular field, should yield professional standing just as much as a medical, engineering, or law degree.
Currently, the software engineering we see growing out of the traditional engineering culture is not sufficient or inclusive. Engineers do not make good computer scientists.