Teaching programming in schools: Necessity or luxury?

Some refer to it as the new literacy of the 21st century and consider it essential to teach it in schools. Others, however, see it as an unnecessary luxury when many students have not yet mastered basic literacies. This post examines the pros and cons of learning programming in schools.

Teaching programming in schools: Necessity or luxury?

Many consider learning to code to be the “new literacy” or “21st century English”. The comparison has a basis in that, after all, “programming is talking to a computer. Learn their language to give them instructions and modify their behaviour” (Vico et al., 2022).

The ability to write and understand programming languages is becoming increasingly important to understand how to break through and succeed in a modern society where our lives are increasingly facilitated or constrained by the action of computer-coded devices and information systems.

In fact, in countries such as Estonia, China, Singapore, Finland and the United Kingdom, coding has become part of the national curriculum for primary school pupils in fact, in countries such as Estonia, China, Singapore, Finland and the UK, coding has become part of the national curriculum for primary school pupils. Following their example, and recognising the growing importance of programming skills, and the increasing weight of ICT-related jobs for their national economies, policymakers in many other countries are considering including programming in their curricula.

But should students learn to programme? What are the advantages of teaching programming in the classroom? Are there any drawbacks? We’ll see below.

In an article published by WISEed.review Michael Trucano, a senior ICT and education policy specialist at the World Bank, lists the advantages cited by advocates of coding in schools, as well as the counterarguments of its detractors.

  1. Teaching programming will help students acquire professional skills relevant to today’s job market. Proponents of programming claim that there are many computer-related jobs in the world. Shouldn’t our schools specifically prepare our students to compete for them? However, critics respond that these efforts are a waste of time in practice because i) they focus on developing mechanical processes that can easily be learned elsewhere; ii) they are largely concerned with skills relevant to today’s work, but not tomorrow’s; and iii) many of these initiatives are driven by the ICT sector itself (a business group that these critics view with great suspicion).
  2. Programming helps develop important logic and problem-solving skills. Few would counter that, when taught well, programming education helps develop important logical thinking and problem-solving skills. However, critics argue that programming courses do not have a monopoly on the development of such skills and that, in fact, they should be integrated across the curriculum and not be the focus of a single subject.
  3. Understanding programming helps students better understand the nature of the world around them, and how and why it works as it does. While few would disagree with this argument, many critics do not attach much importance to it. Those who do recognise this can still argue that there is an opportunity cost: What has to come out of the curriculum for programming to enter?
  4. Teaching students to code can serve as a gateway to further study in STEM (science, technology, engineering and mathematics) subjects and, if lucky, to jobs and careers in related fields. This may be true, some critics argue, but is it really the “best” gateway? If programming is not taught well, might it deter some students from pursuing STEM subjects and thus decrease the likelihood that they will pursue related careers? Is programming training in schools really a gateway to programming, or is it in practice just “edutainment”, something to do with all the computers that schools have bought and have not yet figured out how to use productively?
  5. Being able to programme allows for new avenues of creativity and creative expression. Efforts to teach programming skills to young students through the use of tools such as Scratch, or as part of robotics courses or initiatives to promote “making” and “know-how”, are often cited as compelling examples of what (good) programming education efforts should include. While, again, many critics may praise these efforts, they still argue that even if programming is recognised as a new literacy in our increasingly technology-saturated world, it is still worth asking two fairly basic questions before moving ahead with new large-scale compulsory programming education initiatives. How are we doing with the old basic literacies of reading, writing and arithmetic? Shouldn’t we make sure that these “basic literacy skills” are well established before we start adding new ones to our already crowded curricula?

Preparing for the future or wasting time? Key to understanding the world around us or opportunity cost? Gateway to STEM or disincentive to vocations? Literacy of the future or a luxury we cannot yet afford?

As Trucano explains in his article, the introduction of efforts to promote programming in schools seems quite reasonable as an extracurricular or enrichment activity in education systems that are already doing a good job in promoting the development of basic literacy skills, especially when such efforts help to engage or encourage unmotivated students – particularly when such students may, for reasons of bias, discrimination or stereotyping, not be considered (or even consider themselves) as candidates for learning such things.

However, the World Bank specialist understands that, in places where major battles are still being fought to help students develop basic literacy skills, especially in many low- and middle-income countries, it should come as no surprise that many policymakers see educational coding efforts as a “luxury” that they cannot afford right now.

So should we teach programming in schools? Who should teach it and who should learn it? At what point in time? Can we afford it? Or rather: Can we afford not to, given that many countries are already doing so? What do we mean by programming? Do we want children learning to program to acquire skills that enable them to program to learn?

At ProFuturo, we understand that learning and developing basic skills related to computational thinking and programming will not only help students to function smoothly in today’s and tomorrow’s society, but is especially useful for changing problematic realities in vulnerable contexts. In this article we explain why. For all these reasons, at ProFuturo we set out to bring computational thinking to the schools with which we work, and we did so from a very differential approach, creating a very wide catalogue of experiences that adapt to the different teaching models and that allow teachers to link it with different subjects.

For us, therefore, the answer is clear: teach children programming and computational thinking. The possibilities of programming in education and, through it, in social change are huge and transcend the merely technological.


Trucano, M. (April, 2016). Should all students learn how to code? Pros and cons. Wise Words Blog.

Vico, F.; A. Zamora; M. Mejía; R.Segura. (April, 2022) At what age should you learn to program? The Conversation.

You may also be interested in…