At last, we’ve woken up to the worrying fact that there just aren’t enough good programmers to go around. Instead of aiming to get a generation of students interested in building their own software, education has instead been compelled by successive governments to focus on word processing, presentation graphics, and stultifying vocational work geared to office skills. Something needs to change; the good news is that change may have already started.
Thankfully the current UK government, who were previously expected to be more likely to make Latin compulsory, have listened to cries from industry and done away with rigidly-specified ICT lessons, to replace them with an ‘open-source’ curriculum that returns to schools the decision of what to teach.
Joel Spolsky recently wrote about a New York school that he’s supporting – one that will focus on finding students with a passion for coding and nurture them, rather than skimming off the kids with the best grades for a subject that they don’t necessarily have any affinity for. If successful, there are plans to roll this model out further. Schools everywhere already have valuable support from organisations like MIT, who have created an excellent resource in their Scratch programming language, and PASS, whose volunteers have been working to engage with students.
There are initiatives in hardware like the Raspberry Pi, a tiny, powerful and ultra-cheap Linux box that’s designed to lower the barrier to entry for kids to get started with programming. More importantly, it opens the way to genuinely experimental programming, the sort of thing that produced so many of the great hobbyist programmers of the 80s and 90s. It plugs directly into a TV, and supports USB inputs so that it allows anyone to get set up for very little outlay (the highest-spec version of the machine costs only $35), which will hopefully also make it attractive to schools that would otherwise struggle to buy much dedicated programming hardware.
Beyond the obvious benefit to the students, these initiatives could well help the software industry itself. By getting kids interested in programming at a younger age, we may at last reverse the growing gender gap in future by reducing the perception of programming as being a masculine discipline (something Girls in Technology are already doing good work on). And of course employers would love increased competition for good jobs.
It’s not all good news though, as a drought of great programmers also means a drought of qualified, passionate teachers. Even with the current, much more limited ICT classes, it’s estimated that, in the UK, only 30% of the teachers responsible for these classes actually have direct, relevant education in what they’re teaching. There are many lucrative careers open to good coders, and this is especially the case with the more mathematically-minded where their skills are in demand for the huge amounts of data wrangling needed in the financial sector. It’s not easy to persuade someone that, after some very expensive years at college, they should head into a relatively low-paid line of work, no matter how ‘rewarding’ it might be.
What languages do you think we should be teaching kids? How should we do it? How would you persuade great programmers to pass on their skills and enthusiasm to the next generation by teaching programming?