the interesting promotion of coding

The BBC show Newsnight recently ran a depressing poor segment on the year of coding and specifically the plans to start training teachers to teach coding. You can get some idea of the quality of the interview by the fact that the presenter Jeremy Paxman (who like many Oxbridge media types seems to revel in presenting himself as a technological simpleton) was interviewing someone who, despite her grandiose title of "Director of Coding", by her own admission cannot actually code1. If you took the transcript and replaced the phrase "coding" with almost any other topic, like say Swahili, the interview would have been precisely as informed.

First an important public announcement. When explaining the importance of technical topics that the general public do not understand, vague generic reasons as to why a subject is important will not work. A demonstration of this failing comes from this quote from the director of coding "In recent years our economy has changed but our workforce has not. If we are going to crack high levels of youth unemployment, we must ensure that all young people leave school with the right skills for the jobs market". I am afraid this statement is so vague it could apply to almost any damn skill. A history, Welsh or physical education teacher could just as easily say almost exactly the same line. In fact that quote sounds worryingly like the language of a distant politician, speaking without offering any insight, mere sentiment wrapped in pleasant sounding verse but ultimately just a useless and entirely ignorable soundbite.

Take a leaf from people who have battled to explain the importance of apparently obscure skills for much longer namely scientists. If asked to explain why quantum mechanics is important a physical scientist knows to relate it some aspect the public inherently find important. For example they might answer "quantum mechanics led to the discovery of devices that are crucial to industries currently worth trillions of dollars." Immediately this sounds like something the audience might want to take seriously. In the scenario of going on TV to explain the importance of coding, I personally would have searched for coding jobs beforehand so that I could answer the inevitable "Why is coding important?" with "well there are, at this very moment, 10,000 well paid positions in the UK that specifically require coding skills."2 Basic simple facts for basic simple viewers. 

I actually have a bigger and more fundamental issue with the promotion of "Coding" namely that it is a ridiculously vague term. Promotion of vague terms like "Science" is not bad per say. However whilst the term Science is vague itself when questioned advocates immediately use specific disciple, fields and current research to explain and justify it. Often Coding is promoted as if it was one universal homogenous semi-mystical trick. The director of coding on the newsnight interview stated you can learn to teach coding in an hour and that if she had been taught coding at school she could have made her own website and app and saved herself money. Both these are technically true but in practice absolutely wrong.

Coding is composed of many diverse fundamentally different disciples. Programmers, to give them their older but more precise title, not only use different language to "code" but they use different models and have different ways of seeing problems. Someone who optimises collision detection algorithms for a modern game engine has quite a different coding skillset to someone who creates graphical user interface libraries for Android apps. Yes they are both coders but they do entirely different jobs and need 1000s of hours of specialized training to reach the top of their fields.

So the director was right after a year3 she could code an app/website but it would be no where near as good as the one she had made by a professional coder. Similarly yes you could maybe teach a brave teacher to teach coding in an hour but they won't understand it nor be able to answer any questions whatsoever. Would you like to be taught by such a teacher?

Even with perfect pupils and hugely trained teachers only a small fraction of kids become good programmers. In a nutshell teaching someone the basics of coding does not make them a good programmer. If, as is highly desirable, you shy away from specifics and only teach them transferable fundamentals "all" you do is introduce kids to programming. It is precisely the same as teaching a course of French for a year. No one will be fluent but some will like it and decide to focus on it in the future. If the French economy was booming (as the coding one is and has been for a while) that single year course might suddenly be a small but crucial step up to open doors to future careers.

in my humble opinion we cannot make school kids good programmers in a single year, nor should we try as education should aim for well-rounded individuals not one trick ponies. If your stated aim is only to make decent programmers you will likely fail. The aim should be to build excitement about the possibilities of doing coding and a gentle introduction to a technological field that will be crucial in their future world.

O and just to finish off if you are going to promote coding check you can answer these 16 basic questions. If not, you probably need to do a bit more background research. O and if you think I am being harsh consider this it is generally considered to be best if programming managers code for 30% of their time!

0/ Why do programmers start lists at 0?
1/ What is coding and when did it start? 
2/ Why is coding more important than learning Mandarin?
3/ What sort of jobs does coding open up to me?
4/ How well paid is the average coder?
5/ How long does it take to learn coding?
6/ What do I need to start programming? 
7/ What do you personally enjoy most about coding?
8/ What is the most complex thing you ever coded?
9/ What is the difference between coding, programming and hacking? 
a/ What are your favourite programming languages and why? 
b/ What is a raspberrypi?
c/ What does open source mean?
d/ Do you need to be good at maths/physics to code? 
e/ What websites should I "goto" to learn more? 
f/ What is the numbering system on this list called?   


Footnotes:

  1. I know little about the director so I dislike attacking her. She may well just have had a bad day at the office but I am afraid saying "I am committed to learning to code over this year" simply doesn't cut it. This subject is too important to be so meekly promoted. 
  2. This would have went some way to avoid Paxman's obvious follow up questions of why shouldn't I learn Mandarin instead.
  3. Of course I am assuming when she and everyone else says "a year of coding" they mean a school year course ie an hour a day so ~200 hours at most not every waking hour in a year.