views:

696

answers:

7

I recently graduated from an ABET-certified Software Engineering program. Most of my classes overlapped with the Computer & Electrical Engineering programs. Despite this, I frequently receive flack that Software Engineering isn't a real "engineering" degree. I feel that this prevalent stigma is also affecting my career.

To combat this stigma and thus become more appealing to employers, I have considered taking the Electrical and Computer PE Exam. Admittedly, I have no idea what is on the exam, but I have shown proficiency in the area of electromagnetism, which gives me some small amount of confidence.

To those who have a background in management or job interviewing, and to those who are knowledgeable about the exam, will taking the PE exam be worthwhile task for me?

+1  A: 

It may not help in the immediate future...but it definitely couldn't hurt.

Justin Niessner
+6  A: 

Yes, software engineers should do more Physical Education. They are usually way too fat. An exam can stimulate them to actually do something about that.

Besides, a healthy body is also good for the brain. This has been scientifically proven. Mens sana in corpore sano, and all that.

Thomas
Zing! [need 15 chars]
ojrac
Hilarious, but should be a comment (not an answer).
James Jones
I'd downvote this answer, but there is too much of "funny" in it.
Spoike
This is a serious question that deserves a real response.
LWoodyiii
And this is a serious response, because we PE is american for gym class.
Karl
@Karl, apologize. Forgot that us Americans rule the world.
LWoodyiii
A: 

PE isn't necessarily useful in software - as Matt described.

But a lot of government jobs (and some large companies) require a professional for manager jobs above a certain level - I see this in my area in Canada where lots of remote sensing experts with PhDs have to be 'managed' by an engineer or a lumberjack (sorry agronomist) because physics isn't a 'profession'.

If you work for a small company without a lot of other PEs on the staff you might have difficulty keeping up the training requirements. You need a PE to sign off on your work for it to count as professional development.

edit: Just to respond to the comments.
Certifying a software engineer, or rather a specific degree course, does not make the software any better.

What it does is to give the programmer a profesional and legal standing, so the next time a manager says 'just ship it anyway' you have a duty to say no.

But the problem in software is that how do say what is acceptable? In most engineering there are codes so if the manager says to use a sub-standard component you can definately say no. But if a software manager says to use C# and you think it should be done in Java is that really legal grounds for refusing to do it?

Whether it will ever be possible to have the equivalent of 'building codes' for software is another question.

Martin Beckett
It seems that Canada is ahead of the US in terms of certifying software engineers from what I can tell.
LWoodyiii
Yes, whether this is a good thing is another question
Martin Beckett
Good for Canada, probably bad for US. I just hope it doesn't take a major catastrophe in software for the US to really start certifying software engineers.
LWoodyiii
+1  A: 

The PE exam does not cover any software engineering principles.

It will eventually, possibly: http://www.todaysengineer.org/2009/Sep/Software-PE.asp

There would still be a requirement of verifiable and documented evidence of four years of qualifying engineering experience (supervised by a PE) - so unless you've already got that under your belt right now, I would just sit tight.

Cade Roux
+1 -- you can't "just take the PE" but he could take the FE exam (I believe the PE requires a passing FE score anyway).
Austin Salonen
Great article, was going to include it myself. It'll be awhile I think though before the first PE exam is actually released. I'm betting 2012 at the earliest.
LWoodyiii
A: 

To provide a counterpoint, some day you'll run into a hiring manager who's an opinionated asshole of a CS-degree-holder, like myself, who doesn't think that software can be engineered, given the lack of a science describing it. It's something to aspire to, but nowadays it's just carpentry, unless you're talking about working at NASA.

Novelocrat
+14  A: 

So this is probably going to get me flamed, but software engineering, the way our industry does it, is largely not engineering. Therefore, I would not recommend the FE / PE exam in the same way I would not recommend taking the bar exam.

"But soft!", you say, "It's got engineering right in the title! What do you know about it anyway?"

I graduated with a degree in mechanical engineering from a top-10-in-the-nation engineering university - Purdue University, which is ranked 7th in mechanical coming into 2010. I passed the Fundamentals of Engineering exam quite soundly, thank you. My career has taken me through jobs that progressively led me towards software, including working for Toyota and Lockheed Martin. I've now done software in silicon valley for about 4 years and 2 startups, so I feel fairly qualified to comment, now that I have about balanced experience between my disciplines - counting real industry experience at about 2-to-1 to schoolwork.

Software engineering is not engineering because engineering is the act of taking scientific knowledge and designing something that takes advantage of that knowledge for a particular goal. It is entirely a "head in the cloud" pursuit. As an engineer in industry, I never built anything that I designed - there were much better engineering technicians for that job than I. It was my job to think about what should be built and oversee the built product as it went through its lifecycle - design, prototype, test, refinement, and production. The closest thing we have to that is a software architect who doesn't code. And yes, by this definition, architects (the one who build buildings) are engineers, though on the border between engineering and art. As further example, the way that engineers work is almost always the waterfall methodology, which has proven difficult for we software types to adopt.

We are craftsmen, like the carpenter who draws up plans, but doesn't do finite element analysis. He uses his experience and intimate knowledge of the tools to design and build something, but it is not done to the rigorous level of engineering. Most carpenters don't use CAD, for instance. Back of the envelope is fine, because it's not the level of design that counts, but the product that is built.

We software types almost never get into the design part of it to the same level of detail as engineers, and then we almost always build it ourselves. Essentially the PE certification says that you know enough to create designs that can be built, even if you're not doing the building. So, no, don't bother with working towards a PE - it's not relevant - and don't let yourself get pushed into thinking that we're lesser skilled because of it. I can honestly claim that, though the two disciplines are different, they are each as difficult as the other - perhaps software a little more so, because of the very dynamic nature that means you can never get comfortable with your knowledge. Think of it this way: we may not be true engineers, but the true engineers don't get the satisfaction of building their castles in the sky the way we do.

Matt
Well said! Thanks for adding your experience from Mech. Engineering. Mary Shaw, at Carnegie-Mellon, wrote a [paper](http://lwoodyiii.wordpress.com/2009/10/30/is-software-engineering-really-software-craftmanship/) about how engineering disciplines go through a craftmanship stage. Maybe that's what we're doing now?
LWoodyiii
Software people don't build things in the same sense that a factory does. They design them. The "manufacture" step in software is so trivial that most people try stretching some part of the designing to cover it.
David Thornley
Very true, as a fellow mechanical engineer. I tend toward Dijkstra's view of "software engineering" (aka "How to program if you cannot"). Ha ha only serious. The point is that engineering proper has a lot more rigor than is commonly found in software development. Maybe if you did everything with formal methods, verification, etc.
Derrick Turk
Perhaps this is a flaw with the current industry - software engineering _should_ attempt to achieve the reliable, on time product result, and the client interaction, methodology, practices, and team culture to achieve this is what I consider to be "software engineering".
Arafangion
+1  A: 

As a software manager at a large consulting firm, to answer your question, I don't think a recruiter would know what a PE is. I'd say maybe 50% of managers in IT know what a PE is. So I don't think it will help you get hired at all in software development.

I am also about to graduate with a MS in Software Engineering and feel the same "stigma" as you when I say I'm getting a degree in "Software Engineering". Usually I just get a shrug of the shoulders or nodding heads. Instead, I try to use the best practices I learned through my degree in things such as requirements, construction, testing, etc. to educate my colleagues on different possible ways to do things in software.

Many in our industry are young and tend to think that they are the first to ever do something. This is not true, people have been creating software for over 60 years. Some lessons have been learned that we do not have to repeat. Luminaries such as Djikstra, Parnas, and Steve McConnell have much to teach us if we let them. BUT, we do need innovation and things like agile development, TDD, etc. are huge steps forward that add to the body of knowledge.

Good luck in your career and this journey in software!

LWoodyiii

related questions