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
an engineer or a code monkey. I'm a journeyman ... in the best sense of the word.
"And this is my boy, Sherman. Speak, Sherman." "Hello." "Good boy."
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"
If garabage collecters can be "sanitation engineers" and housewives can be "domestic engineers" then why the hell not programmers. =P
- 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.
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.
I am an engineer in the traditional sense of the word. I find it abhorant that a tech support person puts the word in their title or that there are actual cases of 'sanitation engineers'. To be a legal engineer, you must have the degree, and pass the exams proving that you are capable in your field. Furthermore, you cannot claim to be capable in a related but different engineering field unless you truely are. I may be shiznit in the field of transportation engineering, a subset of civil, but can and would never put my name on anything to do with structures, because I might not have the expertise.
However in the world of IT and programming, any slackjawed yokel who can hack out 5 lines of perl can say they're a badass programmer. No engineering to that. Thats like a poseur mechanical engineer making a basic drawing and saying he 'engineered it'.
There are real software engineers - they do engineer their products, but the trend towards dilution of the term engineer seems to stem mostly from the IT field where a programmer thinks the term synonymous with engineer.
to email me: take my
All I want is a kind word, a warm bed and unlimited power.
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/
Programmers are now "Simian Engineers".:)
Is this a sigs-optional kind of place? 'Cause I am totally down with that if you know what I mean.
You're all code monkeys until your job really CAN'T be done by a smart high-school kid, and you have polished the art to the point that all the OTHER engineers accept and respect you as engineers!
It should be major news that Joe Somebody's computer crashed today, an event greeted with grim commentary and TV specials.
...
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.
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!"
I think he confused computer engineer with software engineer. Computer Engineers are pretty much just EE's with an emphasis on VLSI design and system level software.
Do you even know anything about perl? -- AC Replying to Tom Christiansen post.
- An engineering degree that meets some basic requirements
- 4-8 years of experience, depending on your degree
- Detailed log of what you've done for these last 4-8 years
- Experience under another licensed engineer
- Five references, three of which must be other licensed engineers
- Two exams
There is a serious problem here, notably that there are few licensed electrical engineers and no licensed software engineers. Since you need a licensed engineer to create a licensed engineer, few if any qualified people will ever be able to license themselves.There are exceptions for people who have been in the field for something like 12 years, but you are still required to have a detailed log of everything you've ever done. Simply put, most people never get this far.
Personally, I would love to have my license to go along with my EE degree, but it's just not realistic to waste my time. I don't even know any licensed EEs, much less have a company willing to hire me and place me under another licensed EE to gain the required experience.
My suggestion for the state is this. The word "engineer" has become watered down in the past several years. As it stands today, licensed engineers are allowed to place "PE" after their name, as well as calling themselves "engineers." Thus, the state should probably allow "engineer" to be used in whatever context people want and only let licensed engineers use the "PE" designation.
Licensing is important and has its place in quite a few fields, so I also recommend that the state evaluate ways to open the door for more people to be licensed in the high-tech fields. Perhaps the restrictions should temporarily be made more lenient to "seed" the field with licensed engineers, thus allowing for easier licensing of new engineers in the future. Finally, I recommend that the legislature let the engineers figure this out, rather than figuring it out for them.
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.
If you went to a university and studied in a computer science or computer engineering curriculum (this means that you have studied at least 3 semesters of calculus, 2 or 3 semesters of physics with lab, taken a semester of algorithms, data structures, linear algebra, and a plethora of other mathematics related courses, not to mention your programming courses) then you are an Engineer. This is because a university graduate with the degree in CS/CE/EE has the background to truly apply math, physics and engineering principles AT an engineering level. Some 16 yr old from the local high school that knows how to do VB or Java doesn't even posses a thimble of the knowledge of a true engineer. That is why you see your 16 yr olds coding perl scipts for a web site form processor and your true engineer getting paid 10 times as much and busting out with apps that the 16 yr old probably couldn't even operate.
So I believe if you have your degree in CS/EE/CE or even Mathematics, and you are a developer, then you have earned the right to be called an engineer. The 16 yr old has a long ass way to go.
No offense, man, but engineers take way more shit than programmers. For the record, I am not an engineer or an engineering student, I am a CS student (aka programmer some of the time).
My former roommate and good friend is an engineering student, and their program is way harder than anything I have to do. I'm not sure if you knew this or not, but in order for a University to teach (accredited) engineering, they have to have a certain (read: tough) curriculum, which is not true for CS at all.
While I'm watching TV he's up to his eyeballs in homework. Engineering not only teaches you the science of things, it teaches you to have an awesome work ethic. I would never call myself an engineer, simply because an engineer goes through a heck of a lot more than me. I have tremendous respect for people who make it through that program.
Context: I'm in my 4th year of Electrical and Computer Engineering at a Canadian university.
As I am getting towards the end of my degree and I'm getting ready to head out into the big world and work, we've started to be taught several ethics courses. Additionally, I have recently received my iron ring - a symbolic (and secret!) ceremony that affirms my commitment to public safety. Through this, I have been picking up the subtleties of a professional designation.
A Professional Engineer, like a Professional Doctor, Nurse, Lawyer, etc., has a deal of responsibility to the public at large. The privilege of being able to build large buildings, for example, comes at the cost of being responsible that the building doesn't fall. Accordingly, Professionals have professional bodies that they are accountable to above and beyond their responsibilities as a normal citizen. The laws are also much harsher on a professional when they don't act in a professional manner.
My main issue with software developers using the title "Engineer" is that the software development industry at large doesn't seem to adhere to the professional conduct demanded of a professional. Just take a look at the standard EULA as an example - imagine if the designers of bridges did a similar thing? While I have no qualms about the software developer "engineering" in the sense of creating, I wouldn't call a first aider a "doctor", despite the fact they do the same thing.
From my perspective, the ideal solution would be to integrate the software developing business into the Engineering profession. In addition to having a professional title, this would be a healthy step towards maturity of an industry that is plagued by antitrust, among other things. This could help bring respect and dignity to the software developer - in addition to more money - which I believe is what people really want.
Anyways, until such time as this happens, I'm not comfortable with the use of "Engineer" by software developers. In Canada, the term "Engineer" is actually copyrighted to the Canadian Council of Professional Engineers - a few years ago, there was actually a conflict with a University that provided an unaccredited course called "Software Engineering", claiming academic freedom. It resulted in a mess, including the temporary withdrawal of accreditation to the engineering programs at the university.
Which was a bit counter-productive.
-legolas
Now scientists and mathemeticians work with very complex systems all the time. However, most if not all of it is theoretical.
Engineers take that theory and his own experience to build a useful system. This system has to withstand the rigors of the real world. It also has to be done on time, on budget, and actually do its job without killing someone.
A lot of "scientific" achievments in the past century are actually engineering achievments.
Now the point I am trying to make is that programmers are always defining new things. Engineers can't responsibly design systems around parts with unknown properties.
Engineering and most programming endeavors are mutually exclusive. A good engineer can't afford to have an unknown in the process.
Look at the space shuttle. That was real software engineering. They designed the whole system, to do a specific task, within a specific set of parameters. Yes there was programming involved, but in this case the software was only a highly flexible control system in an aerodynamics problem.
Could some 14 year old given enough time and caffiene do the same thing? Probably. Would I trust that software with my life and a 4 billion dollar spacecraft? No. Odds are the kid would not have a grasp of the differential equations, Laplace transforms... ah... engineering school equations leave me now...
"Learning is not compulsory... neither is survival."
--Dr.W.Edwards Deming
engineering n The application of scientific and mathematical principles to practical ends such as the design, manufacture, and operation of efficient and economical structures, machines, processes, and systems.
By that definition, a software developer is quite frequently an "engineer".
The real debate I'm reading here is whether you need an accredited certificate to be titled an "engineer".
I feel no compunction about calling myself a "network software engineer". I perform acts of engineering daily - co-ordinating thousands of bits of data on multiple clusters of computers in a scale and scope comprising thousands or (potentially) hundreds of thousands of people.
Yet, I do not have any official-looking pieces of paper saying "engineer". So, I am not an accredited engineer, but that doesn't stop me from engineering!
I have no problem with your religion until you decide it's reason to deprive others of the truth.
Gee, Cisco used to think I was an "Software Engineer" and paid me 135k a
year and I only have a masters degree in fine art. (Performance art and Photography
and a few things in between) On the other hand when I was getting that MFA
I built a camera from billitt aluminim and a electric guitar from wood scraps.
I always thought that programming was as much an art dicipline or perhaps
an exercise in linguistics or theater ( see Brenda
Laurel )
Congratulations, your post has won the highest rating to bullcrap ratio I think I have seen on Slashdot yet. That is quite an achievement...
..must not feed the trolls, must not feed the trolls...
I have entertained the thought that you are a troll, and that responding to you would serve no purpose. That +5 moderation, however, shows a giant gaping void of ignorance in at least a subset of Slashdot moderators, and that, at least, should be addressed.
Now, I grew up in a household of "big engineering" so I'm a bit biased, but you are so wrong it isn't even funny.
points:
1. No mathematics in engineering? I'm speechless. Flabbergasted... Stunned. What do you think engineers use, iambic pentameter?
2. Science. Right, no science in engineering, and a whole lot of science in programming. Why, engineers never use physics, say, or chemistry. Alot less than that guy over there working on opitimizing that printer driver.
3. Art. The Eiffel Tower, the Golden Gate bride, the Hoover dam.
or
Windows ME.
Many engineers I have known have decades of programming experience, on bare metal, Fortran, and C++. Who do you think developed the field in the first place? That programming sprang fully formed from the forehead of Zues, like Athena?
Katherine Harris was both George W's presidentail campaign co-chair and Florida secretary of state in charge of elections ie who was allowed to be on the roll and vote counting. No conflict of interest here?
Every single decision she made followed the law and held up under international scrutiny.
Katherine had anyone "suspected" of commiting a felon removed from the rolls
I assume you got this from the BBC's Greg Palast since he is really the only person that thinks this is a story. A quick look at his webpage will show you how partial he is (he seems to have staked his entire career on undermining the Bush presidency).
Now for the real facts:
In 1998, Florida Division of Elections Director Ethel Baxter, a democrat, hired the firm Database Technologies to compile this list. The list had around 100,000 names on it.
One of these "supposed felons" was Linda Howell, elections supervisor of Madison County, Florida. The only way to get back on the roll was to agree to fingerprinting. Ie guilty until "proven" innocent.
Once again, nobody was required to use the list (several counties including Madison County didn't use it at all), but if they did use the list, they were required to independently verify the names before any action was taken. The fingerprinting was only required to dispute the removal if the person actually was "verified" by the county supervisor and removed from the voter registration- otherwise they probably never knew they were on the list. With all of his complaining, Mr Palast has only found about a half a dozen people that were incorrectly removed from voter registrations and forced to dispute the removal.
So it boils down to this:
There is only anecdotal evidence that any legitimate voter was actually prevented from voting because of this list. Rep Corrine Brown, a democrat, claimed that she saw "2 or 3" black people get incorrectly turned away, but when the media pressed her, she was unable to give any details.
So were minority voters specifically targeted? The NAACP, who came in to represent these minorities, stated VERY plainly in this settlement that
"The defense of freedom requires the advance of freedom" - George W Bush
I had a professor who claimed anytime you had to append "science" to something it meant that it wasn't. Computer Sicence, Political Science, etc.
When VPNs are outlawed, only outlaws have VPNs.