
posted 18th February 2025

Over the past 2 decades I have had the pleasure of working in 4 secondary school teaching IT and computer science. I am a computer science enthusiast, passionate about the subject and enjoy teaching it to all key stages. Unfortunately not all of us would happily spend their energy and time coding computers, because it’s weird and I’m often told I really do need to get a life. Apart from the kicks I receive from solving problems through algorithmic approaches there is a greater calling to my vocation as a Computer Science Teacher in the UK. There were more than 64,000 vacancies for UK tech jobs in the third quarter of 2021, according to, up by 191% on the same period in 2020.
There is little hope of this staggering figure abating. The US Bureau of Labour Statistics recently advised that American companies would face a 1.2 million shortfall in developers by 2026. A 2021 McKinsey survey found that 87% of US companies were seeing a developer shortage, or expected one in the next few years. The UK is particularly badly bitten as well and many of us are feeling the effect of our nation sliding and slipping behind on digital transformation. The UK relies on very limited number of home grown developers and heavily reliant on foreign nationals to fill developer positions.
As a result of Brexit, many developers have left the UK, and EU companies are less willing to work with the UK post Brexit. In September 2012, the current education secretary in the UK Michael Gove stopped the national curriculum ICT programmes of study with the hope of teachers creating and teaching more ambitious content that would challenge UK students and prepare them to think with logic (use an algorithmic approach) to solving problems. A brand new computing curriculum was published in September 2013 - drawn up by teachers, sector experts, led by the British Computer Society and the Royal Academy of Engineering, with input from industry leaders like Microsoft, Google and leaders in the computer games industry. I vividly remember being thrilled with this news and welcomed it whole heartedly. Many of my colleagues at the time were angry with the change and argued for IT to remain. They thought the new curriculum would be too onerous for students. Particularly if they struggle with simple logic. Coincidentally many teachers were not trained as computer scientist and dread the challenge of upskilling or the invitation to practice and teach logic.
“The new computing curriculum will give our children the skills they need to succeed in the 21st century. That is why we replaced the obsolete and boring curriculum with one that is forward-thinking” – M Gove
Since the new curriculum programmes of study was introduced in 2013, I have spent many hours re-designing computing curriculums, developing resources to aid logic and coding and coaching many teachers to deliver the new computing programme of study. I strongly believe that logic can be taught, through rigorous practice. But teachers, especially IT and computer science experts must be willing to learn and embrace the new digital age. I have had the pleasure of teaching some extremely talented software developers. But I cannot take any credit for their learning, because most of them either had ability to think logically or had the potential before I became their teacher. We cannot expect to be a nation that produces talented software developers if we do not teach the fundamental approach to software development (logic thinking) in our schools. The new computing programmes of study is the vehicle that will change the face of software development in the UK.
Sadly it is not being used or has been implemented without care, thought and logic. Students are expected to learn too much too soon. Key stage 2 and 3 students are not being taught or challenged. Teaching staff lack basic skills, knowledge and often use incorrect methods. Schools are not investing in resources, in some cases stifling learning by a closed system approach where students are unable to be guided and learn through exploration. I was interviewed by an OFSTED inspector who strongly believed all KS2 students starting their KS3 journey have been taught requirements of the national curriculum. In my visits to primary schools, I have often found the lack of teacher computing knowledge is poor and students are not using resources for learning. As a result students find the subject extremely challenging.
Computer Science is not rocket science and as teachers, parents and citizens we must begin to embrace these simple concepts that could really change our thinking. The concepts can be broken down into simple manageable steps. But it is imperative these concepts are taught with skill, experience and pedagogy. Steve Jobs one said everybody should learn to code a computer.
Excellent computer science teachers are few, desperate Government attempt to retrain existing ICT teachers and teachers from other subjects is noble. However many are under prepared for the task or simple comfortable with teaching what they do not understand, more importantly what they are unwilling to learn.
Let’s look at some simple examples of how we can adjust our thinking to embrace logic. = symbol represent a comparison to the world. This is what we are taught in math. As a coder = represent an assignment. Eg X = 3. So how can we teach a computer to recognise a comparison? This depends on the syntax of the coding language, but in most languages the comparison operator is simply 2 equal symbols ==. A variable is not limited to something that changes as the terminology suggests or what we are taught in math, but to a computer it is an abstract storage space used for data items. Eg to store a list of usernames we use a variable. Names = [“Joh123”, “Mar345”, “Cha678”]. Every computer program is made up of lots of instructions that must be read by the CPU one at a time. The instructions or statements are read in sequence. Sometimes a statement can result is true or false which causes a jump in the instructions. Eg instruction (1) if John attains a score higher than (>) 50, instruction (2) print “Pass” instruction (3) else instruction (4) print “Fail”. Depending on the outcome of instruction 1, other instructions may not be executed. This is how computers make decisions. And it goes without saying many of the commands and instructions used in software are repeated, so getting comfortable with understanding how loops and sub programs work at an early stage is really useful. Computer Science is really not rocket science. It’s just about building a logic conscience.
How do we begin to address the big issue of generating software developers, IT specialists? How do create fertile learning soil in our homes, schools that will equip young minds, promote the vital logic skills required to break down the barriers to teaching and learning computer science?
We begin by educating ourselves. We cannot and must not continue to teach what we do not understand. As students we cannot continue to accept what we are taught without challenging it. Whenever a student challenges me I often think “that’s the type of student that will change the world” I encourage student to challenge me and as a computer science teacher I learn with them. Together we provide many solutions to the same problem. I continue to enjoy coding. They become skilled in software development and hopefully gain employment in the field, marginally closing the gap in the software development shortage industry.