Slashdot is powered by your submissions, so send in your scoop


Forgot your password?
Programming IT Technology

Are Programmers Engineers? 1002

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?"
This discussion has been archived. No new comments can be posted.

Are Programmers Engineers?

Comments Filter:
  • Re: No (Score:0, Insightful)

    by Anonymous Coward on Sunday March 30, 2003 @03:51PM (#5627284)
    No.. There is more to engineering that re-using code....
  • Neither ... (Score:5, Insightful)

    by DogIsMyCoprocessor ( 642655 ) <.dogismycoprocessor. .at.> on Sunday March 30, 2003 @03:54PM (#5627303) Homepage
    an engineer or a code monkey. I'm a journeyman ... in the best sense of the word.
  • Depends (Score:5, Insightful)

    by menasius ( 202515 ) on Sunday March 30, 2003 @04:00PM (#5627339)
    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.


  • by Anonymous Coward on Sunday March 30, 2003 @04:01PM (#5627344)
    on how much forethought you put into your code.

    if you plan it out, have a model, a written set of clearly understandable design goals, that you could hand to someone to do the coding for you, then you have engineered something.

    if you start coding off the top of your head and midway through your coding decide the mp3 encoding software you were writing should now control your toaster instead of dealing with audio, you are not engineering.
  • by jeramybsmith ( 608791 ) on Sunday March 30, 2003 @04:01PM (#5627347)
    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.
  • by brarrr ( 99867 ) on Sunday March 30, 2003 @04:03PM (#5627361) Journal
    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.
  • Let's ask Webster (Score:5, Insightful)

    by Xformer ( 595973 ) < minus bsd> on Sunday March 30, 2003 @04:05PM (#5627374)
    Second definition of "engineering":
    a) the application of science and mathematics by which the properties of matter and the sources of energy in nature are made useful to people b) the design and manufacture of complex products <software engineering>
    According to that, programmers are engineers. That's especially true for those programmers that do design as well (like myself).
  • CODE MONKEY!!! (Score:5, Insightful)

    by cybermace5 ( 446439 ) <> on Sunday March 30, 2003 @04:09PM (#5627410) Homepage Journal
    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.
  • by Fluffy the Cat ( 29157 ) on Sunday March 30, 2003 @04:10PM (#5627416) Homepage
    In various parts of the world, an engineer has a level of professional liability and expected ethics that the software industry refuses to accept. When that's no longer the case, I'll have a good deal more sympathy.

    For what it's worth, I have a high level of academic and industry experience. I design and write code for a living, which makes me a professional programmer. I EARNED the right to put "BA" after my name[1], and I EARNED some cash. I did not EARN the right to call myself a Software Engineer, any more than I EARNED the right to call myself an MD, a PhD or any other title that may give the perception of competence.

    [1] My university awards BAs for all non-Masters degree courses, even science ones
  • by CoolVibe ( 11466 ) on Sunday March 30, 2003 @04:14PM (#5627452) Journal
    If you sit down and start typing code, you are likely a code monkey.

    DISCLAIMER: I'm not a programmer, but I am a sysadmin who dabbles in C, Perl or Python sometimes, and the occasional shell hack. It's proven a useful skill many times, and I'd like to think that I am somewhat competent at it. Oh, and I acquired these skills autodidactically (sp?).

    Seriously, i don't code much, but when I do, it's either to work around some bug or patch around some unwanted behaviour, to glue a front-end to some back end thing, or I cobble something together to automate some stuff. Sure, there's not a lot of design going on, but I usually produce readable code, and somewhat decently commented (that's so I'll understand what's going on when I look at it 6 months later when it breaks), but no, I wouldn't call myself a programmer, but yes, I do program. I rather wouldn't, but hey, shit happens.

    So are code mumbling sysadmins like me really programmers? I'm certainly not a code monkey, although I use _no_ form of design methodology. Hack first, ask questions later.

    It's a toughy, I grant you that...

  • Re:no way (Score:2, Insightful)

    by gsegelk ( 617774 ) on Sunday March 30, 2003 @04:15PM (#5627462)
    At the school I went to, it basically boils down to: Computer Science: Software (memory management, theory, design) Computer Engineering: Hardware (circuits, lower level languages, hardware design)
  • by Nightlight3 ( 248096 ) on Sunday March 30, 2003 @04:18PM (#5627477)
    If garabage collecters can be "sanitation engineers" and housewives can be "domestic engineers"..

    For these, being called 'engineer' is a promotion, for many programmers it would be a demotion.

    Programming is a unique discipline on the intersection between engineering, art, science and mathematics. It requires much greater deal of creativity and mental dexterity in entirely novel situations than mere engineering.
  • by NitsujTPU ( 19263 ) on Sunday March 30, 2003 @04:29PM (#5627542)
    I wish that they would make a qualifying exam for software engineers, so that one could get a PE in software engineering. Not so much because I care about the title but because of a few other reasons:

    1) People would quit screwing with programmers, telling us we need to evolve into "software engineers." All that that ever does is add paperwork and make my job harder. A bunch of people come in, who don't know how to do our jobs, and tell us to do it differently, because it will make us engineers.

    2) It would raise the level of quality within the field. If everyone was held to the same standards when they came into the field, there would be some minimum level of knowledge required to start out. Good. Now I won't have some putz without a clue telling me my code isn't up to snuff.

    Why is this not going to happen any time soon:

    1) Do you test their coding ability? In what language?
    2) Do you test their knowledge of algorithms, or are you, in doing so stepping into the scientific discipline and away from the engineering discipline?
    3) Do you test their knowledge of data structures?
    4) Do you test their knowledge of UML? Most universities gloss over this, as in academia, this seems to hold little repute, yet many companies stake their claims as engineers on knowledge of UML.
  • by ryanr ( 30917 ) <> on Sunday March 30, 2003 @04:33PM (#5627573) Homepage Journal
    That kind of licensing just means that they have to carry a bond, which is a cheap form of insurance. Most licensed professions (eg locksmith) require a bond. (FYI, you can get a $30,000 locksmith bond for $15/year & a magazine subscription.)

    Seems to me that the question in Texas just boils down to whether the programmers have passed the test, done the paperwork and paid the fees.

    So, what's the Software Engineering Exam in Texas like? Hard? Do they test in C or pseudocode or what?

    (In other words, you license particular professions that have a potential impact on public or customer safety, not the word "Engineer". If they feel that there's some danger that people will trust me to design their buildings because I'm a software engineer, then they have to restrict the word "Engineer" to a particular profession. Just like I can't call myself a MD or police officer.)
  • by smallpaul ( 65919 ) <paul.prescod@net> on Sunday March 30, 2003 @04:35PM (#5627588)

    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.

    Whether or not these people are using the term engineer correctly or not, it is abhorrent for the government to use its energy to try and prevent the evolution of terms. Nobody would ever be endangered if an MSCE expanded his job title. He is a Microsoft Certified Engineer, not a Chemical Engineer or a Civil Engineer. Nobody would hire a Chemical Engineer to build a bridge and nobody would hire an MSCE to do it either. So the harm is just to your sense of propriety. Flame them if you like but leave the cops and courts out of it.

  • I am a programmer with a computer engineering degree. However, that does NOT make me an engineer. Being a licensed engineer shows that you have had an education in not only your field, but also in safety, ethics, and responsibility. As an engineer, you are legally responsible for your work. Not your company, or your boss, or anyone else-- YOU. Just understanding electronics or programming does not make you an engineer.
  • by hexx ( 108181 ) on Sunday March 30, 2003 @04:40PM (#5627621)
    I agree. I have a degree from CMU in "Software Engineering". That gives me the right to call myself an engineer if I wish (if I believe a degree from CMU is worth anything). Any yokel with a Bachelors in CS or less is likely a programmer (and there is is nothing wrong with that).

    Obviously what it all really boils down to is the following: As more and more people become programmers without a formal education (which is a wonderful thing) do we need to distinguish between a nautrally capable (and self-taught) coder, and an engineer that has suffered through the hard knocks of a college/university?

    In my limited experience (no flames please, I just admitted my experience with this is limited), the answer is yes, and here's why:

    I've worked with a number of very skilled coders - self taught since the beginning of time - who code well, but are limited by the fact they've never been through the formal code analysis courses.
    Sure they can write a great bubble sort without even knowing that's what they're writing, but they don't always know when to use specific algorithms, they sometimes do unnecessary work trying to figure out the best approcah to a problem (when the solutions are well known and documented in various CS textbooks), etc.

    And most importantly: when taking CS classes (at least at CMU), one learns to verbally communicate (problems, opinions, asking for help) with other programmers and even laymen. This is essential.

    And this is what makes a formally educated programmer an Engineer. The coding and communication skills. Code accountability is another situation entirely. Any thoughts?

  • My take (Score:4, Insightful)

    by brsmith4 ( 567390 ) <brsmith4&gmail,com> on Sunday March 30, 2003 @04:41PM (#5627631)
    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.
  • Easy (Score:2, Insightful)

    by Oestergaard ( 3005 ) on Sunday March 30, 2003 @04:42PM (#5627636) Homepage
    I got my master's in computer science from a technical university, where one by definition is an engineer when done.

    Oh, and I code 10-16 hours a day for a living ;)

    The fun part being, I'm actually a "civil engineer". In this country it refers to the fact that I was not educated in the military, but at a civilian university. It has nothing to do with plumbing or building houses, I assure you ;)
  • by Ruds ( 86067 ) on Sunday March 30, 2003 @04:43PM (#5627641) Homepage
    Second definition of "hacker" from "2. One who uses programming skills to gain illegal access to a computer network or file."

    First definition of "doctor" from "5. A practitioner of folk medicine or folk magic."

    Just because a word has a common usage doesn't mean that it is a precisely correct definition of the word. I think that most people will agree that practitioners of folk yadda yadda shouldn't hand out business cards that proclaim them doctors. Programmers can call themselves engineers amongst themselves, but shouldn't advertise themselves as engineers without more justification than the fact they can program.

    Software engineers do exist. There should be an accrediting board that identifies those people. Someone in another thread mentioned the ACM; that seems like a good candidate, and perhaps others could be put forward.

  • by ComputerSlicer23 ( 516509 ) on Sunday March 30, 2003 @04:54PM (#5627704)
    Not really. I've double majored in Mathematics and Computer Science, and have 15 hours of upper level physics, and I'm a code monkey, I've got over 95 hours in Math, Physics, Engineering, and Computer Science related courses. I didn't pass the state certification process to be given the title of Engineer in the state I work in (Nebraska in this case). If I'd done that, I would have earned the right to be called an Engineer. Oh, and my business cards refer to me an Engineer, technically that is my title at work, but I've got right to the title. The guy in charge made it up, and I can't refuse it.

    There can't be an Engineer in software. As Alan Cox has written on several occasions, software engineering is roughly in the alchemay stages in relation to state of the art chemical engineering.

    In a real engineering, process there are things to check, verification, and known facts which can be double checked against the standing design. The design checked against the implementation.

    Building a bridge is a much easier process then say writting a secure OS UNIX clone. It's easier in the sense, that it's been done so many repeatable times since the Romans. The understanding of the underlying structures of a bridge are well know. All intereactions between the people on the bridge, and the bridge are known (hard to calculate them all, but reasonable well known). Recently (in the last 50 years), we learned a new trick about bridges. That the cross sectional area, and wind can interact with forces that will tear down a bridge. Okay, that as far as I know was the last major mistake that was a complete unknown in bridge building. I believe it happened sometime in the 50s. You know right after the first couple of computers we're built. We don't know anything writting software in comparison to bridge building.

    Building a Secure UNIX or UNIX clone has yet to be done once. The understanding of all the various layers of software spans when writting an GUI application all the way down to the quantum effects that happen in silicon, I believe they claim 12-15 orders of magnitude of understanding. That's a lot, possibly more then any other intellectual endeavor ever undertaken.

    About the only places that can stand up and say, they follow an Engineering process are places that are SEI certified Level 5. They have a repeatable, measurable process by which they do things. That starts to sound like Engineering. Real Engineering is very hard, very tedious, and very boring. Most code jockeys I know, couldn't do it. It'd drive them nuts. You've got absolutely no right to be called an Engineer on an off the shelf software application. If you write software for a company that foists on you a horrible, gut renching process, of checks, double checks, that involves throwing away everything that doesn't meet their excating standards, now you talking about it. Where every single index is documented to not be possible to overflow the array, that's Engineering. I've never seen anybody ever do it, but if it we're Engineering, it would have to be done. Even after all that, you still have to be working in an area where what your doing is extremely well understood, and has been done lots of times before. Where all interactions between every module is well researched, and well understood. Where all the compenents have well defined qualities, that react in a statistically predictable manner in all situations.

    Have you considered what solar flares would do to your software? Do you have a fault tolerant memory storage scheme to account for the bit flips that will occur because of it? Do you use an operating system, and do you understand all of interactions between the various parts? Have you documented why everything works the way it does? Do you document every single change with a full risk analysis of why it's being done, and how it only improves the reliability of the system. People in Engineering do that. People who worry about stuff like that, are Engineers. It's not that Engineer's do

  • by spyderbyte23 ( 96108 ) on Sunday March 30, 2003 @04:58PM (#5627721) Homepage
    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??
    People always bring this up, and it always make me think the same thing: you couldn't sue a medieval "barber" if he made you sicker rather than better with his regimen of "bleeding" and leeches. But you can sue a doctor for malpractice if he accidentally leaves a sponge in you. Is software "engineering" at an analogous level of maturity?
  • Re:Dubya (Score:2, Insightful)

    by YoungHack ( 36385 ) on Sunday March 30, 2003 @05:09PM (#5627783)
    Speaking of that, does anyone find it
    strange that a person appointed to his job
    by a court of people appointed to their
    jobs is going to be the deliverer of
    Democracy around the world?
  • Re:Depends (Score:5, Insightful)

    by Arandir ( 19206 ) on Sunday March 30, 2003 @05:10PM (#5627789) Homepage Journal
    I'm definitely a Software Engineer. Not only does my job title say so, I do the work of one. I am NOT a code monkey. 90% of my time is spent on requirements, specifications, design,validation, verification, and reviews. Excepting the calculus and state licensing, I do the same things an engineer in any other field does.

    Unfortunately the upper management is full of people who don't understand that. They think we're still code monkeys and think I'm being sarcastic when I give them an estimate of 6-8 weeks for a bug fix.
  • by Anonymous Coward on Sunday March 30, 2003 @05:18PM (#5627820)
    Hey, I dropped out of 9th grade in high school.

    Right now I hold the title of a "Software Architect" after being a "Sr. Software Engineer".

    I interview people on regular basis here. I've seen programmers come in with with BA, BS, masters, PHDs and drop outs. Out of all the candidate the avg BA and BS gets dropped almost instantly during the interview. Why? Because they think that they are engineers, but when I ask 'em to give me a psuedo-code implementation of a ring-buffer on a black-board, most of them can't figure it out 30mins-1hr of working on it.

    Egnineers can not be thought, you can only become an engineer through experience.

    Scientists are thought.

    Technicians are trained.

    So simply finishing a 4 year degree does not make you an engineer. If anything, it gives you over confidence in your skills, which when hired by project manager that does not not know to use these "engineers", which will ruin the person's ego. Which in turns that engineer into a plain ol boring code monkey.

  • by LongJohnStewartMill ( 645597 ) on Sunday March 30, 2003 @05:22PM (#5627844)
    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.
  • by legolas ( 125275 ) on Sunday March 30, 2003 @05:29PM (#5627881) Homepage
    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.

  • by mitcharoni ( 222957 ) on Sunday March 30, 2003 @05:37PM (#5627911)
    How many software engineers are willing to work as "associates" for low wages for years while the senior partners take all the credit and all the money in hopes of eventually being granted the recommendation they must have in order to get a license?

    And that's precisely one of the problems with software "engineers". You have to actually go out and earn prestige and respect. You aren't handed that along with your diploma.

    What do you think doctors and lawyers do after graduation?
  • by Hunterdvs ( 461524 ) on Sunday March 30, 2003 @05:39PM (#5627918) Homepage
    He is a scientist. I earned my BS in comptuer science, and worked my butt of doing it. Does that give me the right to the term engineer? No, it makes me a scientist.

    n : a person with advanced knowledge of one of more sciences [syn: man of science]

    I earned the right to refer to myself as a scientist. There is nothing ignoble about the term scientist. Although our discipline often overlaps with engineering disciplines (computer engineering) we are not engineers. A chemist (also a scientist obviously) may spend his life working on advanced computer models, but he does not claim to be an engineer and has no claim to the title. As computer scientist, neither do we.
  • by rlowe69 ( 74867 ) <ryanlowe_AThotmailDOTcom> on Sunday March 30, 2003 @05:51PM (#5627968) Homepage
    Whether or not these people are using the term engineer correctly or not, it is abhorrent for the government to use its energy to try and prevent the evolution of terms.

    Evolution of terms? OK well, unlike the rest of the general population you and I may be able to appreciate the subject of linguistics and the gradual "evolution of terms" in language. The fact of the matter is that people are dumb. People are so dumb that if you tell them you're an engineer, they'll trust you. Have you ever seen a person's eyes glaze over when you tell them you're an engineer? They know they are in uncharted territory. They TRUST engineers and the work they do because they know engineers are responsible for their COMPLICATED hard work.

    If anyone can call themselves an engineer because of "evolution of terms" we not only have legal problems, but also societal TRUST problems. It is 100% the government's responsibility to intervene and as a soon-to-be ACREDITED software engineer in the province of Ontario, I'm glad they are doing it! I'm sick of these 2 years in IT college also-rans calling themselves software engineers!
  • Re:Depends (Score:3, Insightful)

    by bigpat ( 158134 ) on Sunday March 30, 2003 @05:55PM (#5627987)
    "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."

    I disagree. Most engineers of any specialty rely upon existing well understood designs which they might modify to fit a particular situation, but rarely ever venture very far from what they have been shown to work before. So it would seem that there is no difference between an engineer and a monkey who also bases his work closely on the work of others.

    Seems the only rational basis for understanding a title is for litigious reasons. So someone who has met certain requirements and follows well understood practices is given legal cover.
  • by wkitchen ( 581276 ) on Sunday March 30, 2003 @06:08PM (#5628055)
    I don't think I'd trust a high school drop out to build me a bridge.
    I would, IF there were another way to validate his/her credentials.

    The purpose of school is two fold:
    1. to teach
    2. to evaluate

    I think the biggest failing in education as it is currently practiced is that these two things are tied too closely together. There are many highly capable people who are actively prevented from contributing to society because of this, resulting in an enormous waste of human potential. Different people learn in different ways, and even for those who do learn best in a formal way, some subjects don't lend themselves well to that.

    I'd really like to see the existence and accreditation of an institution that does not teach, but only evaluates. This way, it matters not whether you studied in a classroom, or hired private tutoring, or took self-moderated self-study courses, or just read a lot out of personal curiosity, or just got your hands on and figured it out for yourself.

    And I'm talking about more than just simple testing, though there would likely be some of that. For such a thing to be credible, it would have to be very rigorous and closely monitored. Personally, I think it should be so rigorous as to be of greater credibility than that of traditional degrees.

    In the interest of full disclosure, I too am a high school drop out with a fairly high-tech career.
  • Re:CODE MONKEY!!! (Score:2, Insightful)

    by LinuxOnHal ( 315199 ) on Sunday March 30, 2003 @06:10PM (#5628067) Homepage
    No, civil enineers design roads and dams, software engineers design the software, and yes, type with it. Under that definition, they are the same. Remember, software engineering is as much planning and design as it is actual coding.
  • Re:Depends (Score:2, Insightful)

    by thrillseeker ( 518224 ) on Sunday March 30, 2003 @06:14PM (#5628081)
    Excepting the calculus and state licensing, I do the same things an engineer in any other field does.

    Without the state licensing, you're not an Engineer, and you shouldn't call yourself one.

    The problem is that this state licensing issue has been abused for far too long without the state legal system doing anything to insure that when the term engineer is used it has meaning.

    In some countries the term Engineer can be used as we do Doctor in the US - if we encouraged this use in the US then people would realize the importance of the label. That won't happen.

  • by smallpaul ( 65919 ) <paul.prescod@net> on Sunday March 30, 2003 @06:29PM (#5628134)

    Evolution of terms? OK well, unlike the rest of the general population you and I may be able to appreciate the subject of linguistics and the gradual "evolution of terms" in language. The fact of the matter is that people are dumb. People are so dumb that if you tell them you're an engineer, they'll trust you.

    What does it matter? Do people at cocktail parties hire engineers? Look, if a guy with an MCSE goes to a job interview and presents himself as a civil engineer, he'll probably go to jail. But the same goes if a Chemical Engineer presents himself as a Civil Engineer or a Doctor of History presents himself as a medical doctor. The fact that the guy who isn't what the public calls an engineer or a doctor happens to use that term does not hurt anyone. The people who hire need to know the difference or we are in deep shit regardless of what the law says.

    If the public at large gets to define what "engineer" means then it means "guy who runs the train."

    It is 100% the government's responsibility to intervene and as a soon-to-be ACREDITED software engineer in the province of Ontario, I'm glad they are doing it! I'm sick of these 2 years in IT college also-rans calling themselves software engineers!

    And now we come down to the real issue. It has nothing to do with protecting the public. It's simple elitism. You've worked hard for a particular designation and you're afraid it will come to be seen as less prestigious. Boo hoo. It's too late. To the general public, an engineer is the guy who runs the train.

  • Engineering is all about applying what you know and creating a working system.

    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.

    • Powered Flight: The mechanics of powered flight were understood for hundreds of years. The stumbling block was a lightwieght power plant and a control system for rolling motion. Enter a pair of bicycle mechanics from Ohio.
    • The Apollo mission: no new scientific theories there, but a brilliant application of what theories we did know.
    • The Atomic Bomb: the theory can be grasped by a child, what keeps the dictators of the world from having the A-Bomb is the fact that they are devilishly hard to make.
    • The Internet: anyone who has read an RFC knows that there is no magic involved. The Internet is built on top of a body of standards, defined protocols, and the good faith of all parties involved.

    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...

  • by freeweed ( 309734 ) on Sunday March 30, 2003 @06:44PM (#5628187)
    And this is why the whole 'who can call themselves an Engineer' is a pretty stupid debate.

    Know what most of the public think an Engineer is?

    The guy who drives the train.
  • Re:CODE MONKEY!!! (Score:5, Insightful)

    by smallpaul ( 65919 ) <paul.prescod@net> on Sunday March 30, 2003 @06:49PM (#5628209)

    It should be major news that Joe Somebody's computer crashed today, an event greeted with grim commentary and TV specials.

    I think its hilarious to hear this from a hardware engineer. Do you know how many bugs hardware has? Do you think that the Pentium bug was some kind of rare event?

  • Re:Depends (Score:2, Insightful)

    by Strych9 ( 126433 ) on Sunday March 30, 2003 @07:04PM (#5628260)
    I"m an engineer. (Well in name anyway, I can't legally call myself that quite yet).

    When a lot of people ask me what do engineers do, it really isn't a simple answer. In fact, many people who are far more eloquent than I, have tried without much success.

    That being said: Programmers may apply some engineering principles to what they do (and maybe not even know it), but it still does not take into account the rest of the training and mindset. Just because a porsche and VW both have wheels and an engine doesn't make them the same.

    I agree with the above posters when they mention responsibility. Right now an engineer would have to be insane to stamp (professionally approve and take responsibility for) a chunket of code no matter if it comes from a hard core programmer or engineer. There are many other aspects that do differ the engineers from those without the training, even when there are those out there without the training who do a good job applying the principles.

    Just my 2 cents
  • by sl3xd ( 111641 ) on Sunday March 30, 2003 @07:05PM (#5628262) Journal
    He is a Microsoft Certified Engineer, not a Chemical Engineer or a Civil Engineer. Nobody would hire a Chemical Engineer to build a bridge and nobody would hire an MSCE to do it either. So the harm is just to your sense of propriety. Flame them if you like but leave the cops and courts out of it.

    The point is that the term "Engineer" should be used properly. MCSE or a Netware "engineer" qualify as misuse of the term 'engineer'. A "Microsoft Certified Systems 'engineer'" is really a technician, not an engineer, and should be labeled as such. The same applies for Novel Netware 'engineers'. In fact, MCSE's and Netware's naming convention has all but destroyed the credibility of the name "Computer Engineer," which is usually lumped together with MCSE's and Netware 'Engineers'. The difference is comparable to a mechanical engineer, who designs a car, and a mechanic, who changes the car's oil.

    It is often completely misunderstood that the differences between an electrical engineer and a computer engineer are relatively few, summarized by:
    * An Electrical Engineer has more depth in analog systems and antennas, and less depth in digital systems and software.
    * A Computer Engineer has more depth in digital systems and software, and less depth in analog systems and antennas.

    Which is not to say that either is lacking an education in either area; just that there is a focus on analog systems for an EE, and a focus on digital systems and computing for a CompE. However, a great many managers lump a Computer Engineer with a MCSE or netware 'engineer'.

    In a similar vein, there are several kinds of attorneys, who specialize in several branches of law. However, to call oneself an attorney without having passed the requisite bar exams, and be in good standing with the bar assosciations is illegal in most states.

    Basically, we enginners desire to have our profession's name undiluted, and maintain the respect that it deserves. Doctors, attorneys, accountants, and just about every other white-collar professional don't put up with the misuse of their profession's title, however engineers are forced to grit their teeth as janitors manufacture an important-sounding name which invariably contains the term 'engineer'. It's as absurd as a parent calling themselves an 'attorney' simply because they argue with their teenagers, a mother calling herself a 'nurse' even though she only put a band-aid on her daughter's scrape, or a handyman calling himself a 'mathematician' because he uses math to compute the number of square feet of carpet needed to cover a floor.

    And, just to stay on topic, there's a world of difference between a software 'engineer', a computer scientist, and a computer engineer. The current science and methodologies of developing software (arguably) will qualify as a true engineering profession in a decade or two; at this point it is still rather immature. It is getting closer, but it isn't there yet. The key issue being that real 'engineering' has a considerably more solid background in science and experience that is even possible in software.

    Most branches of engineering are centuries old, not decades. The behavior of the related systems is understood very, very well. There is very little argument about methodologies, as enough time has passed for most veins of thought and methodologies in use to have been tested thoroughly. There may be argument about an implementation, but the methods used are sound and very well-understood. There is a very real responsibility to being an engineer, both from an ethical and a leagal standpoint. When software 'engineers' are leagally, personally, and individually held responsible for their work, when commercial software cannot disclaim damages arising from its use, when software 'engineers' can be sent to jail for creating code that causes personal injury or death, when they must obtain a licence to practice their profession (as doctors, lawyers, nurses, and accountants must do), when they then they will be
  • by ATMAvatar ( 648864 ) on Sunday March 30, 2003 @07:23PM (#5628325) Journal
    Maybe if the code monkeys were personally financially liable for their (numerous and varied) screwups they'd appreciate test analysts and testers a bit more.

    I would imagine programmers would be more likely to accept personal liability if management and marketing didn't force projects to go out before they were ready.
  • by arkanes ( 521690 ) <> on Sunday March 30, 2003 @07:34PM (#5628364) Homepage
    How come whenever people compare engineers and programmers, they compare the very top of the engineering industry, the people who work on massive projects (we'll ignore the ones that failed, like that Japanese airport that's sinking into the ocean) to the bottom of the skill chain in programming? My DVD player is a piece of shit. An engineer designed that, and it was a pretty straightforward problem with a well known solution. Every cheap rip off toaster, every single factory recall by every home appliance and toy company... all problems caused by engineers. There's some products that should be alot better than they are. There's been a shitload of engineering mistakes made by people who should have known better also.

    I don't even know why programmers care so much about being compared to engineers, it's not like I give a shit what my title is.

  • Re:Dubya (Score:2, Insightful)

    by D.Throttle ( 432930 ) on Sunday March 30, 2003 @07:38PM (#5628385)
    What does this have to do with Programmers being Engineers?

    If we are on the topic though, would you care to explain how you see any correlation between the manner by which one is elected and his/her intentions? Undeniably your question implicitly claims that W because of the manner by which he took office makes him less likely to "be the deliverer of Democracy" than if he were to have won by a landslide.

    Whether you like it or not, the fact is that the process of the post-election events entirely abided to the US Constitution. Furthermore, even after the court case it was clearly determined that Bush had received more votes in Florida. So what exactly are you trying to dispute? Have you heard of the US Constitution's guarantee of equal protection? Perhaps you should become informed before asking mindless questions.

  • Re:Dubya (Score:5, Insightful)

    by Guppy06 ( 410832 ) on Sunday March 30, 2003 @07:40PM (#5628391)

    "a person appointed to his job
    by a court of people appointed to their

    Um... which court was that? The US Supreme Court, as always, chose between "you go fix it" and "not our problem" (which is what they've always done since 1789 or so). The people they told to "fix it" were the democratically elected members of the Florida Supreme Court, interpreting Florida laws written and ratified by democratically elected state legislators and signed into law by a democratically elected governor. The issue in question were the election results that a democratically elected secretary of state signed off on.

    And even then there was very little the US Supreme Court could have done. All they could do is say whether or not what the State of Florida was doing violated parts of the Fourteenth Amendment or not. Otherwise, the US Constitution clearly spells out that the Florida Legislature can pick its memebers of the Electoral College however it damned well pleases.

    And don't forget that appointments to all federal courts have to be cleared by a democratically elected Congress, which also has the power to remove them from their bench.
  • Re:Depends (Score:1, Insightful)

    by Anonymous Coward on Sunday March 30, 2003 @07:44PM (#5628424)
    that last part kills me.

    i would say that 80% of upper management needs a sound f'n beating.

    i still believe that you can't use the word engineer in your title.

    LOTS of people do similar work to engineers and architects, yet we don't get to use the title.

    i have a degree in architecture, i spend time on requirements, specifications, design, validation and verification and reviews. I have the calculus, I have the physics.

    I have not passed the state licensing exam. I have not passed the minimum number of years apprenticed and sponsored by a licensed architect.

    I am not an architect.

    You are not an engineer.

  • Re:Dubya (Score:5, Insightful)

    by Dark Nexus ( 172808 ) on Sunday March 30, 2003 @07:51PM (#5628464)
    It's a simple matter that in most areas, engineers are liable (criminally liable in cases) for a failure of anything they've signed off on.

    Would any MCSEs be willing to be liable for problems in their code? Open to lawsuits for failures, regardless of any EULAs?

    There's a reason for laws like this, and that's because of the legal responsibility and liability that comes with being an practicing engineer.
  • Metrics (Score:2, Insightful)

    by 2RockStars ( 81005 ) on Sunday March 30, 2003 @07:55PM (#5628481) Homepage
    Seems to me (a EE from Purdue) that the only thing that makes engineering engineering as opposed to arts or crafts is the use of metrics. That is, you're s'posed to be able to design something to fit within a certain set of constraints, and have a way to objectively measure how well you've done. It seems to me that a lot of software is built by artisans, who "just build the damn thing" without really worrying about what constraints may exist in the problem domain. That's certainly how I seem to write my code... Most of these software artisans wouldn't be able to do a comparison with another piece of software that purports to solve the same design problem without a side-by-side benchmark after the code is written. Real engineers know before build-time how well their design compares to others.

    I guess it's time for me to go re-read some algorithm books :).
  • by mcrbids ( 148650 ) on Sunday March 30, 2003 @08:05PM (#5628521) Journal
    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!

  • by a42 ( 136563 ) on Sunday March 30, 2003 @09:46PM (#5628930)
    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.

    This would certainly mean the end of crappy software. In fact, it would mean the end of ALL software. We can't get our employers to pay us to do it properly now -- you think that's gonna change just because your career is on the line?

    Software doesn't suck because software engineers are bad. Well, okay, it does, but that's not the only reason. The primary reason that software sucks is that nobody is willing to pay us for the amount of time it actually takes to do something. When you take an 18 month schedule and compress it down to 6, remove all QA, and THEN add all sorts of additional requirements at the last minute what do you expect? I doubt if "real" engineers work that way, why should we?

  • by HughsOnFirst ( 174255 ) on Monday March 31, 2003 @12:17AM (#5629548)
    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 )
  • Re:Dubya (Score:2, Insightful)

    by jdeking1 ( 309579 ) <> on Monday March 31, 2003 @02:09AM (#5629909) Homepage Journal
    Whether you like it or not, the fact is that the process of the post-election events entirely abided to the US Constitution

    Hmm ... except for the fact that disputed elections are to be decided by Congress, not the Supreme Court. This was an extreme derailment of the Constitutional doctrine.

    OK, so I bit the troll bait. Couldn't resist. It was such an obvious morsel ...
  • by NecrosisLabs ( 125672 ) on Monday March 31, 2003 @02:21AM (#5629937)
    Congratulations, your post has won the highest rating to bullcrap ratio I think I have seen on Slashdot yet. That is quite an achievement...

    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.
    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.
    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?

    ..must not feed the trolls, must not feed the trolls...

  • by Wastl ( 809 ) on Monday March 31, 2003 @02:52AM (#5630051) Homepage
    1. No mathematics in engineering? I'm speechless. Flabbergasted... Stunned. What do you think engineers use, iambic pentameter?

    Engineering applies Mathematics while Computer Science (and to some extent programming) is (the science of) mathematics.

    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.

    Again, engineering applies science, whereas Computer Science is science. Arguably, programming is often not science in this definition, but often it is.

    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?

    Mathematicians, mainly.

  • by trotski ( 592530 ) on Monday March 31, 2003 @04:26AM (#5630232)
    Programming is a unique discipline on the intersection between engineering, art, science and mathematics. It requires much greater deal of creativity and mental dexterity in entirely novel situations than mere engineering.

    I honestly hope the above is just ignorance, and not thick headed stupidity.

    Engineering has far more to do with science, art and mathematics than computer programming does.

    The theory and science behind thermodynamics, as well as material mechanics was almost entirely deveopled by engineers. The great men who developed most of the theories of modern thermodynamics such as Carnot, Stephenson and Otto were all engineers. Engineering not only applies science, it has created and developed entirely new disciples of science.

    The theories of finite element analysis, a complex mathematical analysis technique which can be applies to countless physical problems was developed by engineers; not mathematitians. As well, many theories of 3d geometry and modeling were developed by engineers.

    Engineers have created great works of art, atleast as much as programmers do. Look at the golden gate bridge, or the Concorde, or the film projector. If this isn't art, what is?

    Look, why don't you sit down and try to solve a simple mechanical or electrical problem without creativity. Designing a simple circuit, mechanisim or structure to acomplish a simple task often requires great creativity and inginuity. If you don't belive me, open an automatic transmission, and tell me theres no creativity involved there.

    I think that covers everything. I have no doubt that computer science or engineering involves these aspects as well. Programming on the other hand is analogous to welding, you just put other people ideas into existance.
  • by Perdo ( 151843 ) on Monday March 31, 2003 @05:30AM (#5630365) Homepage Journal

    "Many engineers I have known have decades of programming experience, on bare metal, Fortran, and C++."

    Then they are not engineers, they have distinguished themselves as being much more than that, even in your mind. They are programmers, obviously a cut above their engineer peers, which include you, since you did not say "I am an engineer but I also program C, Fortran, etc.".

    The reality is, John Carmack, one the finest programmers alive, has gotten further as an aerospace engineer in two years than some engineers get during an entire career.

    I know an aerospace engineer whose claim to fame, the pinnacle of his career, was to design the rear lavatory on the 737.

    Not every engineer designs the Eiffel tower.

    Not every programmer wrote the Linux kernel...hmm...

    But where the Eiffel tower was designed by one man, the Linux kernel required the labor of thousands to get where it is today.

    300 people built the Eiffel tower in 2 years and yes, it is true art, useless, it does nothing but make a good backdrop for postcards.

    The Linux kernel on the other hand is quite useful, required the brilliant output from thousands of esteemed programmers as opposed to 300 ignorant laborers, is elegant and much more worthy of your inspired praise.

    Don't worry, this is a parody of the trolls you were hoping not to feed. It's funny, laugh.
  • Re:Dubya (Score:2, Insightful)

    by stevenp ( 610846 ) on Monday March 31, 2003 @06:34AM (#5630475)
    >> I Must be an engineer because Microsoft and Novell both say so! Take that Texas.

    The Microsoft certification should not give anyone the right to call himself an engineer. It just certifies that the person have learned a bunch of answers for a bunch of predefined questions (nothing personal, you may know your stuff).
    There is nothing about experience, applied knowledge or responsibility stated. I know (hehe) some paper MCSE-s that do not know where is the PC power switch. Their motto is "I can learn that later in the company that is going to hire me because of my MCSE certification". I mean the people REALLY have never used a PC outside of Word/IE (they need to type their resume after all so that it looks nice :)
    The Novell tests are probably better.

    A mechanical engineer normally should pass strict tests, produce something working (diploma work) and generally prove that he knows how to do his work. When practicing, he TAKES RESPONSIBILITY for the things he created. If a plane falls down, the persons that designed it, produced it and certified it for flying are held responsible with consequences for them if an design/production/certification error was found.
    If a software program crashes because of design error and I lose money or reputation because of this, usually no one cares. The software developer may just hide behind the EULA and that's it. It's a wild-wild-west.
    So, enginner is a title that needs to be earned, so that the people know on who they may rely, otherwise it loses its value. It is the same as MD and PhD.
  • by objwiz ( 166131 ) <objwiz AT yahoo DOT com> on Monday March 31, 2003 @08:50AM (#5630684)
    Just remember, if legislation starts declaring programmers as engineers, then the next step will be requiring programmers to get licensed. No more programming jobs w/o local union approval too. No more coding at home and making some $$$ from it.

    Various unions and government agencies have been trying for years to get programmers declared engineers. That means more revenue for them if they succeed and less job enjoyment for us IMO.

Q: How many IBM CPU's does it take to execute a job? A: Four; three to hold it down, and one to rip its head off.