Let's start by mentioning that I can't write code - indeed I would know where to start. But I know it is important and that the ability to construct computer programmes will be central to the future of civilisation. So I am sympathetic to those who believe that more people - perhaps everybody - should be given the basics of coding:
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.
I applaud this initiative - it liberates coding from being the domain of specially trained folk and results in a broader understanding of how we can make the computing tools around us work for us. However there's a dilemma - the code being written is giving instructions to important things like vehicles, heating systems and the delivery of medication. We want it to work.
So there's a bunch of people who want to control who can (and cannot) be allowed to write code:
Frailey suggests that software engineers should be required to demonstrate a certain level of expertise before offering their services to the public, just like professionals in disciplines like medicine and law.
Indeed some 30 states in the USA now require software engineers to take (and pass) a licencing examination before they can work on projects that "affect public safety". It's pretty simple to see that such a definition has the capacity to cover almost everything that involves programming computers and especially the programming of tools in the so-called "internet of things".
We have two different pressures - one the support among professional code-writers for licencing and the other a movement to democratize coding by giving the skills to everyone. It is difficult to encompass both things - coding is either a basic skill that everyone can use or it's a highly sophisticated activity akin to heart surgery requiring specially licenced individuals. In the latter case, it is in the interests of the licence issuer and the person licenced to extend the requirement beyond high risk areas (programming the computer that will aid in the heart surgery, for example) to encompass a much wider range of activities. Programming computers, rather than being a craft skill, becomes a licenced 'engineering' function, the very opposite of the world envisaged by the people at Year of Code.