Technology comes in all shapes and sizes – from small yet important devices such as smartphones and laptops that most of us use daily, to innovations such as Artificial Intelligence. It has opened up a myriad of opportunities for businesses, industries, and even civilizations to reach new heights. Behind every modern technological device or innovation lies a computer program – the way that we, as humans, communicate with a computer to tell it what to do.
Given our reliance on technology, it seems intuitive for everyone to have the ability to program a computer – in other words, to learn to code. Learning to code seems to be a skill that governments and technological companies are advocating for everyone to have. For instance, in Singapore, the government has introduced compulsory programming classes for upper primary school students from 2020. As an Information Systems undergraduate, I have the opportunity to code on a regular basis for my classes. However, having gone through countless hours of coding, not just for school, but for the industry, I think the notion that “everyone should learn to code” is overhyped and overrated.
I do concede that learning to code allows individuals to communicate with their devices on a deeper level – not just through an attractive interface on an application, but directly with the computer, which is the heart of technology itself. By learning to code, one not only has more autonomy over their devices, but also has the potential to explore and discover new innovations that could solve existing problems.
Learning to code also allows an individual to pick up helpful problem-solving skills. As an advocate of the notion that everyone should know how to code, the late Steve Jobs himself mentioned that everyone should learn to code as “it teaches you how to think”. Coding generally involves coming up with an algorithm (which in layman terms, is simply a sequence of steps in order to complete a task) to solve a problem. Coming up with these solutions generally requires one to think logically and analytically – to break down a problem, identify patterns and possibly come up with an innovative solution to the problem itself. Learning to code does expose you to different thought processes and unconventional ways of framing a problem, which are concepts that could be applied to other areas such as consulting, finance or even the social sciences.
With a plethora of benefits that seem to be available to us, shouldn’t we all learn to code?
In my opinion, it is not as easy as it seems. Personally, coding is something that I have spent a lot of time on. Yet, I always feel as though there are still a lot more things about programming and technology which I still have not learnt. Much like any other skill, such as learning a language, or learning to draw, coding requires a significant amount of time and effort just to be somewhat decent at it. However, the difference between learning to code compared to skills that everyone should learn, such as language, mathematics and science, is the frequency and applicability of the skills learnt. For instance, language is something we use daily – it allows us to communicate with others in a coherent and precise manner. Similarly, we use mathematics every day for different tasks – such as calculating the amount of time we need, or the amount of money we need to pay for items. Science gives us general knowledge about the world – knowledge that is not just limited to technology, but about nature and the environment around us.
However, learning to program is firstly, not a necessity, and we do not use it every day (in fact, most of us spend an entire day without looking at a single line of code). Most of us do not even need to know how the code works. Secondly, the nature of learning to program itself is extremely dynamic – what you learn about programming may not be relevant even a few years later. In the world that we live in, there is a plethora of programming languages, each with their own unique syntax (much like grammar in conventional languages) and functions. Every few years, programming languages are either being created, becoming obsolete, or becoming more popular. Unlike conventional languages, there are significantly less consistencies – which means that even if you have learned to code and have become proficient at it (which itself takes a significant amount of time), it will also take a significant amount of time to unlearn and relearn how to code based on what is being used in the industry at the time. Thirdly, problem-solving skills are not only exclusive to the area of programming. In fact, we can learn to think logically and analytically through other areas of our lives, such as through mathematics, observing how people think, and other interactions that we could have in the environment.
If I were to be more cynical, the majority of advocates who are pushing for everyone to code are technology companies – naturally, they would want the best people to work for them, and by having everyone learn to code, the pool of programming talent that they get to choose from would naturally be wider too. However, as mentioned earlier, being proficient at coding requires a significant amount of time and effort – something that these companies would not mention to the general public. Furthermore, these companies have exaggerated the significance and relevance of programming. As stated previously, most of us do not really need to know how a computer program works in order to use the technology that we utilise every day.
All in all, I’m not trying to stop you from learning to code. However, if you feel pressured to code because you heard that everyone should be doing it, or you believe that you must learn it to survive, I am here to reassure you that you don’t have to. Coding is not for everyone, and it is ultimately better for you to invest your time in something you are truly passionate about.