

The Difference Between A Developer, A Programmer And A Computer Scientist - sayemm
http://www.skorks.com/2010/03/the-difference-between-a-developer-a-programmer-and-a-computer-scientist/

======
shaggyfrog
This reads like a load of pop-IT-psychology nonsense. Take a few terms and
adapt them to whatever preconceived notions you have, and whammo, there's your
thesis statement.

I've had the job titles "Software Engineer", "Software Developer" and
"Computer Scientist" but I was basically doing the same job each time. A job
title doesn't cause a fundamental change in behaviour or capabilities. If it
does, then you have a whole other major problem.

FWIW, I always refer to myself as a "programmer" socially as it seems to be
the simplest form for people to understand.

~~~
joebadmo
I think you're misunderstanding the author's intention. He's not trying to
describe how the terms are used, he's trying to classify what he sees as more
or less distinct disciplines of the field.

He's also not trying to classify types of jobs, but types of people, and how
the different types think. I don't know if he's totally right, but it seems
like a valuable enough line of inquiry to me, both to better understand who
you are and what kind of role is best suited to you, and to understand others
in the field and what roles they are best suited to.

~~~
mattlong
But how he assigns the three titles is almost entirely arbitrary. He might as
well just call them Type 1, 2, and 3 programmers instead of trying to
artificially force distinctions between developer, programmer, and computer
scientist.

------
elbenshira
Alan writes useful things, but this is pretty much meaningless. He says so
himself: "Developer are programmers to a greater or lesser extent. Computer
scientists are programmers to a greater or lesser extent."

Why put ourselves into different camps? Why can't I write poetical Rails code
during the day and read the latest research papers on type theory at night?
Placing ourselves in these artificial camps hinders us from exploring new
places and ideas. This is why I'm tempted to call myself an _artist_ or
_inventor_ (though to much ridicule) instead of a programmer or developer or
computer scientist.

------
cubicle67
I'd always classified a Programmer as someone who writes code to someone
else's spec, and a Developer codes to their own spec

A Programmer is a specific role - write code to do exactly this. A Developer
has a broader role - they're often also heavily involved with the BA side of
things, overall architecture and DB design.

Developers tend to exist in smaller companies, and are replaced by more
specific titles an the company grows. A startup may have a handful of
Developers, whereas a larger company will have a team of BAs, a team of DBAs,
another team of Architects and sometimes multiple teams of Programmers. In
large companies like this, Programmer sits almost at the bottom of the IT food
chain, just above Helpdesk

I don't think I've ever met a Computer Scientist

~~~
rickmb
I think this is the most common definition.

Largely because it is self-enforcing: most "Developers" don't like to refer to
themselves as merely "Programmers", because programming is only a subset of
what they actually do. People who just code have no problem referring to
themselves as "Programmers".

You also see this reflected in the way companies communicate: companies for
whom the people writing code are at the bottom of the food chain will commonly
refer to them as "Programmers".

Basically, the term "Programmer" has over time become the IT-equivalent of
"grunt".

~~~
buyx
In South Africa, the terms "junior developer", "developer" and "senior
developer" are used in job ads/specs. I haven't seen the word "programmer" for
a while here. Maybe here it's people who work with older technology
(mainframes etc) who are called programmers, and people who work with modern
technology are called developers.

Overall, I think this is a pointless discussion that gets resurrected by blog
writers (or are they "authors") periodically, and doesn't add much to the
field.

------
mquander
That's easy. A "computer scientist" is a tenured professor^W^Wsomeone who does
research in computer science. A "programmer" is someone who writes code for a
living. A "developer" or "software engineer" is a programmer who likes
business-y titles.

~~~
tensor
There are industry "computer scientists." Your definition should simply be
"someone who does research in computer science."

~~~
mquander
OK, I agree.

------
Jach
Computer Scientist: A computer scientist is as much a mathematician as they
are a technologist

Programmer: A good breadth of algorithmic knowledge is imperative

Developer: They are consummate generalists without any truly deep
specializations

Since those are bolded I assume the author means those as the defining
characteristics of each group. Yet I see all of those in myself. Depending on
the project, some aspects stand out more than others, and some styles
(throwing together, designing, refactoring) stand out more than others as
well.

I'll just nod my head to the other commenters who don't find this article very
useful.

~~~
jlees
Agreed. I have a background in mathematics and formal computer science, and a
great grounding and feel for algorithms, yet I work as a product manager and
hack on stuff in my own time; in fact, I think "hacker" was completely
overlooked in this list.

------
crander
Is it me or do the pictures portray a vastly different level of social
prospects for each of these categories?

------
mikle
I really love the distinction that a programmer programs, writing code and
making executables, while a developer builds a product, and a software
developer builds a product made out of code.

Programs and products are two different thing in this metaphor. A program is
just something a machine can read while a product is something a human can
use.

------
pilgrim689
Some people prefer math over code. Some people prefer code over math. Some
people are not specialized in either but are good at other stuff.

News at 11.

------
Apocryphon
I think the only way for this to not be meaningless is to have some sort of
industry standard, along with accreditation programs and so on.

------
arctangent
I don't think this article helps us much at all, although I am sure it was
written with good intentions.

I personally don't think of a "computer scientist" as being the kind of person
who writes very much code at all. Their main concern is with the mathematical
properties of various (potentially theoretical) methods and algorithms of
computation. This thinking trickles down over time into language design and
(very) occasionally into some new whiz-bang algorithm for doing stuff really
fast.

A "programmer" (to me) is someone who writes code for a living. They may not
know too much about data structures and the like, but maybe they don't need
too if they're using a modern language that makes that kind of thing easy. I
don't really know what the difference between a "programmer" and a "developer"
is, but my job title has "developer" in it and I spend all day programming so
I'm probably allowed to be plenty confused about that :-)

------
PaulHoule
Computer scientists get ahead in their careers by writing papers, not by
writing software; they often prove things mathematically, but they're not
particularly good at writing software that actually works.

For instance, I once got a C program from one of the machine learning
masterminds of our time which crashed in the static initializer on 32 bit
machines because it allocated a 4GB array that it never used. If you get some
software from an academic research group there's a high probability that it
won't build or won't run.

"Programmers" and "Developers" both write software for a living and I don't
think it's worthwhile making a distinction. Lately I've been using "Web
Developer" as a title for myself that more like a "Real Estate Developer" than
a "Software Developer" but I'm afraid this is a non standard usage.

------
TY
.. and then there are CPC - CopyPaste Coders, who glue snippets of code found
on the web into an incoherent mess that gets some narrow job done.

Some of these graduate to Developers, the ones who don't and want to stay in
the industry become BigCo Managers...

~~~
meric
My dad is a CPC on the side; He's actually an accountant. One day I caught him
programming Excel macros. His office has this spare computer which just runs
macros all day long to automate downloading tens of millions of rows of
database data from the company oracle database into thousands of Excel
spreadsheet files.

He asked me if its possible to improve his system and I said I didn't know
where to start.

I was quite surprised indeed, the things office workers can come up with ;).

------
woodall
Why can't I just like computers?

------
jc123
Is the "hacker" categorization missing?

------
SeoxyS
Computer Scientist: busy writing the next AES or Bitcoin.

Programmer: writing software code on a spec.

Developer: building the next Facebook.

