

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

Working as a web developer, or web programmer, I could never answer this question. I always had to make something on the spot. I think it is the one and same thing, but maybe HN can give me a better answer.
======
jasonkester
"Computer Programmer" is a term that basically anybody will understand if you
tell them that's what you do.

"Developer", "Software Engineer", "I run a software company", etc. will often
get you a blank stare when you quote it to regular people in answer to "what
do you do for a living?". You'll have to follow up with "I program computers"
anyway, so you might as well just start with that when meeting people at a
party.

The only reason you'd ever need to pull out the actual official description of
what you do is if you were interviewing for a job (or consulting gig) with an
organization that took such things seriously. For that case, fall back on the
reasoning outlined in the excellent article "Don't call yourself a
programmer".

For the more common case where you're not trying to impress anybody (or
explicitly trying _not_ to sound impressive), and just trying to hold a
conversation with people you're probably never going to turn into clients,
it's best to simply use the quickest term they'll understand so that you can
move on to more important things.

------
xahrepap
They are the same. However, some have noticed that some terms make other
people think it's more important than others. So people say different things
based on their perception.

------
dragonwriter
As I see it:

A a person is a programmer to the extent they are competent at coding software
to given requirements.

A person is a software developer to the extent that they are competent
developing software to support an (initially, less-well-specified) business
need, programming is part of that, but so is designing architecture for
systems of separately coded, interacting components, doing the research and
customer interaction to get to business and technical requirements, testing
(not just unit testing), etc.

In practice, though, the terms (as well as "software engineer") are often used
interchangeably with different places using different terms for the same role
(which may either fit the "developer" or "programmer" description above.) Some
places _do_ make the distinction, though not always with the exact terminology
(for instance, in California State civil service, there is a _rough_
correlation between "programmer" role described above and the "Programmer"
series of classes and between "software developer" role and the
"Programmer/Analyst" and "System Software Specialist" series of
classifications.)

------
mrcold
_Programmer:_ dismissive term used by people that don't really understand
programming. You will often encounter it in industries where software is just
one of the many supports for the main product. The pay is usually low. The
people doing the hiring don't really care what you do or what your skills are.
They are just using a checklist of buzzwords and standard tests found on the
internet. The work environment is either bad or boring. And coworkers are
usually not interested in evolving professionally or personally.

 _Developer:_ term used by software people. The kind of persons that are
plugged into the tech and IT world one way or another. They usually understand
how a product is built and the efforts involved. Because of this, they are
often prepared to pay for your work and invest in your skills. The hiring
process usually involves higher level concepts and is done in a more sociable
manner. The work environment is mostly good, but overworking, missed deadline
anxiety and crisis management are often encountered. Sociable coworkers can
also increase anxiety if you're an introvert.

 _Engineer:_ proud term used by pretentious people. You will often encounter
it in companies entrenched in a specific niche. The lack of competition
usually leads to strange work ideals and preconceptions. The environment is
usually filled with politics and managerial incompetence. And although most
coworkers are introverts, everybody thinks very highly of themselves. So
clashes are common, even for minor things. The pay is average. While the
environment is great for learning and getting started, experienced people
usually leave for greener and calmer pastures.

Of course, there are exceptions. But this is what I noticed so far based on
jobs, interviews and people. Each of these titles has advantages and
disadvantages. So I don't think one is better than the other. Picking one is a
just a matter of what you currently want from your job.

~~~
singingfish
I call myself a hacker. It's like a fake it till you make it developer

------
SamReidHughes
The word "developer" can be abbreviated to "dev," which is convenient.

------
andrewchambers
Add software engineer to the list.

------
bbcbasic
Nothing

------
biomimic
Wider scope.

