
The Difference Between Programmers and Coders (2013) - Rumudiez
http://workfunc.com/differences-between-programmers-and-coders/
======
longtimeranon
With the media coverage of code.org, Leo the Homeless Coder, and the code
schools and bootcamps springing up everywhere, the message the general public
is getting is that whatever "coding" is and whatever "coders" do doesn't
really take a whole lot of skill or effort. If anyone can apparently do it
with a few weeks of training, why should they be paid $80-100+k?

Either coders=programmers and we should expect increasing competition and
decreasing wages, or self-described programmers need to somehow distinguish
themselves from the unskilled "coder" masses.

Yet in these very comments, every response I've seen is essentially endorsing
the "coding is easy and anyone can do it" message.

It's strange to see so many otherwise intelligent people advocating for their
own marginalization. Doctors would never say things like "everyone should
learn medicine" or "anyone can be a doctor." Instead they erect barriers to
entry to eliminate competition and force you to pay for their services,
driving up the cost of health care, and the stupid general public loves them
for it.

What is wrong with programmers? Are we simply too egalitarian for our own
good?

~~~
zedshaw
No, this isn't really the case. What I see, as the guy who wrote the book that
tells people that learning to code is _hard_ but _possible_ , what people are
realizing is that programming is hard, but possible.

Programmers are simply confusing the fact that people are attempting to learn
it and succeeding in greater numbers than before with the idea that all these
new entrants all think it's easy. The truth is I see them all say it's damn
hard, but if they put the work in they can learn it.

Another thing they realize after getting through my book is just how long
it'll take to get good. They don't take what they've learned lightly, and they
don't think it was trivial to learn. What this ends up doing is giving
everyone who attempted it a healthy dose of respect for what we do.

I'm a coder. I've been a coder a huge chunk of my life. This attempt to label
"coder" as some kind of idiot is really pissing me off, especially when I see
it coming from programmers who don't realize that more people learning an
introduction to code means more people will appreciate and understand what
they do.

Now, the site is down so I haven't read the article, so take my comment as
only replying to what you said, not the article.

~~~
longtimeranon
> I'm a coder. I've been a coder a huge chunk of my life. This attempt to
> label "coder" as some kind of idiot is really pissing me off,

If you want to call yourself a coder, fine. However, there is still a
difference between Linus Torvalds and someone who, for example, has at most
hacked a few things together in JavaScript, and I think the terminology should
reflect that in more ways than just "beginner" and "expert."

I also think calling ourselves "coders" and calling what we do "coding" isn't
going to gain us the respect or prestige that terms like "software developer"
or even "programmer" would. If you're happy being called a "coder," in the
sense of "Zed Shaw is a great coder," that's fine, but personally, I'm not.

> Now, the site is down so I haven't read the article

It was down for me too. I was responding to the comments that seemed to take
great offense at the apparently horrible, elitist idea that maybe, just maybe,
it might be worthwhile to have a term that distinguishes professional
developers from people who've done some exercises on code.org.

------
jamestomasino
The difference is a matter of arbitrary semantics. The quote in the beginning
is nothing more than a setup of an argument from authority
([http://en.wikipedia.org/wiki/Argument_from_authority](http://en.wikipedia.org/wiki/Argument_from_authority)).

The only takeaway of value is that, yes, there can be a functional difference
between designing logic and implementing it. This in no way means you can only
do one or the other, or that any specific job or title dictates that you'll do
one or the other.

This might as well have been titled, "The difference between a senior
developer and a junior one."

------
m_mueller
In German we use a different terminology for the whole field. It's called
'Informatik', as in the science of processing information. The people doing
this are thus called 'Informatiker'. This alone helps, I feel, in making
people understand that there is some degree of formal training behind it, that
'Informatiker' aren't just code monkeys. Granted, many still use the term
Software Engineer today, simply because Engineer degrees have a higher entry
barrier and thus have a better sound to them (you can get 'Informatiker'
degrees without a higher education by doing an 3-4y apprenticeship at 16, a
very common way of how education works in Germany and Switzerland).

In any case I think that the English speaking CS pioneers have failed to coin
a good term for their field - CS just isn't right, especially regarding the
English definition of 'Science'. It also leaves non-CS-degree holders who
practice this job in a sort of vacuum about what to call themselves.

~~~
ggchappell
> ... I think that the English speaking CS pioneers have failed to coin a good
> term for their field - CS just isn't right, especially regarding the English
> definition of 'Science'.

Definitely. And even the "Computer" part causes confusion. I'm a C.S.
professor. The man on the street thinks I teach people to use MS Word. Alas,
so do many textbook publisher reps, along with the occasional prospective
student.

------
umsm
I believe the author merged the responsibilities of a "programmer" with an
"Technical architect". To become a good programmer, all you need to do is
enjoy reading books, enjoy coding, and work at a moderately sized company.

An architect is different. You have to understand the picture as a whole. You
have to understand that one stupid decision can affect the entire product or
company's future.

Hurrying to implement excellent code (as a programmer) won't could cost the
company many weeks or months or effort to redo.

~~~
Rumudiez
I like this distinction, because to me almost every coder is a programmer, but
there are still more theoretical positions such as technical architects who
don't necessarily even touch the code.

------
dschiptsov
Oh, come on.) btw, the first chapter of The Programmers Stone explained almost
everything about two decades(?) ago.

All this could be summarized in one sentence: Programmer is a writer, like
Orhan Pamuk, coder is a translator from Turkish.

Or, according to the classic - programmers are "mappers", they are inveting
abstractions. Coders are "packers", they are writing piles of Java classes for
a paycheck.

Even simpler. Coders are Georges. (Those who have seen SICP lectures would
understand instantly).

Update: my two cents to what it is to be a writer.

Look, there are a standard qwerty keyboard in front of you. All required
symbols (letters and digits) are here. You know the rules how to compose them
into words of English, and how to chain words info sentences. So, go ahead,
open a notepad, or even Emacs, and write, say, 1984. It will be much better
than any silly startup, you don't have "to Java", you need no AWS and Docker,
you don't have to hide the fact that you cannot grasp Design Patters, etc.

All you need is in front of you, all the knowledge is available since
secondary school. You could even apply some agile practices.

It also could be that you are esthetically sophisticated person, so you may
would like to use a fountain pen and paper, or a pencil and a notebook - just
go ahead. We are not asking about poetry or, god forbid, classic music
composition, which is even closer to what programming is.

~~~
btilly
I remember The Programmer's Stone.

It fell into that dubious genre of essays that draws a false dichotomy that
there is no particular reason to believe is real, then puts all of the
positive characteristics on one side, so that readers have a new label to
apply to themselves so that they feel good, and a corresponding label to apply
to everyone they don't like.

I wasn't impressed by that addition to the genre at the time, and I've seen
nothing since to make me think that I should have been.

~~~
dschiptsov
I think that you somehow did an analysis of writing style instead of the
meaning. The distinction is quite simple, some people are interested in how
things work and why, others just use them (usually in a wrong way). I suggest
you to read Zen and Art of Motorcycle Maintenance, it is about exactly the
same segregation, but in a much more poetical wording. And then at least a
half of Atlas Shrugged, to complete enlightenment.)

~~~
btilly
_The distinction is quite simple, some people are interested in how things
work and why, others just use them (usually in a wrong way)._

If you truly believe that, and believe that people can be so divided, then I
suggest that you read
[https://plus.google.com/+JeanBaptisteQueru/posts/dfydM2Cnepe](https://plus.google.com/+JeanBaptisteQueru/posts/dfydM2Cnepe)
and discover that for all you think you understand about how things work and
why, there are things you just use.

Indeed I can give you dozens of examples of important things that impact your
life, ranging from the reason why fertilizer makes good high explosives to how
airplane wings work, and you'll find that for all that you pat yourself on the
back for being such an intelligent and curious person, you're far more someone
who just uses that which you find around you than someone who understands your
world.

If you can accept that, then you might get beyond your naive belief that you
bring enlightenment that I have failed to grasp, and you may come to see why I
think that the purported distinction is BS.

After that, you might realize why I became curious about how a theory that is
so obviously BS would appeal to otherwise intelligent people. And then you
might find my theory about it to be enlightening.

~~~
benbot
As a polymath, your linked post was hardly enlightening.

Additionally, the repeated line "no single company can deal with that entire
complexity" is misleading. I can provide examples of companies that deal
extensively with most if not all aspects of each individual layer presented.

The truth, though, is that thinking about all the layers together can and
likely will make most people dizzy. As for companies? I would propose that a
hypothetical company, let's name them "IBM" for convenience, could
theoretically deal with each and every layer presented, and I'd estimate they
could do so successfully for 50 years or more.

~~~
btilly
My point in the linked post was to show for one common technology how no
individual person can really understand it. At some point we have to switch
from understanding to just using.

That said, there is no company that does deal with each layer in all
complexity. Even IBM outsources. But the reason does not have to do with it
being too complex as much as too standardized.

The economic theory of the firm says that firms divide when the internal
stupidity of a large firm exceeds transaction costs between several. But as an
area standardizes, stupidity remains unchanged and transaction costs reduce -
meaning that you get more smaller firms. There is an excellent chart that I
think I saw in _The Innovator 's Solution_ which shows the resulting
fragmentation of the semi-conductor industry over the decades.

------
spacehome
The difference is hubris.

------
vertis
I would consider most of the points as the difference between a senior
"Programmer" and a junior "Programmer" rather than "Coder".

------
yawz
Potato - Potahto.

------
jedmeyers
It's from the same side of the argument as the "Software Engineer is not
really an Engineer" phrase.

------
vellum
Google cache text version: [http://bit.ly/1gZj3kQ](http://bit.ly/1gZj3kQ)

------
ericHosick
I think it is important to distinguish between the two.

It is possible to program a computer without coding. Currently, the tools to
do this are very domain specific.

I think, in the future, there will be domain agnostic development tools that
will let people program software without the need to write code.

~~~
chrismcb
coding is a synonym for programming. No need to distinguish the two. If you
can program you can code, if you can code you can program. Talking about
software design or architecture is something different.

~~~
ericHosick
> If you can program you can code, if you can code you can program.

If you consider people who use scratch
([http://scratch.mit.edu/](http://scratch.mit.edu/)) as coders, then I would
agree with you.

But, to me, it doesn't look like they are coding. It looks like programming
using something other than coding.

------
CmonDev
It's good for us, developers, to know the difference between you :).

------
gdiocarez
Hmm, The site takes too long to load.

