Vibe coding, and what it means for computing education
Sep 30, 2026
If the machine can write the code, why teach coding?
Some parents now tell their fourteen-year-olds not to bother with GCSE computer science, because the AIs will write the programs. Teachers I know say the course is harder to recruit for than it used to be, and the national figures agree. Entries held steady for years, rose for a couple more after the National Centre for Computing Education was funded, and are now slipping. Undergraduate admissions to computer science grew modestly between 2021 and 2024, then fell by something like 7 per cent a year. This is happening in one of the most exciting periods the subject has known, so it is worth asking what we should do about it.
The case that programming is finished
In 2023 Matt Welsh argued that the conventional idea of writing a program was heading for extinction. Most software, he said, would be trained rather than programmed, and any simple program would be generated by an AI. In the same year Farhad Manjoo made the optimistic version of the argument: programming would turn from a rarefied, well-paid occupation into a skill anyone could pick up and use at work. Both look prescient today. Andrej Karpathy gave the practice its name, vibe coding. You see stuff, say stuff, run stuff and copy and paste stuff, and it mostly works. Dario Amodei reports engineers at Anthropic who no longer write code and suggested in January that models may be six to twelve months from doing most of a software engineer’s job end to end.
Whether that fills you with horror or delight depends on where you stand. If you have an itch that software could scratch, describing it in your own language and getting a working tool back is remarkable. What was once the privilege of a few comes within reach of anyone, at close to zero cost, at least for those of us in affluent countries. Sal Khan calls this post-scarcity for some kinds of work. What you need is the ability to read and write enough code to assemble the generated pieces.
The cost falls at the bottom of the ladder. “Get a job as a software engineer, people will always need programmers” is poor advice now, and the junior developer looks most exposed. Industry needs senior engineers, but seniors start as juniors, and nobody has explained where the next generation will come from. I see a symptom in my own work. Since the curriculum changed in 2012 we have never trained enough computing teachers to fill the places. This year, nationally, we are close to target.
What schools can do
The rules for qualifications are clear. The Joint Council for Qualifications requires that work submitted for external assessment is verifiably the pupil’s own. If a pupil declares AI use, they earn no marks for what the AI produced. I think that is right. Whatever happens in the workplace, a school qualification certifies what a learner knows, understands and can do. In practice that means watching pupils program under controlled conditions.
England’s curriculum and assessment review points the same way. Exams will remain the principal form of assessment, partly because AI has made coursework hard to authenticate and partly because exams protect disadvantaged students from the biases that creep into coursework. Many of us wanted to move towards more coursework, and that door has closed for now. I hope the exams themselves will move on screen.
What the research suggests
Programming has always been hard, and learning to program harder, because you have to work out something you do not yet understand. Becker and colleagues argued in 2023 that auto-generated code should shift our emphasis towards reading and evaluating code and away from writing it from scratch. Prather and colleagues found that students and lecturers see AI use and institutional policy differently. Universities are working it out alone, and some try to lock everything down, which will not hold where coursework is involved. Their recommendations are to teach different programming skills, to be clear about when and how students may use AI, to adapt teaching, and to teach students to use these tools well. The last point matters. We should not assume undergraduates know how to get the best from Claude or Copilot. It is a teachable skill.
The skills that matter move up a level. The machine is good at loops and accumulators. Judging whether the architecture is sound, robust and secure is still a human job. Prompting matters too, though in an odd way. For everyday use, chatbots understand us so well that prompt engineering counts for little. Coding assistants reward precision, and they need us to check the output at each stage and refine the prompt when they misread it. That makes prompt engineering and problem decomposition worthy of a place in the computing curriculum. David Malan’s CS50 duck at Harvard shows a good model for the tools themselves: a bespoke tutor that gives the advice a good teaching assistant would give, rather than a generic chatbot that hands over the answer.
Pair programming offers another model. Pupils already work as driver and navigator, and the human can take the navigator’s seat while the AI drives. A 2025 study by Fan found that AI-assisted pair programming raised intrinsic motivation, reduced anxiety and improved performance. Publishers are starting to produce programming books that assume AI exists, and I doubt they begin with “Hello, world”.
Should it be hard?
My worry is that these tools take away some of the bite. I enjoyed programming because it was tricky, and I became a better programmer through the hard thinking it demanded. Daniel Willingham put it neatly: memory is the residue of thought. If the AI deals with data structures and algorithms, what will students think about, and so what will they remember? If the answer is only how to operate a tool, they will remember something that changes every six months. Anthony Seldon makes a related point: people do their best learning when they meet a challenge and overcome it, and AI could strip that away unless we get ahead of it.
Why learn to code at all?
The Raspberry Pi Foundation’s Colligan, Griffiths and Cucciat give five reasons. We need skilled human programmers. Learning to code is part of learning to program. It opens opportunities in the age of AI. It is a literacy that gives young people agency in a digital world. And those who learn to code will shape the future.
I would add a conviction. People who have learned to program think about problems differently, and I would say better, and they understand how technology works inside. That does not feel irrelevant in an AI era. Susskind’s new book, What Should my Children Do?, describes how the case for teaching code, which we made with such confidence in 2012, has shifted under our feet. He lands on needing both sets of skills. If humans are to stay in charge of the next generation of machines, some of us must be able to read what the machines have built. There is a practical case as well. Many vibe-coded web applications are impressive and wide open to SQL injection, with no reliable data protection behind them.
What I have been building
I should declare an interest. I am not a software engineer. My degree is in mathematics, my first career was school teaching and now I train teachers. For years I have wanted particular tools, and I could have spent my summers learning to build them. Life is too short. Now I describe the tool to Claude, direct the work and test the result. Kevin Roose calls this “software for one”, small bespoke apps that solve a problem in your own life. Few change the world, but amateurs can now build what once needed a team.
Google’s Antigravity built a working web app for Nim, one of the earliest computer games, from a single request. It thought for four minutes and produced something I could play. In a Colab notebook, Gemini found historic weather data for Heathrow, calculated monthly averages and plotted a time series, working towards a warming stripes plot that runs from 1948. It went wrong, and the fault was mine. I had not said I wanted the midpoint of the daily minimum and maximum, so it averaged the maximum. I should have been watching more carefully. Precise instructions and checked output are exactly the skills I say students need, and I tripped on both.
Other projects came from classroom frustrations. One exam board invented its own pseudo-language that pupils must learn to read exam questions, which is yet more syntax to master, so I built a Blockly version and put it on my website for anyone to use. Another board includes some Haskell for sixteen to eighteen year olds, so I built a flow based interface in which you wire functions together rather than snap blocks into a stack. A network emulator lets pupils play with the components on screen, which helps with a topic schools find hard to teach. The latest is a browser-based Python editor that puts the whole program in the URL, so a teacher can share it with a class. Nothing runs on a server and nothing is stored.
The editor shows how this work can multiply. A colleague, Justin Edwards, forked it and added a Socratic tutor that asks questions about the learner’s own code and gives graduated hints, with no answers. A small language model runs locally through Ollama, so the learning conversations stay on the device. That design cuts cognitive offloading and costs nothing to run.
What should change?
Coding literacy matters more now, not less, but it is a different literacy: that of the person in the corner office directing a team of engineers, who must know enough to tell good work from bad. Problem decomposition moves to the foreground. Prompting earns a place in the computing curriculum. Critical analysis, creative design and ethical evaluation remain irreplaceable, and security can no longer be an afterthought. Assessment has to change, and the curriculum needs rebalancing.
At university level, one option is to split the first course in two. CS1A would cover the low-level material: C++, how the machine works, how a machine learning system is built from the ground up. CS1B would suit the biologist who wants to write code that works with the data they meet every day. The same logic could shape school computing, although I have no settled view on how.
I have not answered the question I started with, because I think it remains open. What should a learner think hard about, so that the thinking sticks? I would like to hear your answer.
This post grew out of a talk I gave at TSAIR 4 in Paris. The slides are at bit.ly/tsair4.
Share