Wednesday, April 18, 2012

Andrew Orlowski on 'all kids must code'

Andrew Orlowski spends a few hundred words pulling the legs off the cretinous 'all kids must code' movement. Everything he says is spot on. Some highlights:

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 worse the outcome will be.
I think I've worked a few places where that was adhered to. And he neatly skewers the notion that basic coding will teach you how computer networks work (both technically and socially).

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.
The Rory Clellan-Jones article he bases his argument on was a bit of an open goal. I make my living out of HTML and even I don't think it's a useful thing to learn.  It lets you make things look nice on screen, but so does Powerpoint or Photoshop or Word. It adds no educational value beyond knowing HTML, just as learning Powerpoint does not give you insight into general design problems, or understand the rhetoric of slide-after-slide of bulletpoints.

RCJ does vaguely allude to doing something with jQuery (Javascript's a proper grown up language with gurus and conferences and everything now) but Javascript would be a tricky language to start learning with. Its chief advantage is that it's everywhere. There are better didactic languages.

In fact referring back to the classic didactic languages - modula-2, the Smalltalk family, even the ancien regime of Pascal - is illuminating. The point of those languages was not just to teach the learner how to code, each of them was about problem-solving and analysis first, code second. Unlike the C family, they are all designed to minimise the coding side and maximise the thinking side.

(Originally I had Logo & Squeak in there, but I think those are different again: they teach higher programming concepts through play, just as playing with blocks and beads teaches shape and number)

The ability to absorb information, filter it, structure it and argue constructively about it are all much more useful to the developer than knowing the programming language that was hot when programming was written into the curriculum. Compulsory coding will actually take away from the development of those skills.

No comments:

Post a Comment