There is so much jargon in the coding and software development world that it can be hard to even know what to call what you do!
You’ll hear terms like “coder”, “developer”, “software engineer” and even the odd “ninja” - although that trend has thankfully abated!
So when are you a coder, a developer or an engineer?
Is there any difference? If there is, does it matter?
To me there is no difference between a developer and a software engineer unless you work in a country where engineer is a protected title. In which case, you may need to pass certain exams and reviews to be legally allowed to use the title. But as far as I am concerned both do the same job.
So that leaves coder vs developer…..
Every developer is a coder. But not every coder is a developer.
It comes down to where you are writing code.
Coder - Individual
- Knows one or more programming languages
- Solves problems with code
- Works independently
- Understands relevant infrastructure/systems for application deployments
- Uses version control
- Writes tests for personal confidence in codebase
Developer / Engineer - Team member
- Works in a team
- Writes tests for team and business confidence in code base
- Understands and engages with Agile/project management principles
- Works with project owner/manager
- Cognisant of business needs and tradeoffs
- Writes documentation for current and future team members
Neither is better than the other. A developer works as part of a team and a coder tends to work solo.
In reality the difference is minimal and while you’re learning to code you shouldn’t worry about titles like this. There is no difference in the learning path between the two so stick to your plan and don’t be thrown off course because you think one might be different (or better) than the other.
Remember, every developer is a coder. So, learn to code, solve problems and build things.
Top comments (7)
I disagree that any of these terms carry such complicated or specific definitions.
Thanks for the comment, I agree that none of this should matter but as a new person coming into the industry it is confusing and being told "it doesn't matter" isn't helpful. Language changes and evolves and when searching online and looking at social media and job adverts these things have become important to understand the meaning of.
I've never heard the term developer applied to artists, I would say that context matters - words get reused all the time in English so let's not confuse new entrants any more.
When I started web dev 15 years it took me literally days to understand that a blog is just a website and not some separate entity. Remembering how confusing the tech world is for new entrants is important.
I appreciate that you're trying to inform new people, but it seems misleading to attach very specific definitions to what are actual generic terms with fairly simple meanings.
For example, your definition of coder effectively retroactively strips the title from every coder that coded before SCCS was released in 1975 and most coders that didn't fuss with subversion and other pre-git version control systems until recent years. In other words, despite all code I've written, I wasn't a coder until I started uploading some Minecraft mods to github and maybe not until a few years later when I managed to integrate unit testing into projects I worked on.
Do you see what I'm saying? Coder is a generic term that thousands, maybe millions of people have been using for nearly half a century without any of the baggage your definition attaches to it. If a new person asks what the definition of coder is, then an accurate definition would be as simple as: someone who uses code to solve problems. Any other qualifiers are at best context dependent and more likely unnecessary and perhaps misleading.
As another example, your definition of 'developer' arbitrarily declares lone developers, waterfall and other non-agile developers, non-coding developers, non-testing developers, and only-code developers as not really developers.
As a 'hey, this is what certain big tech companies are looking for as developers' it kinda works, but as a generic definition for 'developer' it ignores how broadly the word is used and has been used since before computing was a thing.
Again, like coder, if a new person asks what a developer is, the answer is as simple as: a developer is a person who, generally officially, contributes to the production of a project.
As I said, I appreciate anyone helping to educate new people, so even if we disagree, I hope the discussion useful to those that come after.
This isn't exactly helpful because these terms are so widespread that my personal pet peeves have no bearing on the industry but... it bothers me when people who are not engineers are called engineers. An engineer is a profession which, I think should come with a heavy responsibility, ie. if a bridge collapses you could loose your license. It requires a lot of schooling and associated responsibility.
Being a developer also requires a lot of learning and good developers should feel a responsibility for the software they create but a "front-end engineer" is likely not going to be in a position where a single point of failure could literally kill dozens of people.
The same goes for "software architects".
I think my frustration comes down to companies who use these terms as marketing buzzwords to create trust without earning it more so than individuals who happen to use these terms to describe themselves.
I totally get where you are coming from. I am a chartered engineer here in the UK but other than being able to say that I am chartered it brings no more weight that the nice and very competent person that Bosch send out to repair my washing machine and call an engineer as it is not a protected status in the UK.
I think the main issue, as with all things tech, is that the field is so new we have to borrow from other industries to describe things, hence we land up in the situation you describe. I have stopped caring about this in the main though, it makes me happier.
Interestingly "Architect" has protected status in the UK and there are strict rules on who can use it, I wonder if adding software as a prefix really does circumvent that protection.
Thanks for your post. It gets very confusing trying to interpret and understand what even basics such as these mean for noobies like me.
Totally, see my comment above to @jayjeckel that when I started out 15 years ago it took me days to understand that a blog is just a website and not some other specific thing.