It sometimes seems like everyone is jumping on the ‘learn to code’ bandwagon at the moment; but it’s not clear where that bandwagon is heading. There are organsisations, and companies, and schools, and government initiatives, all aimed at teaching coding. Let me say, that is a good thing. Teaching coding is a good thing, an important thing – but it’s only part of what we need.
People need to understand that technology is not magic; and one of the best ways of demonstrating control is to learn coding. That’s the core of why I believe teaching coding is crucial today. But it’s important not to see spending a couple of weeks being exposed to Python or HTML as changing a student’s job prospects and kitting them out with all that they need to compete in the modern world.
A friend of mine wrote recently:
Learning to code is (should) not (be) the goal. Learning how to analyse sometimes complex problems and come up with innovative and effective computational solutions should be. That’s where the jobs of the future are. The problem with how we’re told to “learn to code” these days is that it too often ignores the systemic and critical thinking required to do it properly. The idea that “learning to code” is simply “brushing up your tech skills” is flawed.
While learning to code can change your life and job prospects if you take it seriously, in many ways it ought to be seen as a place-holder for a way of thinking and problem solving. Writing code requires the coder to break a problem down, to understand sequencing, and to come up with modular solutions. It is having those skills which will make our children competitive.
At the end of each term, I’ve traditionally given my coding clubs a challenge. A problem to solve in the course of a lesson or two – ‘write a hangman program’, ‘make a random firework show on the screen’, that sort of thing. It really is one of those moments that separates the sheep from the goats. Even kids who have done well at coding by following lessons will sit flummoxed by the process of how to break the problem down and start actually creating code for a solution.
This is why initiatives like Bebras are so important. Bebras focuses entirely on computational thinking, it teaches how to solve problems. Once a student can understand how to solve a problem, the coding is just the language used to give effect to that solution.
Funnily enough, the haphazard way in which we’re attacking the need to teach new skills to our children is indicative of just such a lack of problem solving skills. We’ve gone for the simplistic ‘teach kids to code’ as being an end in itself, rather than thinking through what skills are needed and how to acquire them. What we’re doing is almost textbook ‘not computational thinking’.
Again I’ll say teaching coding is valuable and important. More important than many other things we fill students’ days with. But it’s not an end in itself and the danger is that, unless we recognise that, we’ll tick the box, feel satisfied that the job is done, and then wonder why our economy is grinding to a halt. Jumping on a bandwagon might feel like progress at first, but, unless you have a plan, you’re in for a surprise when you come to the first hill.