Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

General Discussion

What's the difference between a developer, programmer, and software engineer?

What's the difference between a developer, programmer, and software engineer?

It seems like the titles are used interchangeably in the coding world. Are they all really the same thing or are there differences between the positions? I have looked all over the Internet in search for an answer, but I cannot find one. Please help.

5 Answers

Software Engineer Designs and Make new Software and contribute in their engineering like Engineers of Microsoft Office...

Programmer .... write codes ... he does not develop or design or invent any thing new just use existed languages like html, css and python, and they are expert in those languages

Developer...they are same as like programmer , but they are not expert like programmers and they perform general development and designing like web designers and developers

Wow, you are so wrong, they are all the SAME. It depends on the company you work for, and what they decide your title is. I've been Software engineer, developer and programmer all at the same company without my job requirements or responsibilities changing.

Manuel Schulze
Manuel Schulze
12,739 Points

James Andrews this sounds strange. Why do your company change your job title that often for no need?

Anyway, 2 years after my answer I would change it slightly. It heavily depends on the company, the country and the knowledge of the person who is looking for a programmer/developer/engineer.

For some companies, there is a difference. For others there is none. I think it really makes sense to have different names for a programmer and a software developer/engineer. A programmer can even be someone who just writes code exclusively with one technology like WordPress or is just coding the things someone else specified. He is not making big decisions on the architecture, etc. Anyway, many people are using it the same. This is what I have seen from many companies I worked in. I think a difference between them makes sense but if you are looking for a job you should definitely take a look at the requirements and ask for the expectations instead of just deciding because of the job title.

I worked for a company that was a big digital agency. When they went through name changes (business name change) they tended to also go over everyone's titles and change them. Often more senior developers/programmers/engineers would get the extra descriptor of "architect", or "Senior" or "principal" to show their seniority, but the 3 base names you are using are exactly the same.

I don't know anyone who writes code who writes what "someone else specified". Typically what I have seen is that the people writing code in a company, get together in a room and talk about the architecture together. What needs to happen between different X,Y, and Z components and who will be responsible for writing that. Usually decisions are made together.

As to your claim about a programmer being someone who one works in one technology like your Wordpress example where someone isn't making big decisions. How are they not deciding how to implement code? I don't know a single programmer/developer/engineer who doesn't make decisions in what they are coding. Most specifications come down from management not another developer/programmer/engineer.

So are you saying that there are no php wordpress engineers if that's all they do is wordpress? No one making big decisions on how to architect plugins?

A software engineer is a programmer. A programmer is a developer. It is all the same. Anyone who tries to shoehorn a title into one being superior than the other are wrong.

Manuel Schulze
Manuel Schulze
12,739 Points

Ok I this makes more sense now for me. I totally agree on things like the junior and senior developer.

There are guys that writing code others specified. Sometimes there are decision makers that decide what components will be in the application and how the architecture should look like. This was especially true as I worked at a small company. I also often met people during my studies that wanted to get a degree to do the step to more responsibility from a programmer to a developer. So there are differences between the programmer and the developer at least in Germany and in some companies. I agree that not all companies make this difference here. As I mentioned before it heavily depends on the company and the knowledge the person has that is looking for a developer/programmer/etc.

Okay, my definition of a programmer was misleading and not that well. I just want to make the point that if you are writing code in a programming language you are a programmer (my own definition). But the difference between someone who can change a WordPress theme slightly and someone who can build an entire application or theme or plugin by its own, creates the architecture, decides what components there will be, take care of security issues, etc. is, in my definition the step from a programmer to a developer. I think this makes sense. I have seen companies that are looking for programmers and the tasks of them were to use other themes and customize them in the settings and from time to time changing the code slightly. A person like that does not develop something. But for sure he still writes code in a programming language.

I think it's a subjective topic and we try to find an objective answer. I just heavily disagree with you that there is never ever a difference. Because people are making a difference there. Not all, like your company and a lot of mines, has shown. But there are companies out there that make a difference.

Manuel Schulze
Manuel Schulze
12,739 Points

Well that's pretty difficult because as you mentioned they are used interchangeably by many. I think this depends on where you are living too. For example in Germany a developer or an engineer is most combined with a study while a programmer is not (in Germany there is sadly still a difference between a "programmer" with graduation and without). But anyway they have different jobs here too.

A programmer gets a feature list or a specification and then he have to implement it. He needs very well knowledge of the programming language and well-written, high performance source-code. This usally stops there in terms of responsibility.

I would argue that a software developer is pretty the same so he takes care of testing, software design, implementing and so on. But in addition to this he is able of leading people (even a small group of programmers) and to architect software and write technical documentations.

The software engineer has some added abilities like knowledge of engineering. He sees the whole picture and is able to design some components to one entity. He knows how to seperate these modules to small chunks which can be implemented by the developers/programmers.

Anyway I know that all of this can be discussed very detailed and is not the correct answer to your question because I think there is none. Some will argue that there is no difference others will say that my definitions are totally wrong. It's just ONE point of view.

I hope I could help you even a little.

Manuel Schulze
Manuel Schulze
12,739 Points

-- Edit --

Because it's missunderstanding I want to make clear that even a programmer and developer following my definition needs to see the whole picture. But it's may more important for a software engineer because he has to architect a whole system.

But I want to add that James is more experienced than I am and maybe his answer is "more" correct. Anyway I would argue that the difference between these 3 jobs depends on the local situation and on the company too. So they are used interchangebly and for that reason they are the same in general. Some companies make differences and some of them make it like I did.

A programmer is a software engineer a developer is a programmer. They are one in the same. They are only titles and if a company uses more than one of them they are to differentiate their experience level.

To say that a programmer/developer doesn't see the whole picture is incorrect you can't program if you don't know what you're programming. In my 20 years of programming I have never not known what the completed goal was. I may not have known how to get there, but even the more senior programmers never had a complete idea of how they were going to get there, it just happens over time as you're programming in the project.

Thanks for all your input everyone! These answers are really helpful and now I feel like I have more of a solid grasp of the differences and similarities between the positions.

Anthony c
Anthony c
20,907 Points

It's funny to note the BLS has programmer job market contracting (-8%) over the next 10 years.

http://www.bls.gov/ooh/computer-and-information-technology/computer-programmers.htm

But has "software developers" growing above average (17%+) over the same period:

http://www.bls.gov/ooh/computer-and-information-technology/software-developers.htm

My guess is the people at BLS don't know the difference....