Against the naysayers
It is no secret that software is being used in more and more aspects of society. It should therefore be no surprise that the demand for programming skills has risen over the last few decades. And by the looks of it demand has outsripped supply: I often hear that almost all companies would like to hire more software engineers if only they could find more.
Companies and governments alike have realised that if they want more programmers (and possibly therefore - cheaper programmers) they will need to take active steps in promoting programming teaching and learning. Governments have probably also realised that if they want their nation states to remain or become economically competitive in the long term, then they will need a sizeable population of programmers.
And so initiatives are born to encourage kids and adults to "learn to code". There is, for example, code.org which is "a non-profit dedicated to expanding participation in computer science by making it available in more schools". They have partnered with a host of tech companies. In their mission statement they say that "believe computer science and computer programming should be part of the core curriculum in education". There are many other organisations like this one all over the world. At first glance one would probably think, "o wow, cool, this is amazing..."
Enter the critics. They typically point out that this very modern interest in "coding" is a terribly watered down version of computer science or creativity or some other higher cognitive process. In this article, for example, the author, himself an accomplished professional programmer, argues that although there are "good intentions behind the movement to get people to code, both the basic premise and approach are flawed. The movement sits on the idea that "coding is the new literacy," but that takes a narrow view of what literacy really is". He then argues that programming is an application of the meta skill of modelling...
"Programming as it exists now forces us to model, but it does so in an unnatural way. And while teaching ourselves how to program will help us learn how to break systems down, it does so at the risk of focusing on the wrong things". Yes. We should avoid teaching the craft because people might be too stupid to see the forest for the trees. To me this sounds like plain naysaying. Of course there are risks involved in teaching and of course the approach can be improved. But I find it ridiculous that these risks should prevent people from actually trying to teach others how to "code" - no matter how watered down it may be.
I often wonder what emtions sit behind these critiques. My theory is that programmers feel special. Like they have a special skill that not many people in the world have and they are part of an elite group which happens to be rewarded with above average wages and fantastic job security. And the idea that this skill will become as common as reading and writing freaks them out. I mean, how did the clergy feel when people started reading the Bible for themselves? They were shit scared because they knew they would lose their monopoly on knowledge along with the resultant power and status.
As a self taught professional programmer who did not graduate in computer science, I have on several occasions during the last 3 years felt this insider high and mighty insecurity. "Nah, this task is not for _you_"..."while you're an awesome _almost_ engineer..." they say. I suspect that it is the same haughty attitude that wants to prevent people from learning to code.
I'm not saying that arguments against "coding for all" are definition without merit, but I suspect that many a programmer fears that their special little skill will become commonplace and therefore detest the democratisation of computer science and programming knowledge. I don't know what goes on in the head's of naysayers but I say fuckit: let people teach and learn imperfect versions of computer science and programming; take the risk and maybe people will be inspired by the raw thrill of the craft, the adrenalin of making it work. The more people who can read and write code, the more people will have the opportunity to think big thoughts and translate them into CPU instructions.










