More than ever before in history, business needs people who can program. Software is becoming a large part of ordinary life, so much so that entire industries and job descriptions are being supplanted by code. Or as a Netscape founder put it, “software is eating the world.” But there is a problem with our ever increasing reliance on software: a shortage of people who can write it.
Learning to program is “notoriously difficult” noted Saeed Dehnadi and Richard Bornat from the School of Computing at Middlesex University in a famous 2006 paper of theirs, The Camel Has Two Humps.
“A substantial minority of students fails in every introductory programming course in every UK university. Despite heroic academic effort, the proportion has increased rather than decreased over the years. Despite a great deal of research into teaching methods and student responses, we have no idea of the cause.”
This austere requirement has been known for as long as there have been programs and programmers to write them.
“Human beings are not accustomed to being perfect, and few areas of human activity demand it,” wrote Fred Brooks in his classic book on systems software development The Mythical Man Month. “Adjusting to the requirement for perfection is, I think, the most difficult part of learning to program.”
Theory is borne out in practice: employers have long known in the workplace that there really is a shortage of people who can program and incredibly, very few of those who apply for programming jobs can program. MIP Holdings CEO Richard Firth says his company is really battling to find developers, and specifically interns.
“Every year, we approach the universities and schools and put all takers through the Van Zyl and Pritchard aptitude test,” says Firth. “We look for about 20 interns a year. Of the average of 40 people we put through the test, only one is getting through. And the failure is because they don’t pass the logic part of the test.”
Unfortunately, MIP’s experience is common. Programming author Reginald Braithwaite caused a stir on his blog when he claimed to be having trouble with the fact that 199 out of 200 applicants for every programming job can’t write code at all. “I repeat: they can’t write any code whatsoever,” he said.
Dehnadi’s and Bornat’s paper describes a simple aptitude test that they claim separates the programming sheep from the non-programing goats – those who will never be able to learn. But as Firth points out, South Africa low education standards are ensuring that even the sheep can’t be found.
“We seem to be training a generation of students to be mere labourers and we are all feeling the pinch of lowering the pass rate to 30% in schools,” says Firth. “If people are not going to be able to write code, is that going to result in the downfall of computing?”