Compulsory coding in schools: The new Nerd Tourism

 

child_robot

The writer Toby Young tells a story about how the modern 100m race is run in primary schools. At the starting pistol, everyone runs like mad. At the 50m point, the fastest children stop and wait for the fatties to catch up. Then all the youngsters walk across the finishing line together, holding hands.

I have no idea if this is true – it may well be an urban myth. But the media class’s newly acquired enthusiasm for teaching all children computer programming is very similar.

Speaking as a former professional programmer myself, someone who twenty years ago was at the hairy arse end of the business working with C and Unix, I can say this sudden burst of interest is staggeringly ignorant and misplaced. It’s like wearing a charity ribbon to show how much you care. And it could actually end up doing far more harm than good.

I like the BBC’s tech correspondent Rory Cellan-Jones a lot, and by breaking and pursuing the Spinvox story he showed tons of courage and enterprise. More than I am permitted to say.

But like so many bien pensant media folk, Rory has been promoting the make-coding-compulsory campaign vigorously.

Recently he spent a day “learning to code” and blogged about it. This has earned him some stick from professional programmers on Twitter. For Rory, this criticism is “sniffiness” about “a newbie having a go”. Rory puts “real” coders in scare quotes as if there is no distinction between real and (presumably) fake programmers – whatever they are. Or fleetfooted children and gasping, wheezing, very non-athletic children.

rory_sniffy

But when you read Rory’s account of his day at the codeface, you can begin to see how the criticism is justified.

Firstly, Rory spent just a day on the job – a whole day. The course was taught by staff at an advertising agency. The day entailed tweaking some HTML and CSS – which he told the nation on Radio 4 are “programming languages”, resulting in “cries of pain” when the code didn’t work. Debugging involved clicking on each other’s websites. And from this Rory came away from his “day of coding exhilarated by the experience and with new insights into the development of our digital world”.

Overnight I received a press release from outsourcing provider Prism IT in which its MD Gary David Smith says it would be “criminal oversight” not to make programming classes compulsory.

“I’m from a Cheshire town that has witnessed its textile businesses go bust and all the mills be turned into apartments. I, for one, do not want to watch the same thing happen to British IT businesses,” he vows. So our overcrowded prisons will be even fuller with teachers who forgot about the programming module.

What’s wrong with this picture? Several things, actually.

Prizes for all

Firstly, and most obviously, computer programming is a meritocracy. Not everyone will get a prize, and nobody should get a prize just for trying. The more mediocre programmers that you employ on an IT project, the costlier the outcome will be.

This leads us to a very different educational policy goal right away. We don’t actually need a lot of people who know a bit about coding, but a few people who are extremely good at actually doing coding well. The better the elite are, the more productive and innovative our companies, and therefore the more our economy will benefit.

So people who will become members of this coding elite do not require a compulsory Noddy-level introduction to HTML. Economically, teaching everybody “a bit” of code is a waste of time. We’d be better off stimulating and challenging the young bright coders identified as such in schools.

This makes the compulsion part of the caper highly questionable. Some of the most brilliant programmers I know have no academic qualifications whatsoever – they’ve proved their mettle on the job. They were able to stimulate their intellectual curiosity by taking apart Psions or Acorns, and the Raspberry Pi is undoubtedly filling an important role here in a technical curriculum.

(There’s also an argument to be made that making anything compulsory kills the pleasure: it took me a long time before I could enjoy Charles Dickens after being taught it at school, but I won’t make that argument here. Instead I’ll assume for simplicity to that every teacher instils in their class the sheer wonder of learning, every time, and without fail.)

But there’s no place for this in the compulsion crusade, as this next Tweet illustrates:

rory_kids_are_thick

Here Rory seems to justify the crusade because children are too fearful to think for themselves, and require official permission to try anything. They need the authority figure to appear, much like a therapist would, to tell them: “Relax, children. It’s OK. This is an angle bracket.”

Perhaps this top-down authoritarian view of the world is not a truly accurate one. If it is, then society faces worse problems than kids not being able write code. Much worse.

The other criticism levelled by professional coders against Rory’s Great Coding Adventure may be less contentious to a technical audience. What he “learned” isn’t real programming, and bears little relation to it.

Several years ago I explained that a lot of problems with the web are sociological: people were addressing system-level problems using presentational-level thinking and tools. What Rory learned on his day out is presentational code. That’s what HTML and CSS are. The rest of the LAMP stack remains out of sight, like the Wizard of Oz.

(Redefining systems engineering in terms of painting is just one of several related trends: we’ve seen innovation redefined as talking about things, as James Woudhuysen explained here. But that’s a discussion for another time.)

So the day at the ad agency no more qualifies Rory to speak about computer programming than painting a fence qualifies you to be an architect or a civil engineer. You can certainly learn a lot about paint in a day. And paintbrushes. How far this gives an insight into building a system, or how systems interact, though, is highly debatable.

Which brings us to what for me is the most curious and interesting part of the campaign. At some point in the conversation with a compulsory-coding enthusiast (and I’ve had several of these conversations) you get to this next stage.

“OK,” they’ll say, “I concede that it’s not for everyone, and not everyone needs to learn open-heart surgery. But knowing even a little about how things work can’t do any harm, can it?”

Memorising runic symbols

I agree, it would be wonderful if people knew how things work: like proteins, machines or economies. It would also be wonderful if they knew some history, and perhaps with some basic philosophy, to be able to think clearly and identify specious arguments. Or cook.

But time is not infinite, and the proposition requires us to make special time for compulsory coding, shoving other subjects out of the way. Let’s take this proposition on its merits.

I simply refer the reader at this to the point about presentation tools above. Knowing how to place a CSS element 20 pixels from the margin doesn’t teach you how computers or networks actually work.

I very much doubt that we’d have so much ill-advised internet policy if, for example, people realised that “The Internet” is not a thing but a network of networks.

And here we return to opportunity costs, and the puzzling notion that learning those presentation tools teaches you anything.

Two very odd beliefs lie at the heart the compulsory-coding crusade. One is that by staring at these mysterious runic symbols, children will acquire some deeper wisdom. This is not education, it is really the opposite, a belief in mystification. (Let’s call this the Church of the Angle Bracket – it’s a web thing.)

The other is that getting down and dirty with “coders” is one of life’s great experiences, one that everyone should experience. This is as deeply patronising as Toby Young’s 100m race, and it’s nothing more than Nerd Tourism.

“Come at look at the coders. Smell their sweat. Live with them for a day!” the brochure will read. Donchaknow? It’s the new gap year.

Tags: