DEV Community

Anita Olsen
Anita Olsen Subscriber

Posted on

What is the Difference Between a Software Programmer and a Software Engineer?

There are software coders, software programmers, software developers and software engineers but they all seem the same to me. What is the difference between a software programmer and a software engineer? Is there any true difference between those terms or are they just used interchangable? I am asking because to me, it seems like people are using them however they see fit.

What is the difference between a software programmer and a software engineer?

Top comments (3)

Collapse
 
phalkmin profile image
Paulo Henrique

In my experience, people and companies like to use any term they believe will be seen as more "cult and cool", even when it doesn't relate to the job. Like a Tech Lead who still needs to code like a junior because the company demands it.

If we are going to take a theoretical approach, programmers work on specificity, while engineers look at the problem from above and think outside the code. How does it affect the project? How does it make everyone else's job easier? etc.

But, again, it's semantics :P

Collapse
 
matheusjulidori profile image
Matheus Julidori • Edited

Yeah, you pretty much summed up the situation. Companies don’t really know what they are looking for, so they use whichever name they think will work out best. But if you look at what it really should mean, it’s an engineer’s job to design the system with the core concerns in mind (scale, reliability, maintainability, economics, safety, etc.) whereas a developer’s job is to implement (code) the system’s features.

Collapse
 
samuraiseoul profile image
Sophie The Lionhart

I disagree with the other answer though I understand their perspective. I believe there is an important and meaningful distinction between the two. However over the last few decades the terms in the industry at least have become quite blurred.

A software engineer in theory is not any different than another type of engineer. They apply broad engineering concepts to the domain they are a master in, software, in the same way a chemical engineer does to their chosen domain of chemicals. Engineering is a very different approach to the problems that involves prototyping and iterating on things to come up with a highly polished final version with very well documented trade offs made for various things anf the reasonings as to why. Think the kind of software you'd like to see in a space shuttle.

Programmers are absolutely still valuable team members and shouldn't be looked down at either. Not every project needs the level of detail a true engineering and prototyping/iterating though many do at least simulate many of those flows. They are valuable contributors and the lifeblood of the industry today, often craving the intentional design of engineering paradigms and finding the lack of support from management lacking as they are forced to work in codebases that would OSHA violations if they were manifested in reality.

Does that kind of difference make sense? The other comment def made a good lower level explanation of the difference. However I don't think that just because we are butchering the term industry-wide means there isn't an important difference. I think personally think the lack of this specificity is making it hard for developers to find jobs that truly match them.