This is a guest blog from Gareth Cartman, director of digital marketing at Clever Little Design.
I find all this talk about making kids code a little strange. I'm no coder, but as a teenager, I remember taking coding books out of the library and transcribing them onto a BBC Micro in BBC Basic. And then I'd break them, because as an inquisitive teenager, that's what you do. You code, you break it, you modify and you end up with something new.
It's this inquisitive nature that drives many coders. I'm sat in a room with three of them, right now as I write. Not one of them learnt coding from anyone older than themselves. They read books, they experiment, they learn from each other and from their peers...
So why, all of a sudden, do we need ALL of our kids to become coders?
It looks to me as if the government is staring like rabbits in the headlights at what it thinks is a forthcoming digital revolution. But the digital revolution has already happened, and it's been driven by coders who taught themselves how to code.
So rather than teaching kids how to code, shouldn't we be encouraging them to acquire more abstract traits? Such as...
Being more inquisitive
Kids are naturally inquisitive. I have two at home, the youngest of which is just 6 months. Put anything in front of him, and he'll be trying to eat it, smash it, break it. As a parent, I've learned that it's my job to encourage his inquisitive nature, at least within certain limits. I don't want him to fear my reaction every time he reaches out for something.
As kids grow, we should be looking to nurture that inquisitiveness - the idea that you can experiment, iterate, break things (again, within limits), and try to push the limits of your abilities.
Learning to code would simply establish a framework that says "this is how to code", but it doesn't teach you how to push the boundaries.
Being more rigorous
Coding is hard work. It's detailed - and a lot of people learning coding get frustrated at the level of detail required. You've missed a </div> tag? Go find it yourself.
The level of rigour is overwhelming. For those who are not coders.
Perhaps coding is a good way of instilling that rigour in children, and its application in a wider sense (learning languages, mathematics, history) would be welcomed. However, the idea that we're going to bring up a coding generation is way off the mark unless we instil these traits elsewhere.
A further problem with teaching children how to code is that the code they learn will be outdated in a few years' time. You cannot anticipate advances in technology.
I remember learning French at school in the 1980s and early 90s - we were taught that the French always say "comme ci, comme ca". Try saying that to a French person today, they'll look at you as if you're trying to murder the French language. Even languages move on and evolve, and you have to keep up. Code doesn't just evolve, it metamorphoses.
The key is to be adaptable - the best coders are ahead of the game, reading up on new technologies and looking to learn new languages. We will never build a "nation of coders" if we're not instilling adaptability into our children in everything they do.
Coders will be coders
Coders are a breed apart. They have a unique combination of many skills and attributes, which is why so many of them are so well paid.
They have skills and attributes that many of us don't have - or can't combine to the level they do. And that's why most of us will never code.
However, if we want more coders, it would pay to instil the three attributes I've outlined above into our children across the board. Don't limit their inquisitive nature, help them build a level of rigour and detail, and make them adaptable. These are skills that will stand them in good stead whatever they do - and it might just make them want to code.
The ultimate aim is to ensure that school-leavers enter the workforce with the right skills, but I don't believe schools are there to teach skills. That's what we as employers are meant to do. Schools are meant to teach the right attitudes. You never remember your quadratic equations, but you always (should) remember the thinking behind it.
Coders will be coders, designers will be designers, marketers will be marketers - instil the right attitudes first, and let employers teach the skills.