So, I was on twitter last night, as I oh so often am. And I saw a link to a guardian article about the year of code initiative.
My response?
RT @anghelides Why every child should learn to code http://t.co/wmMeV5lMYP <no no and thrice no. Need to let people think not make them code
— Jax Blunt (@liveotherwise) February 9, 2014
I do urge you to go read the guardian article. I’m not sure it would be good for my blood pressure to go and read it again to be honest, given quotes like this
We at the Year of Code are going to help change that. The new computing curriculum starts this September, and it puts coding at the heart of IT education. Coding is the art of telling a computer how to perform complex tasks. Once you know how to code, you can create virtual worlds within the computer where the only limit on what is possible is your imagination. We want to put this power into the hands and hearts of every child in Britain.
Anyone can learn to code. In a few hours you can pick up the basic skills and in a few weeks you will be able to build useful applications and websites.
But you’re a programmer Jax. You’re forever encouraging people to have a go with their websites, you write articles encouraging people to do things for themselves.
Yes, yes I do. But I would never tell anyone you can learn to code in a few hours. It gets better too. If you watch the Newnight interview with the director of the government funded initiative, you’ll discover she can’t code and she thinks that people can learn to teach code in a few hours. Here you go.
I might have to go away and breathe calmly for a few minutes.
There, that’s better.
Right. Is coding difficult? Well, yes and no. I introduced both my older children to Scratch a few years ago. They’ve been coding in that ever since. I read more code languages than I can write – I’m proficient in Pascal, C, Java and php I’d say. (I’m even Sun Certified in Java, how’s that for geek points? So geeky only the geeks know what it means!). But when it comes down to it, code isn’t the issue. What you need to be able to do is work out what the problem is you’re trying to solve, and break it down into the steps needed to solve it. So you need to be able to analyse problems and design solutions.
The shape of that solution will differ depending on the language (and type of language – procedural? Object oriented?) you’re coding in. And once you’ve coded your solution, you need to test it, and work out whether it really solved the problem.
So really, coding is a tiny piece of the developmental puzzle. There’s requirement gathering, analyis, design, documentation, coding, testing and support off the top of my head. (You might have some data to deal with too, so maybe you’ll need a database engineer. And maybe you’ll need a user interface – so perhaps you’ll need a graphic designer too.)
Are you beginning to understand one of my issues with year of code? We absolutely do *not* need everyone to be coding. Only people who don’t understand what coding is could possibly think that.
But coding, so I’m told “enables logical reasoning and repeatable action, like writing enables asynchronous communication and recording” (It’s in the twitter conversation above. Check it out.)
Disregarding the repeatable action bit, here’s where we get to the crux of the problem. Logical reasoning enables coding. Not the other way around. We would be better off letting all our children problem solve, reinstituting the Great Egg Race (anyone else remember that?), having lateral thinking problems daily, philosophical debates in all classrooms. What we need more than anything is logical thought, the ability to recognise a problem, explore solutions, come up with innovative ideas.
What we could do with is a Year of Thought. Any funding out there for that?
Thought not.
That’s only one of my issues though. As I mentioned above, there’s also this idea that teachers can learn to teach code in less than a day.
Newsflash. They can’t. It takes a long time to become proficient in a language. And to learn to teach it takes longer, surprisingly enough. Like most things. If we march teachers through a basic teach coding course we’re going to end up with a lot of children who are being told things that aren’t right. For some children they’ll never go any further. For the talented few who are already proficient, they won’t be challenged or taken any further.
There are already so many great initiatives out there putting things right in this area. They are taking expertise and making it available to children and adults. There might be a code club at your local school or a dojo down the road. Check it out Why isn’t the government supporting them instead of chucking money at this half baked idea? Anyone would think they wanted it to fail.
Coding, to my mind is a craft. (Not an art, as it’s often referred to.) The best way to learn it is by doing it in a learning environment. As an apprentice to a master, seeing expertise around you, having your own work critiqued. That’s not the environment that we’re looking to set up here and that is a crying shame. Second best is probably being given the resources you need (raspberry pis anyone?) and time and space, and maybe a peer group of interested fellow learners (computer clubs!) but being taught elements of coding by people who don’t know coding is not the answer.