BY DAVID MARINO
In a recent WORST article, Paul Bucci compared coding to the emergence of literacy in the 1930s. He joined a chorus of people who claim that learning to code is the only way to stay afloat in a world that is increasingly built from code. Well, I’m here to disagree.
You don’t need to learn how to code to be a good journalist. Or to be a good teacher. Or to be a Twenty-first Century Everyman.
Please see the title of this post for further elaboration.
Computers are ubiquitous, so it’s only natural to assume that everyone needs to learn how to engage with them deeply. And yes, everyone needs to know how to communicate with a computer in some way or another. Computers shouldn’t be black boxes to us; people should understand how they work. But that doesn’t mean we need to learn how to code.
Let’s imagine for a second that you did need to know how to code. Given how much time and effort it takes to learn, it should be for one of these two reasons:
1. If knowing how to code gives you a tremendous competitive advantage in your field.
2. If everyone else learns how to code, rendering you an incompetent mess.
Let’s look at both of those conditions more closely.
Condition 1: Coding always makes you better at your job
The first condition under which we might conceivably say that coding has “taken over the world” is if it gives people a tremendous competitive advantage, regardless of what field they’re in. But that simply isn’t true. A non-coder can be just as efficient as a coder with the right programs.
This becomes clearer when we think about exactly what coding knowledge lets us do. It lets us instruct a computer to do something. But coding isn’t the only way to do that.
Many programs allow people with no coding knowledge to instruct a computer. Programmers build architecture that offsets the amount of knowledge needed to operate a computer, and by doing so they enable more people to use computers.
In many ways, good programming has actually made learning how to code less necessary for the everyday person, rather than more.
Let’s say you’re a high school teacher who wants to batch process some files. One method is to write a simple script. However, this isn’t the only way. You could also use a workflow optimization program, like Automator, to get the job done.
“But wait!” you may say. “Knowing code still gives you an edge: if you don’t, then you’re limited by the functionality of the programs you use.” This is true; one of the main benefits of knowing code is the ability to design machines that can solve arbitrary problems. But will this ability give you an insurmountable advantage over a peer? So much so that if you were applying to be a (high school teacher/lawyer/sales manager), your coding competitor would be an obviously better hire?
The kinds of operations you need to do in many jobs are finite. This means that it’s not too difficult for a program’s functionality to keep up with your work demands, even when the way you work changes.
Take photographers. A photographer’s everyday operations (anything from batch processing to procedurally generating images) can be handled by programs like Photoshop or a plugin. The photography industry has changed drastically over the past twenty years, but programs have kept up with this change, because the problems and data that a photographer handles at any given point in time haven’t changed.
Labour and knowledge aren’t necessarily the same thing. Many jobs require an understanding of tools, but not implementational understanding. A real-estate agent can sell a house without knowing how it’s built. Similarly, a journalist can post an article on WordPress without knowing how it’s implemented.
I believe this analogy holds true for our software tools. It’s hard to just “learn how to code.” It takes years of dedication and practice. That’s a significant amount of time and energy that could be spent towards bettering your craft. It’s more economical to invest in a few people who are good at coding than to demand that everyone in the company learn it.
Condition 2: Everyone else knows how to code
The second condition under which we might say that coding has truly “taken over the world” is if everyone suddenly learned how to code. In this scenario, all programs would be designed with this assumption, and you would need at least some scripting knowledge to competently interact with your software.
This scenario might come about if Condition 1 (where the ability to code gives you a massive advantage in the workplace) is fulfilled, or if someone started a serious top-down effort to teach everyone to code, led perhaps by the increasingly popular notion that code literacy is as important as language literacy.
The problem with this is that advantages of code literacy aren’t comparable to the advantages of language literacy. Knowing how to read and write means that you can remotely transmit your thoughts into other people’s brains. Knowing how to code means that you know one method (out of many) to instruct a computer.
It’s important to remember that the explosion of literacy in the 1930s was also accompanied by widespread access to education. The advantages accrued by people who knew how to read in the 1930s were orders of magnitude greater than the ones enjoyed by code-literate people today.
Knowing a programming language, thought useful, is not a life skill. It can teach you life skills like problem solving or abstraction, but so can other subjects, like math and English. A life skill is something you need in order to function in everyday life. Managing your finances is a life skill, reading is a life skill—heck, using a computer is a life skill. Knowing how to make a sweet Chrome extension, while useful, isn’t a life skill.
I’m not saying that learning code is in any way a bad thing. It’s incredibly empowering, and can be applied in any field. There are also occupations where knowing how to code is fast becoming a necessity. Take designers, entrepreneurs, or researchers. So should you learn to code? Of course! If you want to, do it!
But do you have to? That depends on your industry. You need to know the tools of your trade, and since computers are already everywhere, that means being able to competently engage with your computer.
You need to know how your computer works. But you don’t need to be a programmer to do so. ♦
Images via Google Cultural Institute