You're reading Sentences, etc., a design and development blog by Justin Michael.

Learn to Code If You Want To

Quincy Larson, in Please do learn to code, attempts to make the case that everyone should learn programming. He summarizes his primary argument quite succinctly:

Here’s why programming — unlike plumbing — is an important skill that everyone should learn: programming is how humans talk to machines.

His article goes on to explain that, now that machines are doing more and more of the work, everyone needs to learn how to talk to them so they can get work done. Instead of telling people what to do with spoken and written words we all need to be able to tell machines what to do with code.

Quincy fails to take into account two factors: the relative infancy of modern technology, and the rapidly evolving nature of it.

If you want to tell a computer or machine how to do some work right now, today, you might need to write some code, but probably not. If your task is a common one there are likely many choices of both machines and software running on them to help you do what you want to get done without knowing the first thing about programming.

Now, if you have a task that’s not common, or new, or you want it done in a particular way then yeah, you might have to write some code to get your machine to do what you want.

But that’s today. Today, programming is how humans talk to machines about these things. Today we are in the caveman era of computers. We currently have the equivalent of cave paintings and grunts to communicate with our computers.

That will not always be the case.

In the earliest days of computing people had to jump through extraordinary hoops to get their computers to do anything. They had to create hundreds of punch cards and feed them into a computer the size of a room, one at a time, in exactly the right order, to do the simplest of tasks.

Using punch cards is like drawing rough shapes and lines in the dirt and gesturing to a pile of rocks. If you’re careful, and if you gesture in exactly the right way, you might get the outcome you want.

But there are better ways. Physical switches, teletypes, assembly, interactive displays, keyboards, a whole host of different programming languages, graphical user interfaces, mice, touch screens… and who knows what’s coming? The way we talk to our machines has evolved, and is still evolving.

In the earliest days of computing the only way to talk to computers was using code. Now some people talk to computers using code, some talk to them by typing commands, some click on buttons with a mouse, and others tap on a touch screen.

As I said earlier, we’re at the cave painting level right now. As sophisticated and advanced as our various abilities to communicate with computers are these days, we’re still in early days. What we’ve got now is much better than scratching around in the dirt, but we still have a long way to go.

Today, lots of people write code, because it’s still the best way (or, in a lot of cases, the only way) to accomplish certain things. Tomorrow, hardly anyone will use programming languages, because simply talking to your computer will be easier and faster, because computers will have evolved beyond the cave painting stage.

Coding is the new literacy. Like reading was in the 12th century, writing was in the 16th century, arithmetic was in the 18th century, and driving a car was in the 20th century.

No, it isn’t. Creating and feeding punch cards into a mainframe is not something anyone in today’s world should be required to learn. Reading, writing, and arithmetic are fundamental skills. Programming is not, just like using punch cards is not, just like drawing on cave walls is not.

Millions and millions of people order their computers and machines around just fine, today, without knowing how to write even a single line of code, and it’s getting easier all the time. The dialog is getting richer every single day. It won’t be long before we don’t even think about how we’re talking to machines.

Now, don’t get me wrong: the last thing I want to do is discourage you from learning to code if that’s what you want to do. In fact, I actively encourage anyone with an interest in programming to dive in and see what comes of it, and I believe that anyone can learn to code if they set their mind to it.

But not everyone is interested. Not everyone wants to learn this skill. And that’s perfectly okay, because not everyone needs to learn how to code. That’s true today, and it’ll be especially true as time and technology move forward.

If you want to code, learn. If you don’t, that’s fine, don’t feel pressured to. You’ll be just fine either way.