Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Right now I'm preparing my CV. I think it's relevant to mention that I'm not native English speaker and my question is half-linguistic, half-programming related.

I've been professionally hired as software developer for nearly 5 years, some of the projects required designing small-scale applications architecture, I'm a MS in computer science.

I have trouble figuring out how to call myself in professional light:

  • a programmer
  • a software developer
  • a software engineer?

Being translated all those notions have the same meaning in my mother's tongue, but I doubt, if they have a more specific usage.

Can you help me figure out what's the difference between all three? Which one would you prefer the put in CV and why?

share|improve this question

closed as off-topic by durron597, GlenH7, MichaelT, Kilian Foth, enderland Jun 19 '15 at 12:57

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – durron597, GlenH7, Community, Kilian Foth, enderland
If this question can be reworded to fit the rules in the help center, please edit the question.

also provide your experience and qualifications to get better answers. – Pankaj Upadhyay Dec 28 '11 at 12:46
What is the title of any degrees that you hold? What have been the position titles that you have held in any jobs? – Thomas Owens Dec 28 '11 at 12:47
yup, it's in the edit. – karla Dec 28 '11 at 12:51
up vote 7 down vote accepted

In my view, there are two aspects - your education and your job history.

Because your degree is in computer science, I would tend toward "computer scientist". My degree is in software engineering, so I refer to myself as a "software engineer". If your degree was in information technology, you would be an "information technologist". There really aren't any rules on what you call yourself, but you do need to be careful about referring to yourself as an engineer in some European countries, Canada, and some states in the United States (specifically Texas and Florida, but there may be others) where you need to meet certain requirements to use that title.

Note that my resume does not contain a title for myself, outside of the job title for each position.

Typically, you also have a title at work. The people I work with that come from a software background have titles including "Program Manager", "Software Engineering Manager", "Software Engineer", "Embedded Software Engineer", and "Systems Engineer". On my resume, I include the title that I held within the organization for that position. Titles vary, but in my experiences, they are generally easy to understand, especially when coupled with a brief description of what you did and what you were responsible for.

Any CV or resume should explicitly include your educational background (including the title of the degree program) and relevant work experience (including job titles and descriptions).

share|improve this answer
Thanks! that's helpful! I really am in doubt what should I use - my degree is in major Computer science, but my profile was software engineering.. and title of my position is translated in English in any of the three forms. – karla Dec 28 '11 at 13:03
@karla My degree says "software engineering", but my academic focus was on software engineering process. I don't call myself a "software process engineer". I would tend to stick to the academic field of study for a title, but it's not mandatory at all. As far as specific job titles, without knowing your native language, I can't be of any more help. Perhaps a colleague who speaks both your native language and English would be able to help more with translating job titles, or your company has a preferred English translation of the job title (ask HR). – Thomas Owens Dec 28 '11 at 13:10
My degree is in mathematics, and my last job title was 'analyst/tester' (I don't know who thought that one up), but I call myself a software developer because that best describes what I do. – Kirk Broadhurst Dec 28 '11 at 23:30

Lets keep the Engineering term aside. Its bit abused these days. Earlier it was only used to refer the engieering graduates but nowadays every post in a company is engineer. Sales engineer, maintenance engineer, CMS software engineer.

Now, since you have held a position that required you to develop and maintain softwares, I would suggest you to go with Software developer.

Programmer is a generic term for any person who writes code, irrespective of the coding language. But, it need not necessarily imply to person who can deliver a complete development of software. A software developer is needed to have basic knowledge of every aspect about development whereas a programmer needs to know the specifications in his/her preferred coding language only

share|improve this answer
I also think the term Engineer is being misused nowadays. I'm definitely keep on design and architecture, and I want to gain the necessary experience. I believe I've got proper qualification for that, but my experience is not matching.When I was hired 5 years ago I was still in my third year at university (in some countries it is not likely for the student for work, during education, but here it is very well accepted ), I couldn't hoped for more. – karla Dec 28 '11 at 13:31
  • a programmer: a person who know how to write code - needed by a small firms for not so complex development tasks.

  • a software developer: a person with a higher and more deep technological skills in programming - needed by service providers or entities with special software needs.

  • a software engineer: studied software development process and have not only experience in programming but in software development life cycle in general - needed by products and software development companies.

You can find more details in an old question on stackoverflow:

Stackoverflow prev question reference

share|improve this answer
My experience is that all three are used interchangeably so much that even if there really ever was a distinction, it is meaningless now. – JohnFx Dec 28 '11 at 17:16
Yep, all three are usually identical roles. – Angelo Jan 22 '12 at 0:35

Academically there may be some difference between the three. In reality, they are pretty much interchangeable. Software Engineer has started to become somewhat of a dated term and I'd avoid it because there is a little controversy about whether it applies to what we do.

share|improve this answer

Calling yourself an engineer has a notion that you have attained an engineering degree at a higher order education such as College or University. If you have such you could call yourself a software engineer. If not then it would only confuse your potential employers over why you call yourself something that you have no proof over (even if you had that title at a previous job).

It isn't illegal to call yourself an engineer even if you don't have a degree (though your legal milage may vary), but it is more likely and worse that you will be marked as a liar. Especially if you haven't had this title in a previous company. To be marked as a liar is very damaging to your reputation once recruiters find out that you blatantly lie in your resume and you will be put in a black list.

As far as I know it is safer to go with programmer or developer. "Software programmer" is more hip among small software developing shops and "software developer" among more serious businesses.

And for the question on what "job title" you should have on your CV, remove it completely. Your title isn't really that important as you would think, and I say this with the recruiting experience I have in the IT industry. I have read and looked through a lot of CV:s and portfolios and there is nothing more off-putting than a job application without any relevancy whatsoever.

It is better to tailor your CV for your prospective employer and keeping a CV with the total history for your own keepsake. You really should put most of your creative energy on the personal letter to the employer and the job that they want to fill in. We want you to show off what you can do for us, and the personal letter is the perfect opportunity for this.

share|improve this answer
I definitely do not want to be labelled " liar"... – karla Dec 28 '11 at 13:05
In some places, it is illegal to describe yourself as an engineer unless you have some sort of certification, but I've never heard of anybody being called a liar for describing themselves as a "software engineer". – David Thornley Dec 28 '11 at 15:38
@DavidThornley I meant that if the person doesn't have an engineering degree but claim to have one in their resume (regardless if they just want to fall into the "software engineer" job title) then they are pretty much a blatant liar. I'm interested to know where it is illegal to call yourself engineer if you don't have the degree. I've heard it claimed many times but nobody give any example. I do know in Sweden (where I reside) that the only title that is protected by law is lawyer. – Spoike Dec 28 '11 at 23:02
@Spoike: I think I've read that you can't describe yourself as a "software engineer" in Canada without some sort of engineering certification. However, in the US, nobody would think that title implied an engineering degree. Claiming to have such a degree when one doesn't is indeed lying, but calling oneself a "Software Engineer" (in the US) doesn't imply any sort of degree. – David Thornley Dec 28 '11 at 23:06

I think in a game-development company or in a startup environment, "programmer" might be used without harm, just to distinguish your position sufficiently from "management" or "graphic design" positions.

However, in a larger organisation or corporate environment "programmer" might be a synonym for "junior level" positions or "contract work".

Also if you cannot really write "programmer" into a grant asking for funding. "Software engineer" is more feasible here, to show that you are on the same salary level as all the other people (engineers, scientists) on the upcoming project.

In this project plan, It justifies to ask for a higher total sum, so you'll not necessarily be marked as a liar. Many participants in the sub-projects have probably asked for more than they'll possibly get.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.