views:

337

answers:

5

Is there any difference between these occupation names:

  • Programmer
  • Software engineer
  • Algorithmist / Algorithms specialist
  • Systems analyst

Do they all require different education and work experience, or should a good programmer be able to be all of them?

And should all these positions exist in the same organization, or is it just a way to give fancy titles to people, in order to make some of them feel being special?

+2  A: 

Is there any difference between the names? Yes of course, the names differ. (Sorry, couldn't resist)

Is there any difference in the actual work? While there are dictionary definitions for those titles, in practice there exists no clear standard how to name a position. One company's programmer is another company's software engineer, OTOH two programmers working in the same company may have very different tasks. So the answer is: Maybe, maybe not.

If you want to decide which job to apply for, look at the actual job description, or better: call them and ask what the job is about. Don't judge a book by it's cover.

Treb
+1  A: 

Is there any difference between the names? Yes, try a string diff. There's almost no similarities between them ;-)

Is there any difference in the actual work? Well, if you asked what's a difference between a developer, a programmer and a ... I might say it's in the details, but asking what's a difference between a programmer, software engineer and algorithms specialist is like asking what's a difference between a baker and a butcher. They're completely different jobs.

In smaller companies maybe one person can do all those jobs, but in any larger business those titles mean different jobs. The existance of these jobs will of course depend on the size and the organization of the company; for example, an algorithms specialist will probably not exist in the company that deals with remote system administration. It is more of a programming specialist. System analyst is something that one would expect in telecomunication businesses.

And so on ...

ldigas
+2  A: 

During my career, I've had 3 different titles, in order:

  • Programmer/Analyst
  • Analyst/Programmer
  • Systems Programmer

While the scope of my responsibilities has certainly grown over time, the heart of the jobs have been largely the same. It just seems that each organization has its' own slightly different take on how to put a title on what we do.

bcwood
A: 

On the first two from the list: it depends who you ask. Some would define a software engineer as someone with an engineering degree, whereas a programmer might have a computer science degree instead. However, their actual jobs may be identical.

Steve Melnikoff
+2  A: 

Great question! In my experience, a programmer is isolated to just programming. Software engineering involves requirements, implementation (programming), testing, project management, design, etc. A software engineer should know the best practices in each of these domains and be able to do them if called upon, although they usually specialize in one (especially programming).

I haven't seen any algorithmic job titles, but they probably exist in the R & D and academic domain since most intense algorithms (sorting) are baked into frameworks in commercial development.

I'm thinking a systems analyst is more in line with Systems Engineering, which looks at systems that include software, but are not all software. A good example is the 747. There is a lot of software in there, but it takes a systems engineer to look at the complete picture of wings, wheels, software, etc.

LWoodyiii