Is there really any point in teaching kids to code?
Next week Apple is having “Hour of Code” workshops in every single one of its retail stores worldwide – all 487 of them. Hour of Code is designed to teach the basics of computer science with Swift Playgrounds, the iPad app which it introduced at this year’s WWDC.
To say that the government is keen on people learning to code in order to combat a perceived skill shortage is understating it. There’s been a government-backed “Year of Code“, a proposal (and £20 million) for an “Institute of Coding“, and fairly constant cries that kids and adults aren’t technical enough.
The trouble is that really there isn’t a shortage of developers. You can sift reality from the hype by looking at the UK’s visa rules. In the points-based system we use for non-EU workers, the only programming roles listed as in shortage are senior developers with a minimum of five years’ experience, and a few more niche jobs such as driver developer. There are more roles listed in engineering and design than in coding.
If the reality of a coding skills shortage doesn’t live up to the myth, then what’s the point of products like Swift Playgrounds? Should we really be focusing on teaching kids to be engineers, or encouraging them to go to art school and continue the British heritage of fantastic, world-class designers? In fact, learning about how code works is valuable even if you’re never going to program.
There’s much to love about Swift Playgrounds, but the key thing for me is that despite being an app designed to be accessible to younger kids, it also teaches Swift, the language Apple is moving towards for development on both iOS and macOS. This isn’t a dumbed-down coding language designed just to teach the basics of programming. It’s a real, proper programming language that you can write actual applications with. And it may be a playground, but it’s not a toy.
Apple is clearly committed to the importance of teaching people – especially kids – to code, putting time and effort into creating resources such as Swift Playgrounds, releasing new content for it, and making guides for teachers to support them if they want to use it in class. Of course, that’s good for Apple – it wants to sell more products into education – but it’s also just the right thing to do for many reasons unconnected to a shortage of skilled computer programmers.
Not everyone is going to want to be a coder, but learning about how code works is an incredibly important thing. Coding is a great way of understanding principles of formal logic and reasoning without having to delve into abstracts. If more people understood the concept of “garbage in, garbage out” our political arguments would get a lot more useful.
Perhaps more importantly, code of all kinds increasingly runs the world, and knowing the basics of how machines that run code work is vital. Without this knowledge, code can seem like magic rather than the man-made. Unless you understand how code works you can’t understand how things such as Facebook’s Newsfeed algorithm work – and then you can’t understand how the assumptions its programmers make can affect what you see. “Garbage in, garbage out”, remember?
And no matter what kind of creative industry you’re in, whether it’s engineering, architecture, design or even journalism, code will come into your life at some point. You might never write it yourself, but someone, somewhere, will be writing code that does something in your projects – and understanding the fundamentals of what they’re doing can help you do your work too. And if you have learned using a real, proper programming language that powers apps on devices in the hands of a billion people, like Swift, you’re going to have a little more confidence about what you know.
This is why I think initiatives such as Swift Playgrounds and the Hour of Code, as well as the projects other companies are doing in this area, are so important. Governments, inevitably, will want to focus on turning more kids into coders, but that’s not really the most important thing. Instead, it should all be about equipping everyone with the knowledge of how code works, so they can understand a bit more about how it affects our lives.