…if you can imagine a computer doing something, you can program a computer to do that.
We’re told that it is important that every child learns how to code. We have “The Year of Code” and a number of other high profile organisations driving coding into schools. This is the wrong approach.
Using a computer system to solve a problem is a fairly complex process involving a number of identifiable stages. Broadly it can be broken down as follows:
- Recognise you have a problem
- Recognise that the problem can partially or wholly be alleviated by the use of a computerised solution
- Set a budget for the solution (and increase this at several stages through the process)
- Break down the problem into an algorithm
- Design an interface that enables the parameters of the problem and the solution to be communicated between computer and humans
- Design the database to hold the data that the programme relies on
- Design the server system that is going to deliver the solution
- Write the code that enables the computer to operate the algorithm
- Test the system to ensure that it does the job it was intended to
- Project manage the entire process
Each of these separate elements requires a distinct set of capabilities of the people undertaking it. UX design is not coding. Systems analysis is not coding. IA is not coding. Project management is not coding. I could go on.
There is an argument that whilst what I say above is true, learning to code is a gateway into most of these roles. This argument has some substance, but I would say that the same could be said of any of the other roles. Focusing initially on coding gives the impression that it is the most important part of the process. It isn’t. It is a quite specific part of the process requiring a specific skill set. Not having those capabilities may lead some to think if they can’t do that bit, then the rest isn’t for them either.
From a national economic standpoint there is another problem with the idea that everyone should code. Coding is the most portable of the roles noted above. The others are less exportable. Industrial scale coding will done by the cheapest supplier. If that is here, then it does not bode well for having a high value economy. If it is overseas then being able to code will be no guarantor of getting a job.
It is the other parts of the process where the real value exists and where we need more people.
People will argue that the new National Curriculum does not say only learn how to code, and I would agree with that absolutely. However, what a NC document says and what it gets translated into by those with a vested interest are often two different things. This we know from experience.
This is actually one of those times when I wish people had listened to what Michael Gove had to say, rather than the soundbite it was translated into. In 2013 in a speech at Brighton College he said:
It will be impossible to call yourself educated in years to come unless you understand, and can influence, the changes technology brings.
One thing we can be certain of is that the acquisition of coding skills, the ability to think computationally and the creativity inherent in designing new programmes will help prepare all our young people better for the future.
Taken as a whole this is a fine aspiration. I fear that its dilution into the mantra “everyone must be able to code” risks selling our children short.