But this approach to teaching, in focusing on the accessible and the enjoyable, has the unfortunate side effect of misrepresenting much of the work IT professionals really do.
To create and work with information technology at a professional level, both computer science and software engineering are essential skills. But they are rarely even hinted at in coding exercises for children, even at secondary level.
The core of the discipline of computer science – algorithmics (the topic of a new unit in the Victorian Certificate of Education) – is the science of solving problems by devising and analysing procedures. These procedures can then be turned into computer programs. It is rewarding, but much like its sister discipline mathematics, it’s hard, sometimes tedious and often highly abstract.
Similarly, a huge fraction of what IT professionals do falls in the domain of software engineering – the profession focused on building large software systems within the constraints of the real world. Planning, design and management of large development teams are very challenging problems.
That said, over the past 50 years we have learned a lot about how not to build large software systems, and have found systematic methods that work far better than unstructured trial and error.
According to a report by the Australian Workforce and Productivity Agency, just 4% of the Australian workforce is employed in information technology roles. The majority of Australians, now and into the future, will not make information technology their career.
So what of those who don’t dedicate their lives to IT, what do they get out of a bit of exposure to coding at school?
Given the role that computing plays in our lives, there’s a strong argument that participation in our democracy will be enhanced by giving every Australian some knowledge of how computers function. A future attorney-general might not be quite so confused about the meaning of “metadata”, for instance.
One potential justification for coding in schools is that an increasing number of professions call for some programming skills. Scientists and engineers of all kinds, financial analysts and managers (among others) will have to either perform programming themselves, or work closely with those who do.
Even the relatively technology-phobic journalism profession is conducting a lively internal debate about the value of journalists knowing how to code, both to create interactive content and to support the kind of statistical analysis performed in data journalism (exemplified by the work of Nate Silver, the American statistician who writes about baseball and elections).
But it’s important to keep what non-specialists can achieve in perspective. If you want to see the results of amateurs struggling to design, plan and manage large, complex physical construction projects, watch an episode of the TV show The Block. Large software construction projects are difficult for amateurs to pull off for similar reasons.