Tuesday, September 2, 2014

What “Coder” Means

Dave Winer:

The act of turning the English words into Morse code is coding.

That is what coder means. Someone who encodes things.

There was a time when you’d write your code on big sheets of paper, and then sit down at a machine called a keypunch, and transfer the instructions from paper to 80-column cards with holes, that machines could read. It would be fair to call this coding. But we haven’t done development that way for a very long time!

Developing software involves a lot of thinking, and trial and error, learning, experimenting, listening to users, getting feedback and trying new approaches. The coding part of it, if we still did it, which we don’t, would be a relatively insignificant part of the job.

I doubt that most people think that’s what “coder” means today. They just use it as a shorter word for “programmer.” Leslie Lamport seems to see coding as translating a (perhaps implicit) specification into code. We understand that writing is primarily thinking (or researching, etc.), not typing. So it is for people who write code rather than prose. Do people really not understand this?

A lot of managers think that programming is a menial job, and hire people accordingly. They value subservience. That’s where the word coder comes from, and why it’s so bad.

If there is a problem, I think the solution would be to educate about what coders actually do, not to come up with a fancier title. If “writer” works—and I think it does—I have no problem with “coder.” That said, I tend to describe myself as a “developer” because I do lots of non-coding/code-thinking work such as customer support, documentation, and business and server stuff.


I call myself a developer too, for similar reasons.

Another popular nomenclature problem—in the other direction—is with the title “engineer”. In my experience, a vast majority of software developers give themselves that title who certainly have no business doing so (let alone the accreditation).

@Ben People with accreditation in an engineering field see the word as having that special meaning, but it’s not clear to me that this is what most people mean, so I think the title inflation is inadvertent. If someone who operates a locomotive or splices genes is an engineer, why not someone who designs and builds software?

In Canada at least, the term “Engineer” has a protected legal meaning, and people may not simply go around calling themselves engineers unless they are professionally certified. Such engineers have moral and legal responsibilities. Moreover to the point at hand, a competent engineer is concerned about the careful and complete design of his work and the consequences of its failure.

A large amount of software development that people call “engineering” would best be called “programming” or perhaps—yes—just “coding”.

I suppose that this level of concern is not as prevalent in other parts of the world, such as the States.

@Ben Certification aside, I do agree that a lot of software isn’t coded with the level of care that I would expect from engineering. In the States, lots of people are called engineers (or even imagineers). But only some of them are “real engineers.”

Stay up-to-date by subscribing to the Comments RSS Feed for this post.

Leave a Comment