zet

Difference Between Coder, Programmer, Developer, Engineer

“Says here you are a C Coder?”

“Yeah, I’ve coded enough C to understand pointers and memory allocation, but nothing huge in it.”

It seems everyone has a different idea of what the terms coder, programmer, and developer actually mean. In fact, even the United States Bureau of Labor Statistics has their own idea. Here’s what the terms mean to me.

A coder is anyone who writes code and knows the essentials. This includes code that is not (usually) considered programming like HTML, CSS, JSON, YAML, etc.

A programmer programs, meaning they are given a task and create the algorithms and write the code to execute them. This term denotes ability to use at least one specific programming language. Usually, no formal training is implied by this title. Reading a good book and working on a few projects is sufficient.

A software developer (as the BLS states) is someone who designs the applications and dictates what patterns, languages, and code will be required from the programmers and coders on the project. This involves a level of informed creativity that happens higher than programming. This is highest paid title because it requires higher knowledge of data structures, algorithms, enterprise business patterns, and domain-specific industry knowledge. You don’t need a CS degree for this, but it usually helps.

A software engineer is someone who not only possesses software developer skills — including mastery of data structures and algorithms — but is fundamentally applying them to systems-level engineering. Usually, this means the person has a masters STEM degree (or equivalent learning). I have no problem calling a NASA scientist writing code for spacecraft a “software engineer” (the origin of the term) but calling a React JavaScript programmer an “engineer” is just wrong and, frankly, disrespectful.

💬 I feel like “software architect” is a term in decline these days (as is “IT Architect” and “Systems Administrator”).

Related:

Tags:

#terms #coding