

A Coder, a Programmer, a Hacker, a Developer, and a Computer Scientist - gmays
http://www.hanselman.com/blog/ACoderAProgrammerAHackerADeveloperAndAComputerScientistWalkIntoAVennDiagram.aspx

======
Morgawr
I don't really agree with the arbitrary world defined in this article, it
seems overly simplified and makes a lot of assumptions. I understand this
might be just for beginners or people who want to get a simple view of the
world but it's totally not how it works.

The "real world" is actually much simpler. A "coder" is somebody who "codes",
a "programmer" is somebody who writes "programs" (is this different from
coder? Maybe the way we perceive the word is, but deep down it really isn't).
A "hacker" is somebody who "hacks", which can mostly mean who engages in
playful cleverness[0], it needn't be software or hardware, low or high level.
A "developer" is somebody who "develops" software (this might be a step up
from a programmer because a developer is usually the creator/architect of that
software too, not just a code monkey). A Computer Scientist is somebody who
studies Computer Science, which is a branch of math, usually (but not
necessarily) with a degree.

Feel free to criticize me, this is my view of this world as opposed to the
author's view of his own world which I don't agree with.

[0] [http://stallman.org/articles/on-
hacking.html](http://stallman.org/articles/on-hacking.html)

ps: shall we add also sysadmins, IT techs, Software Engineers and Computer
Engineers in the mix?

~~~
weinzierl
I ask because English isn't my first language. Is a scientist really
considered someone who studies a field? You might have a degree, but does that
make you a scientist? I always thought a scientist usually is at least at PhD
level.

~~~
Morgawr
English isn't my first language either so I apologize if this is incorrect.

I think a scientist is somebody who applies a scientific method or, more
broadly, does research in a field. Since "Computer Science" isn't really a
science (it's closer to Math) it gets muddier, I'd assume a computer scientist
is somebody who does research in the field of computer science. That's as
"objective" as it can be in my opinion.

All in all what's important is that these fields needn't be mutually
exclusive, one can be a programmer and a computer scientist. (And the original
point of my comment was that applying arbitrary definitions to roles is way
too simplistic, the best we can do is apply those words as literal value)

------
jscott0918
I understand what the overall article is trying to present, and I agree that
there are differences between each of the labels presented.

I think that understanding each label means more about understanding the
person using the label than understanding some absolute definition of each
term. My understanding of a self-assessed hacker or coder is going to be far
different from my understanding of a person that is labelled by others as a
hacker or a coder. I think most of these labels are really interchangeable in
most circumstances and it comes down to understanding how each is being
applied rather than each having their own definition.

------
Svip
When I saw the title, I assumed it would have been followed by 'walks into a
bar'. And then the twist was that it was only one person.

~~~
jlees
...'walks into a bar. Then she walks out again.'?

------
goldenkey
They're all equal. Let's not make silly romanticism about the differences
between isotonic words.

~~~
gaius
But "coder" is a good signal that they don't know what they're talking about,
the term is only used by journalists and politicians.

~~~
jheriko
that's not true, its very popular outside of web development in general day to
day use as slang.

in my circle we probably use it much more than 'developer', which is a woolly
term that encompasses all kinds of artists, designers, producers, teams and
whole companies. although the standard term is definitely 'programmer'.

~~~
dfox
I have always seen 'coder' used for someone who essentially transforms
designers intent into HTML/CSS/JS (or other GUI code) and does not especially
care about backend code. I have seen it used with this meaning even in job
postings (mostly web development related).

~~~
jheriko
i dont have much contact with that part of the programming world (although i
work in a web dev office atm) - every time i've heard it used its to refer to
a programmer working on performance critical desktop software or AAA games...
that's the opposite end of the spectrum pretty much.

------
jheriko
> Is Markup Code?

I find this interesting - even though scott says he doesn't think its coding
in the traditional sense a lot of people do.

This is something that never comes up in my circles (web programmers aren't
'real' programmers) we all believe it is a way to encode data...

However, there is a common confusion here - code as a word is meant for the
sense of encoding data. Program code seems to have swallowed this original
meaning so a lot of programmers think of programs and instructions as being
'code' probably because its a short 4 letter word

Even though the conceptual requirements to understand HTML and CSS are far
below that for program code, they are very much still a subset of it so I
don't think its especially harmful to use the word 'code' in this way.

~~~
brudgers
HTML and CSS are each a language by which a person expresses instructions for
specific transformations of an input string into computer output. If Kernigan
and Ritchie were correct to call "Hello World" a program then HTML and CSS
would quack in the right way to be programming languages even if it were not
possible to make syntax errors or they did not require f5 to see if the latest
attempt at debugging worked.

That they are easy and forgiving, ought to make us consider them as worthy
models for our next language not as objects of scorn,

~~~
jheriko
There is quite a distinct difference imo.

One certainly could describe html and css as 'declarative' programming
languages in that sense, but I think its a pointless definition then because
all data fits that same definition - so why not just call it data?

The key thing here is about what is encoded, not what the output is. A C Hello
World program encodes a call to printf along with a data string as a piece of
executable code in the entry point of some executable format - the fact that
printf is a library function is deceptive - because the encoding of that is
important too and it describes how to interact with the OS to output text.
HTML containing "Hello World" encodes merely the string and gives you no
choice of what is done with it - nor can you interact with the OS, the
hardware or any of the surrounds without introducing more (e.g. JavaScript).

However, the fact that you edit it directly in a text editor makes it coding.
I have no disagreements with that at all... but the fact that HTML and CSS are
difficult to use data formats doesn't qualify them to be 'full' programming
languages imo.

As for scorn, I have no scorn towards HTML and CSS because of their perception
of being code. I do however have plenty due to the design and real world
implementations - not because they are 'easy', but in fact they are much
harder than they need to be due to a combination of poor design and poor
browser implementation. I can qualify that a lot, but its an article of its
own I guess... not a comment. :)

Any decent programmer should be able to design a superior alternative to HTML
and CSS imo. Its not a difficult task.

~~~
brudgers
To push the analogy further, just for the hell of it, the html:

    
    
         <p class="fancyText">Some fancy text</p>
    

does in fact transform the data without javascript [or rather it might
transform it in combination with appropriate CSS].

Pushing further: How is #include in C much different from <script></script> in
JavaScript?

I mean hello_world doesn't do anything interesting without calling `printf`
and `printf` for all we know might have been written in assembly. To put it
another way, without the various libraries, about the only interesting thing a
C program can do is crash your computer.

------
frou_dh
Notice that only Pro-Skubs are concerned with taxonomy.

------
NAFV_P
One of my definitions for _hacker_ is someone who learns coding, while
simultaneously being told by the majority of peers and relations that they are
wasting their time and should stick to what they are capable of.

------
avighnay
Hey, where should we put the 'Gurus' and the 'Ninjas'? There is one more
person, the one that is busy 'getting things done'

