Programming is not the “new literacy”
If you look far enough down the road, the future looks very different from what many people think
Countless articles and opinion pieces have been pushing for the learning of programming in schools for the last years, and almost invariably the justification is that since coding is the language of the future, our children should learn it to be better prepared for what’s to come. It’s true that there is a huge demand for programmers nowadays and that it’s a growing discipline. But is that all that we’re going to be in a few decades?
Programming is an exercise in logic and rational thinking, regardless of language. It’s a way of approaching problems and formulate solutions, it’s not just writing code in a programming language (that specific component of programming is appropriately called coding). Programming and computer science skills, in general, are a valuable thing to know, so it may be useful to teach it to children. But I don’t think that they’re all going to be programmers in the future, or necessarily benefit a lot from knowing computer science if they opt for other professions. I believe in a different future.
The Lego analogy
To better explain my point of view, indulge me in a small analogy. Imagine programming as a Lego construction: you’re given a few basic pieces with which you can build whatever you want, as long as you know what pieces are at your disposal and how to properly put them together. The truly good programmers are those that not only finish a project according to the specifications, but do so with an incredible attention to detail, making sure that they use the least amount of pieces possible, the overall structure is stable against all kinds of potential shake-ups, every single piece has a purpose, and they leave a small guide with instructions so that other developers know how to change that structure in the future.
A few decades ago, only a handful of languages existed and they were very tiresome to work with (by today’s standards, at least). When you understand that the very basics of computing involve only 0's and 1's, you can probably see how even simple instructions can be hard to translate to bits. There were a lot of things programmers needed to be mindful of at that time that we don’t need today. That changed because, as years went by, programmers made their own lives easier.
“Easier”, higher-level programming languages surfaced when performance wasn’t as paramount as before, and instructions could be made more human-friendly at the cost of processing power. Going back to the Lego analogy, imagine that in the beginning, you were only able to place one piece at a time, but now there are prefabricated blocks of Lego pieces that you can put all at once to make the construction faster and more straight-forward. Some pieces attached to that block may be a little bit unnecessary in some situations, or the presence of the block may make it harder to “read” each individual Lego piece, but it significantly helps the humans who are building it. Programming became easier thanks to the work of ingenious programmers.
How far we’ve come
And what is the ultimate goal of a programmer, if not exactly that: to automate their own job? To make everyone’s jobs easier? We’re seeing some of that nowadays in web design especially. “Drag & drop” solutions are allowing people who don’t know how to code to build beautiful, smooth, personalised websites. That always comes at the cost of performance, but we can be more lenient about that nowadays due to the ever-increasing processing power of computers and smartphones. Just a few years ago, Wix websites were a mess of lag and buffering times; but now they’re almost indistinguishable from any other website regarding speed, design, and responsiveness.
Platforms like Wix exist in many other industries, not just websites. Need a new mobile app? Drag and drop the elements you want. A new game? You can use pre-built assets and mathematical logic to build your own experience. I think that this trend will continue even further in the future and will eventually be true for all industries. Maybe someday even government healthcare platforms may be built this way at a fraction of today’s costs.
A bright programming democracy
Programming will be democratised when anyone, regardless of experience, can build whatever they want from scratch on their own. That’s a good thing. When we as a society reach a point where anyone can create any digital solution, then it’ll be much easier for you to start your own business or build a world-changing app, as long as you have the motivation. If you have good ideas and creativity, you won’t depend on anyone else.
And when that happens, programming — especially coding — will be much less needed. It will still be requested, of course— after all, even “ancient” languages such as Assembly still have their role in today’s world — , just not in the same volume. And even further in the future, when AI is able to do our every bidding, programming will become even less needed. We will have reached true full automation. Then, only the most human of talents will be worth pursuing: creativity.