The Programmer Peculiarity

Most people cannot construct a building or write a book, yet, it seems like everybody can program. Isn’t that peculiar?

I just read a ZEIT special magazine about whether today’s job market requires everybody to be able to program. While the message was that not everybody needs to be a programmer (but should have a basic understanding of how programming works), various articles mentioned that one could simply learn programming through YouTube videos, if necessary. Piece of cake!

Only yesterday, a 3rd-year Bachelors student, when challenged about the lack of quality of his code, defended himself by proclaiming that he’s got 10 years of experience, that he’s always done it like this, and that everybody else does it the same way.1 It’s a pity how little some people learn in a decade. Maybe he should’ve checked some of those YouTube videos…

Am I the only one who thinks something’s off here?

It is indeed much easier to get into programming than it is to get into constructing buildings. While construction has a large upfront cost (material, machines, …) and buildings may collapse around people, programming comes pretty much free of such constraints. Most of us have a computer at home anyways, so it’s fairly easy to set up a programming environment and to get started. And if we do mistakes in this environment, little-to-no harm is done. That makes programming accessible. That’s good.

But coding your first “Hello World” is much like writing your first letters in elementary school. You’ve bought your pen and paper (or, most likely, your parents bought them for you), you’ve learned some way to hold the pen, and you’ve managed to place the right end of it on the paper. Success. Congratulations. That was an important step. But it makes you as little a writer as your “Hello World” makes you a programmer.

There’s a long road from writing your first letters to writing a multi-page essay or even a book. You have to learn about various things, such as grammar, structuring, tensions curves, or character building. Many of which are quite unrelated to the fundamental ability of writing, but quite necessary to become a writer.

When I was about 10 years old, I wanted to write a book. I had a great story in mind, a lot of imagination at hand, and went at it frantically. I produced a few chapters. Then I rewrote them. Then I rewrote them again… and again… until I realized that I’d taken on a difficult job. There was a huge difference between what I’ve been reading and what I’ve been writing.2 I didn’t have the necessary skills to produce the quality I desired and I lacked the patience to learn and train my abilities, so I eventually abandoned my career as a writer.

While most of us practice writing in school under supervision of teachers, only few of us ever become writers. Contrarily, to many people, everyone who can write a few lines of code is a programmer. Worse, many people who can write a few lines of code think of themselves as programmers!

When I entered university, roughly 7 years after my “Hello World,” I was convinced I could program. Reading a lot of code from others and writing a lot of code myself gave me perspective. Today, 10 years later, I would say that what I could do is type code into an editor and make it execute. But I was only beginning to learn how to compose a significant program of maintainable quality. I was only beginning to become a programmer.

Now, I’m not saying that programming is an art for the especially gifted. I learned it. Many others did. I actually believe that most people can. And it most certainly doesn’t generally take 17 years. But it is a journey that takes time. And you will not get there over the weekend by watching a few YouTube videos. That cake is a lie.

  1. When someone questions something you did, arguing that everybody does it like you is just stupid. Apparently, whoever questioned your actions would do it differently. He’s part of everybody. 

  2. And be assured that what I was reading at that age wasn’t exactly all high literature ;) 

Categories:

Updated: