"Coding... is a process of telling the computer what calculations to perform and when."Mian Shahzad Raza/Pixabay

In recent years, the rise of Silicon Valley and the growing ubiquity of digital technology have elevated coding to the forefront of public consciousness. Previously considered the bastion of speckled teenage boys huddled over glowing screens in the early hours of the morning, learning to code (or at least paying lip service to the notion) is now almost de rigeur. Even celebrities such as Karlie Kloss and will.i.am have taken the plunge. But coding is still not widely taught in schools, and few of us actually take the liberty of teaching ourselves.

Should we be worried about this? I say not.

Here’s the thing about coding – it’s hard. Sure, most people could make a basic chatbot or print out the numbers from one to a hundred given a subscription to Codecademy and enough spare time (although it has been suggested that many find it difficult to achieve even this basic level of competence). But this level of skill is trivial in the grand scheme of things. Knowing a “little bit” of programming is redundant because anything simple enough to be created with that “little bit” of knowledge has probably already been implemented (better) by other people. Classic beginner programming projects often take the form of basic programs, such as replica Tic-Tac-Toe games or to-do list apps. Although fun to make, they are neither novel nor practical.

At its simplest, a modern computer is nothing more than a very, very powerful calculator. Coding, therefore, is a process of telling the computer what calculations to perform and when. It follows that coding is most useful when one can characterise a real-world situation as a mathematical problem, which the computer can then solve quickly and accurately.

"Getting to a point where your skills are useful will probably require an inordinate amount of time and energy."

Hence, to really harness the power of code, one has to get to grips with the underlying maths. Topics such as set theory, graph theory, and logic are all indispensable weapons in a seasoned programmer’s arsenal. If this all seems like some inscrutable dark art, that’s because it kind of is. Most people, including those who did Maths at A-level, will never have encountered these concepts, much less mastered them. Although they give rise to myriad and powerful applications, they are not always easy to pick up. Indeed, one oft-cited survey of computer science academics indicated that 77% of them disagreed with the proposition that “Nearly everyone is capable of succeeding in the computer science curriculum if they work at it”.

Even if you are lucky enough to have an aptitude for this sort of thing, that doesn’t necessarily mean you should learn to code. Much like any other skill, coding takes time to get good at. Most accomplished programmers have a strong mathematical or scientific foundation and have often spent countless hours honing their coding skills by working on a multitude of different hacks and side-projects.

If you hail from a non-STEM field, you are likely to lack this background. Getting to a point where your skills are useful will probably require an inordinate amount of time and energy. And it’s unlikely that this investment will yield any material benefit – it’s difficult to imagine how programming knowledge would help a historian, a journalist, or a lawyer. What coding needs these people do have are usually outsourced to dedicated professionals who can inevitably do a quicker and better job.

"Knowing how to code also doesn’t make you better at using technology."

Pro-coding advocates do concede that, for a lot of people, programming has no direct use. However, many mistakenly argue that learning to code is worth it merely for the “peripheral” benefits that it offers. Two such benefits that are often cited are: a) that coding teaches you “how to think”, and b) that it enables you to better use technology. Both these notions are misguided.

It is true that learning to code can encourage you to think critically and logically. Computers are famously unforgiving and take every instruction literally. Seemingly trivial oversights, such as omitting a semi-colon from the end of a line, can spell catastrophe. In 1962, for example, NASA’s Mariner 1 probe was forced to self-destruct just minutes after launch. The theory is that this was the fault of a missing hyphen in the rocket’s code, which caused it to veer off-course.

An Atlas-Agena 5 carrying the Mariner 1 spacecraft lifting off from Cape KennedyNASA/Flickr

Programmers are therefore forced to frame their code in very precise terms, with a premium placed on attention to detail. But coding is not the only way to foster this mindset. Indeed, maths, which everyone in the UK learns to at least GCSE level, teaches very similar lessons – if you misapply a rule at the start of your solution or make a mistake in an intermediate calculation, your final answer will probably be wrong. In fact, since maths and science are already taught quite extensively at school, one would expect most people to have already developed the attention to detail and logical aptitude required to be successful at coding. Anecdotal evidence, however, suggests this may not be the case and indicates these traits might be at least partly innate.


Mountain View

The regulation of AI in a post-Brexit world

Knowing how to code also doesn’t make you better at using technology. My mother is a professional software engineer with 40 years of experience. I can nevertheless report that she has the same difficulties connecting to Wi-Fi and making WhatsApp calls as the rest of her stereotypically technophobic generation. Making software is, clearly, not the same as using it. I personally spent a decent chunk of my teenage years beholden to the cult of coding, learning the ins and outs of for-loops, syntax errors, priority queues, and SQL queries. How much of that knowledge do I draw upon in my code-free life nowadays? Not a jot. No one claims that you need a detailed knowledge of mechanical engineering to drive a car – it would be equally absurd to suggest that knowing how to code is necessary to reap the benefits of computers and smartphones.

That being said, it’s perfectly acceptable to code simply for the fun of it, and if you are in a STEM discipline, you will likely have ample reason to learn anyway. But if, like most of us, you are a stranger to the hard sciences, there is no inherent reason to succumb to the pro-coding rhetoric that is all too prevalent nowadays. Indeed, Silicon Valley may well have its own reasons for encouraging everyone to code. That doesn’t mean we should oblige.