Do “Learn to code” initiatives go far enough?
And I do hereby admit you to the most mystical and learned fraternity of coders for you have shown your mastery of the angle bracket and div tag.
Certain ideas have become a matter of faith in our industry. Prominent amongst these is that “everyone should learn to code”. In South Africa, with its high youth unemployment and strained and deficient education system, providing a learn to code course over a few months becomes attractive both to the learner (learn to write code, get a secure, high-paying job) and the provider (become a social entrepreneur, change the world, make money). I get this. I love the feeling that you have made a difference in someone’s life, knowing that you have helped unleash their potential. I understand, at least to an extent, why our wonderful teachers commit themselves to a career which offers so much stress and frustration for a reward that is often intangible. So I have always leapt at the opportunity to mentor and develop young kids entering the coding industry, especially those from a disadvantaged background.
But here is the stark reality: the majority of interns or juniors I have managed lack the ability to actually solve problems. They are great kids, who, when shown how to do a task, will understand what you want done and be able to repeat those steps without supervision. But when you need them to apply what they have learnt to a slightly different task they lack the problem solving skills to apply the knowledge they have gained to the new problem.
Let me be clear. These kids are not unintelligent. They have made it through school when many of their cohort have dropped out. They face challenges that I, with all my privilege, can barely comprehend. They have the drive to get out there and find a course that promises to teach them to code. The tragedy is that so many of those courses fail to equip school leavers with the skills that they actually need to succeed in a career where the requirement is to solve new problems, every single day.
The graduates of these “learn coding” colleges that I have worked with painted a picture of courses that teach what can be described, if we are being charitable, as a basic introduction. You know, HTML pages, divs, CSS to make some text red and so on. And it is learnt almost by rote without the student gaining an understanding of the underlying principles like HTTP, the DOM, how a browser actually works. Without laying the foundations for future growth these colleges have simply been paid to equip their graduates with skills that can already be replaced by automation.
If we are serious about bridging the gap between young people who have been let down by the primary and secondary education they have received and the needs of the software industry specifically (and STEM more generally) then we need to start with a dose of honesty. The gap is in reasoning, logical thought and problem solving, not knowledge of some arcane magic words sprinkled with angle brackets. A learn to code course can’t teach you this way of thinking if your basic education hasn’t prepared you for it. Learning the language has always been the easiest part of what we do, so let’s start thinking how, as an industry, we can help teachers to develop the fundamental skills that we need new entrants to the workforce to possess. And in the short term, how about some bridging courses that focus on the theory, coupled with a message to prospective students that a long, difficult road lies ahead of them, but we are here to help.