top | item 8795037

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

8 points| o_s_m | 11 years ago

8 comments

order

bitwalker|11 years ago

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|11 years ago

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|11 years ago

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|11 years ago

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

yazaddaruvala|11 years ago

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.