views:

1188

answers:

14

I look at ads and the jobs seem to overlap. A lot of software engineer jobs even say CS or related degree so it doesn't seem like a degree in CS = software engineer. It seems like a programmer or developer with experience can transition to the role or become an "engineer". Or is the engineer just the same job with a fancy name... Is there really a difference or is it just HR throwing names around?

+3  A: 

I refer to myself as a Software Developer. I like the way it sounds, and it indicates that I'm more than a programmer, or "code monkey", since I design the architecture, interact with the customer, and do other tasks that are require to achieve my end goal: working software.

In reality, there may be small differences between each name, but I have found that most often, the terms are generally interchangeable.

Kyle Trauberman
But what does it really mean to be "more" than a programmer? I don't think that just means slavishly writing boiler plate in some third world basement.
BobbyShaftoe
I think everybody says they're more than a programming code monkey so it's mostly lost it's meaning now.
Tim Matthews
That's interesting, I prefer "engineer" because to me it implies what "developer" implies to you!
SquareCog
And I'll take "scientist" over it all. :) No, I think these are just worthless titles. The proof is in the pudding or you should be judged on the merits of your work.
BobbyShaftoe
+6  A: 

I can't speak for america, but to be an engineer in australia, you must have attended a 4 year degree, which includes at least 3months of relative experience in industry before graduating, attend classes in regards to professional ethics and conduct, as well as adhere to a set of tenets for behaviour over your career.

You must also commit to furthering your professional development.

The word software "engineer" is overused by people a lot in this industry.

Spence
Just making clear the distinction that I was not in a position to comment. I'm certain that the americans do as we recognise each others industry associations via the washington accord.
Spence
@Charles-Conway, Are you saying it does have such implications? If so, I disagree. I think the phrase "Software Engineer" is just thrown around in the US.
BobbyShaftoe
@BobbyShaftoe Ditto -- The term is just thrown around in the US.
William Brendel
Thats why our societies have created chartered professional status. You can't be a chartered engineer unless you meet the obligations.
Spence
The use of the term "engineer" is also regulated in Canada, as well. You need to have an actual engineering degree to call yourself an engineer.
Marc Novakowski
As an American with an actual engineering degree (SE, not CS) the term is thrown around and for that matter my degree is worthless as engineering credentials.
Joel Hoffman
To be more precise, legitimate engineering credentials would include a recognized license, a licensing board with something real at stake, personal liability and genuine continuing education, all of which is at best dubious in the US and I'm skeptical of its value in the rest of the world as well.
Joel Hoffman
That's a good distinction. In America it doesn't matter.
Chuck Conway
I have nothing to cite, but I'm almost positive that in the US, the usage of the term engineer does have requirements in _some_ states (including Software Engineer). Unfortunately I wasn't able to find anything conclusive online.
codelogic
New Zealand has something similar, but IPENZ doesn't even recognise SE as an engineering profession.
Jamie Penney
I reckon a lot of places could do well to follow the aus model.
annakata
IEAust recognises a software engineer, but we are not recognised in law by the National professional engineers register :(.
Spence
+1  A: 

These are relatively diluted terms, except that programmer certainly means something in particular. A lot of people use the title "Software Engineer" that can't write a line of C or know anything about computers at all really. Software "Engineer" is somewhat loaded. In the software world, we don't generally use that word "engineer" as rigorously as in other disciplines. It is some what controversial as in many countries "engineer" has real legal implications. But on those resumes, it's just a lot of "happy talk" for programmers.

BobbyShaftoe
+5  A: 

Here is a discussion on it over at JoelOnSoftware and a blog post.

Some would argue, that it matters, it doesn't. Titles are meaningless.

I've been called both. In the end you sit in front of a computer solving problems by programming.

I regard the term "Programmer" as an outdated term. Nobody hires "Programmers" , they hire Software Engineers, Software Developers...

Chuck Conway
In the game industry there are only programmers, I've yet to meet a game developer call themselves something else at work, maybe they'll throw arround engineer or something else on resumes, but not on a daily basis.
Robert Gould
That's interesting. I have a buddy who worked in the gaming industry. I'll ask him the same question.
Chuck Conway
Game developers tend to be unpretentious. :) Good people!
BobbyShaftoe
+1  A: 

There is probably no one answer to this. I'm sure there are large companies that hire all three of these positions and internally they have specific meanings. The problem is the meaning is not universal. In general a developer position has greater responsibility than a programmer position.

Software engineer is an oddity. It is used inappropriately in most cases. Software development is generally not engineering. There are exception such as when it involves life and death at the level of NASA software or surgical software. But usually software engineers are found in places where the process is anything but engineered.

jmucchiello
Some organizations use these titles as political badges in an attempt to undermine others.
BobbyShaftoe
He was asking about the meaning of words, not the power of words.
jmucchiello
Oh, I agree. I was just making an observation I've noticed over the years.
BobbyShaftoe
+7  A: 

My personal opinion is that anyone can be a programmer if they learn how to write some code that compiles, runs and produces the expected output. A developer would be someone who can develop, maintain, and enhance a program, is able to design an application in a good way, and can achieve a number of non-functional requirements (e.g. performance requirements).

A software engineer, on the other hand, is someone who has knowledge to apply software engineering principles. He has knowledge about software design methodologies, software architecture, application security, and various other aspects of a system. He knows about design, development, testing, and probably deployment too. He does't necessarily possess deep knowledge in all these areas, but he has a minimum amount of knowledge that allows him to make certain decisions. Most importantly IMHO, a software engineer knows, applies and works according to a software development process, realizes the need for one, and can follow it effectively.

For a more detailed comparison, see these links from Wikipedia:

Hosam Aly
+1  A: 

I've always been partial to "Software Architect"

Everyone sees it differently though. As long as your good at what you do, who cares about a job title? I used to know a guy who was a janitor, but preferred to call himself a "Sanitation Technician".

BBetances
I find that totally confusing, expecially since computer sciences have always been considered engineering schools, not architecture ones. But today, people do seem to use all kinds of names, expecially ones who don't know the meaning of the words they're using.
ldigas
I think it depends on the level of depth you impart on your customers. I work for myself. I design software from the ground up, starting with user requirements, including UI. therefore, I am a Software Architect.
BBetances
You guys have many valid points here, but again, it brings us back to formal qualifications and recognitions. So, would that mean that my sister is a Doctor just because she works as a Doctor's assistant in a hospital? She is a nurse and has been working with doctors all her professional life.
Helen Neely
A: 

So technically I as a "developer" could apply for software engineer jobs as long as I have the skills on the listing. I'm working towards a BS in computer and information science degree because it's easier and school is a pain. But, on my own I learn and acquire skills about everything software.

The only reason I would apply for software engineer is if it makes more $$ and can help me acquire new skills, grow, what not.

I some countries, the title Software Engineer is restricted only to those who are licensed professional engineers. In the US, however, it is not regulated.
Flame
+1  A: 

I always went by:

  • software engineer - software (engineer) - engineer, an academic title, must have a degree
  • programmer - a job description
  • developer, someone who develops, doesn't necessarily have to match the above criteria (engineer, programmer) but someone who decides what will go in the software, and what is the goal that's trying to be accomplished

Now, usually, people have a degree in cs's, they're programmer's working as such, but they work on someone elses guidelines, so that would be software engineer/programmer. If they're working on their own piece of software that would make them developers as well. But a developer, can also be someone with a non-cs engineering background, ...

I don't like titles from which you don't understand what that person really does.

ldigas
+2  A: 

This question is about what do these words mean in a job title listed in a job ad.

The short answer is that the title used doesn't matter. There are probably a dozen different terms that will be used by companies to describe essentially the same set of responsibilities (and every job I've ever had included clauses in the contract like "... and other duties as required", which means you could get hired for C++ programming and end up doing customer support, or vice versa, without ever officially changing job titles).

Having said that, HR departments for academia, government, military, etc are going to be a lot more careful about using terms like "engineer", where there is potential for confusion about qualifications when people take the term literally. But if there is a specific requirement (e.g., must have a P.Eng. license), you can be sure it's going to be called out in the job description, whether it's in the title or not. So you might need to be a registered engineer to get a Programmer job for factory automation, or you may not need a degree at all to get a Software Engineer position at an off-the-shelf software company.

If you hear anyone who says "oh, those people aren't really engineers, they shouldn't abuse the term", ignore them. My grandfather was an engineer, and he didn't have any 4-year degree. He drove trains. The word "engineer" was around long before professionalization. A "software engineer" is literally someone who controls software engines. In my current role, if I want to make my official title "Build Doctor" or "The Plumbing Professor", there's no reason I shouldn't be able to.

Zac Thompson
A: 

There are many names, and hence the job may or may not be the same. Some developers work according to defined rules of the architect and hence, they may not be called absolute software developers. Developers or Engineers take an active part in the analysis, design, implementation, testing and maintenence of the product.

And even though one might call oneself a Software Engineer or Software Developer , they aren't true SEs or SDs if they haven't contributed through all the phases of software development.

IMHO - Programmers - is obsolete, a term used for people who only act as a translator between the real world designs and the computer.

Software Developers or Software Engineers - a term used for people who are capable of doing software development right from the requirements analysis to maintenance of the software product.

Elroy
A: 

In my experience, especially in non-English speaking countries these job titles are most often used interchangably i.e. there is no disctinction in "software engineer" <--> "software developer" (e.g. in my company, everyone in the development department is a software engineer, with the occasional addition of Junior or Senior, probably to get some uniformity into our job titles). Required academic titles are usually stated explicitly as part of the job ad.

ISW
A: 

Just a meaningless name. I don't care what title I get, it's pseudo-remuneration and whatever you call me I'm still going to be coding the same.

annakata
+1  A: 

This is one discussion that is guaranteed to have no single conclusion. I bet we have all used different titles at different time - I for one, have used 'Software Developer' and 'Software Engineer' on many occasions. Judging by the comments that some of you have made above, I would say that the image the industry has stems down from the fact that lots of people in the industry have no formal qualification and as such should only be referred to as programmers.

In fact, I see lots and lots of 'programmers' who call themselves Software developers; yet they have no qualification to back it up.

So, I have decided it would be better to refer to them as 'Programmers'; and myself as a 'Software Engineer' because at least I have a formal university degree in Software Engineering to back the argument up.

Until we stop referring to unqualified programmers at Developers, we can not have the respect and recognition that our dedicated, hard-working and qualified Engineers deserve.

Helen Neely