

Ask HN: What is the difference between a programmer and a developer? - o_s_m


======
bitwalker
In my opinion they are two words for the same thing: Someone who builds
software.

The word programmer refers to the literal act of writing the code, while to me
the word developer implies writing the code, but also all the other "software
engineering" aspects of developing software. If you wanted to be technical,
you could say a programmer just codes, while a developer codes but also
determines requirements, develops a specification/scope, etc.

I refer to myself with both interchangeably, and I assume most others do as
well. I really don't consider them to be different in any meaningful way.

------
kbuley
I (and many I know) tend to think of programmers (or coders) as those the
concentrate on specific tasks, such as programming a specific type of
hardware, phone system, manufacturing machine, or those that write code as a
part of a larger project but typically work only on small pieces of the larger
whole, with tight guidelines.

Developers are those that work at the next level. They have their fingers in
the project as a whole, or at least in multiple modules. These people are are
typically the leads, or senior people in the group.

For the engineer comparison... I would compare them to software architects.
They probably aren't writing much code, but they are building out specs and
test cases.

Where the engineer designs the bridge, the contractor handles sub projects,
and the worker welds the beams... the architect designs the software, the
developer manages interfaces and algorithms, and the programmer pounds out
lines of code.

$.02

~~~
jaywunder
I think that that's less of a difference in the definition, but more the
connotation. With that in mind though, I agree with you.

------
chuhnk
They mean the same thing. Another word would be Engineer.

~~~
yazaddaruvala
So for me.. "Engineer" is actually different. Honestly I think they are all
different however I'm especially fond of engineer and care to differentiate
it.

In my opinion an Engineer is a problem solver, at scale. Similar to a
Contractor vs Civil Engineer. Sure a contractor can build you a good bridge
for your backyard but you don't get them to design you the Golden Gate.

Similarly you don't build DynamoDB or BigTable with programmers, in my opinion
you need Engineers.

Outside of analogy, the biggest difference I can think of is probably the ease
at which youre able to be taught new things and the breath of knowledge that
they already have. An engineer, at least in my experience/opinion has more
breath of knowledge and a far easier time teaching themselves new things than
a programmer. However, some programmers actually have more knowledge about a
specific topic. For example I couldn't currently profile a running JVM (I'm
sure I could learn) but to someone taught to program in Java and specifically
took classes on Java, it is second nature. Again similar to how a civil
engineer couldn't build you a closet. Or mechanical engineer couldn't fix your
Honda Civic.

Anyways, I'm just being a bit defensive since I had to go through 1 year of
general engineering (physics/chemistry/project management) 1 year of
electrical engineering and 2 years of computer engineering.

 __For the record, I don 't think you need to have gone to university to be an
engineer. That was just my motivation for segregating its definition as much
as I could.

~~~
chuhnk
I work in the tech industry. In the tech industry, titles are absolutely
bullshit. We have varying descriptions from developer all the way up to rock
star ninja wizard to describe the exact same thing, someone who gets shit
done. At large tech companies titles are fixed based on level, they are fairly
simple and generic, it's a good thing. {Junior, Senior, Staff} Software
Engineer. At startups it's a free-for-all. Full stack, architect, VP of
something something, global head of... Titles have truly become meaningless.
In reality in a startup, developer, programmer and engineer all mean exactly
the same thing. Someone who writes code, who thinks about constructing a
solution to a problem which may be on an infrastructure, a software, or a
business level, or heck probably all three.

