By Ben Williamson
In the last few years, the idea of ‘learning to code’ and ‘digital making’ has grown from a minority focus among computing educators, grassroots computing organizations, and computer scientists into a major global educational concern. In England, it has been taken so seriously that it has even become an important educational agenda amongst politicians and policymakers. The most significant political development of this agenda has been the ‘disapplication’ of the subject ICT (Information and Communication Technology) in the English National Curriculum (which critics claim over-emphasized basic functional skills for using computers), and its replacement from September 2014 with a new computing curriculum that focuses instead on computer science, programming skills and ‘computational thinking’—the understanding of how to construct problems so they can be expressed in machine-readable binary mathematics.
Learning to code has been translated from a grassroots campaign into curriculum reform in a remarkably concentrated period, yet the powerful actors mobilizing it into curriculum policy and the practices of coding promoted through its pedagogies are largely unrecognized in educational research. This is surprising since coding programmes such as Code Club, Codecademy, Hour of Code, and Year of Code, as well as digital making initiatives like Make Things Do Stuff and many others, have attained a high profile over the last few years among business, media, civil society and political groupings. The BBC, for instance, plans to launch a raft of content around coding and computing for a major initiative supporting the computing curriculum in 2015. As part of a longer paper I have been writing on the various campaigns, organizations and lobbying groups that have combined to advocate for coding and computing in the curriculum [now published open access in Critical Policy Studies], I want to suggest that there is a ‘hidden curriculum’ behind the computing curriculum, one that can be glimpsed if we take a closer look at some of the thinking behind learning to code and related digital making campaigns.
Learning to code ideology
The first aspect of the hidden computing curriculum to note is that ‘coding’ carries into the classroom a specific set of assumptions about ways of knowing and doing things. Writing code is not just a technical procedure but is related to systems of thought about the way the world works, and about how it might be modelled in order to further shape people’s interactions with it. As Rob Kitchin and Martin Dodge have argued in Code/Space, coding is a ‘disciplinary regime’ with established ‘ways of knowing and doing regarding coding practices.’ Writing code projects the ‘rules’ of computer science and its system of computational thinking into the world. It captures assumptions about how the world works and translates them into formalized models that can be computed through algorithmic procedures.
Taking such points as cues, we can begin to see how learning to code embodies a host of assumptions and working practices based on ideas such as computational thinking, statistical modelling, systems thinking, scientific rationality, and procedural algorithmic logic that have their origins in the working practices and ‘rules’ of the computer science professions. These are very specific kinds of social practices which, like much of the hype around ‘big data,’ as Rob Kitchin argues, are contextualized within a particular scientific approach, reflecting sometimes quite functionalist and technicist modes of thinking that approach the world in computational terms rather than in relation to cultural, economic or political contexts. Some edtech writers argue that education has much to learn from the practices of programmers. In this sense, learning to code may be interpreted as a material practice of what Astrid Mager terms ‘algorithmic ideology,’ a kind of introduction into the codes of conduct, practices, assumptions, and values that underpin the production of code, or that Tarleton Gillespie describes as the insertion of algorithmic proceduralization into human endeavours.
Learning to code thus seeks to inculcate learners into the systems of computational thought associated with the professional regime of programmers and the computer science disciplines, and with their philosophies of the world, biases, prejudices, ideological assumptions and modes of perception. This is not to suggest that coders or coding are bad things, as David Eggers’s amusingly dystopian novel The Circle suggests, but to acknowledge what approaches to the world they privilege.
Learning to code/to labour
An aspect of the hidden curriculum of schooling, as educational sociology has long claimed, is its socialization of children into the workforce. Certainly it is possible to detect such thinking in many of the learning to code campaigns and organizations that have helped contribute to the computing curriculum. Campaigns such as Make Things Do Stuff and Year of Code are premised at least in part on the idea that coding is an economically valuable skill to be developed in children before they reach working age. Some of the key reports contributing to the computing curriculum have made similar arguments, notably reports from Nesta and The Royal Society, as well as more recent materials from the think tank the Education Foundation and the UK Digital Skills Taskforce.
In most of these materials around learning to code, digital making, makerspaces and so on, coding is positioned as a rewarding, desirable and skilled occupation. Indeed, a message on Twitter by one edtech evangelist in the UK argued that if children want top jobs in coding, then they are better off maintaining a GitHub code-sharing page than passing GCSE examinations. Although one tweet doesn’t amount to research evidence, it signals how some of the commentary around learning to code, digital making and related computing projects reflect a modern political preoccupation with sculpting a mind and body with the technical skills, knowledge and capacity for entrepreneurship and value-creation in the digital economy.
Yet this depiction glosses over the fragility, complexity and mundanity of much coding work in the digital economy. As Adrian Mackenzie notes in his book Cutting Code, ‘the figure of the programmer often vacillates between potent creator of new worlds and antisocial, perhaps criminal or parasitic.’ More prosaically, the work of coding is often dull, routinized and monotonous, as well as difficult, frustrating and dysfunctional. Owing to intense ongoing innovation in the field, programmers are always struggling to learn and adapt to constant change and experience a high degree of ‘ignorant expertise’ and confusion about what they are doing, particularly in relation to the wider possible social effects of the software they produce, and the kinds of interactions and ways of seeing and doing things that they make possible. There are even reports that a great deal of programming work will be automated in the near future by advances in machine learning, and that the idea of learning to code is being made obsolete by developments in cognitive computing.
As a result, the learner participating in Code Club, Year of Code, Make Things Do Stuff, or the like, is being solicited into a system of thinking, knowing and doing associated with coding practice that is not always as systematic, objective and expert as it is widely represented as being by learning to code advocates. Learning to code is premised on a fantasy of the material practices associated with coding which simplifies and glamorizes the mundane and even dysfunctional reality of disciplinary practice in the digital economy, and which ignores its potential for automation in the near future.
Learning to code for commerce
According to some critics, learning to code and digital making have become major commercial concerns, stripping such activities of their original ‘radical’ intentions. For example, in the US, the Hour of Code campaign was co-founded by the Partovi twins, ‘angel investors’ from Silicon Valley, and has been heavily promoted and backed by massive multinationals like Microsoft, Facebook and Google. Its British cousin, Year of Code, was set up by entrepreneurs at Index Ventures, an international venture capital firm whose mission statement is that ‘every aspect of human life and economic activity can be transformed by technology and entrepreneurial passion.’ The chair, executive director and advisors of Year of Code are almost all drawn from the fields of technology entrepreneurship and venture capital. As the columnist John Naughton has argued, ‘Year of Code is a takeover bid by a corporate world that has woken up to the realization that the changes in the computing curriculum … will open up massive commercial opportunities.’ As if to demonstrate this, the chief executive of Codecademy claims that they have ‘struck oil’ as the computing curriculum is ‘forcing an entire country to learn programming,’ though at about the same time, the director of Code Club was forced to quit over demands from its board that she refrain from criticizing the ‘corporate mass surveillance’ practices of commercial sponsor Google.
But this is not just about commercial firms—it’s about the increasing entanglement of business and government. In a chapter of their new book on political lobbying in the UK, Tamasin Cave and Andy Rowell describe the various activities surrounding the learning to code movement and the reform of the computing curriculum as a ‘lobbying tool for technology firms with a clear, vested interest in digitizing learning, as well as enthusing a new generation of coders.’ They list the Education Foundation, a think tank that advocates for educational technology in the UK, and Nesta, a public innovations lab with a focus on ‘digital education,’ as key actors here. This ‘campaign of business-backed think tanks and education technology lobbyists,’ Cave and Rowell argue, has now ‘got what it wanted’ in the shape of computer science in the curriculum and strong political support for the educational technology market.
Learning to code for prosumption
However, programmes such as Make Things Do Stuff and Code Club justify themselves not just through the prospective economic and commercial value of children learning to code, but through a wider cultural argument about people producing and not simply consuming technology. One way to analyze this preoccupation with coding clubs, programming and related digital making activities is to view it as promoting ‘participatory’ practices of ‘co-production,’ ‘crowdsourcing’ and ‘prosumption’ in new social media practices, as advocated through Make Things Do Stuff and Code Club.
The term ‘prosumption’ registers the alleged blurring of production and consumption as consumers of digital media increasingly also become its producers. In Software Takes Command, the media theorist Lev Manovich, for example, argues that ‘software development is gradually getting more democratized’ as social media—Facebook, Twitter, YouTube, Wikipedia, and so on—enables users to create and post content, contribute to ‘crowdsourced’ forms of ‘co-production,’ and perform their own customizations, mash-ups and remixes of existing material.
While prosumption is presented by its advocates in highly positive terms, critics such as the sociologists David Beer and Roger Burrows claim the increasing participation of people in the formation of media content is leading to the ‘significant phenomena of the growing amount of “labouring” people are undertaking as they “play” with these new technologies.’ ‘Free labour’ is the perfect business model for contemporary capitalism. As such, prosumption firmly embeds people in what Beer & Burrows term the social media ‘infrastructures of participation’ that are subject to the commercial interests of for-profit social media corporations. Within such infrastructures, the prosumerist individual is encouraged to share personal information and data; maximize sociality through horizontal networks of connected friends and by liking and sharing digital artefacts; and to contribute through everyday participatory forms of digital making, software programming, and coding.
Learning to code is a direct outgrowth of this concern with co-production, crowdsourcing and prosumption, enabling young people to become expert prosumers of social media content. Consequently, learning to code is not a neutral, decontextualized or depoliticized practice, but shaped, patterned, ordered and governed by powerfully commercialized coded infrastructures.
Learning to code for x
There is a final hidden political dimension to learning to code and the computing curriculum too. Learning to code and digital making is closely related by key advocates such as Nesta with ideas about ‘hackathons’ and ‘codefests’ for public service design, and ‘government hacking’ events. ‘Hack’ events put teams of computer programmers together, using code-sharing tools, to engineer solutions to government and public sector problems. The voluntary prosumer is the ideal subject for a governmental context where the state is seeking to deconcentrate its responsibilities and enable more ‘people-powered public services’ and co-produced solutions facilitated by ‘people helping people,’ as Nesta documents describe it. These Nesta documents describe projects such as ‘local government digital making,’ ‘civic tech’ and ‘coding for civic service’ that involve a mixture of coding skills, design skills, and user experience to explore ‘solutions to challenges’—merging ‘what is (technically) possible and what is (politically) feasible.’
These projects apply what Nesta terms a ‘code for x model’ where it appears that computer code can be applied as a solution for almost any problem. It rests on the assumption that the problems with the social world can be addressed with solutions written in code. This is about applying technical engineering to the task of human, social and political engineering, and represents the embedding of computational thinking—the expression of problems in the language that computers can understand—in the main style of contemporary governmental thought.
According to internet critic Evgeny Morozov this kind of ‘solutionist’ thinking originates in the Silicon Valley hacker culture of technological innovation. Such thinking recasts complex social phenomena like politics, public health, and education as neatly defined problems with definite, computable solutions that can be optimized if the right code and algorithms are available. Here we find social phenomena translated into computational models that can be operated upon by algorithmic procedures—the perfect technical fix for an increasingly ‘solutionist state’ that wants to promote a new generation of coders to fix its problems on its behalf.
The overall digital making, learning to code and hacking discourse is embedded in this emerging mode of what I see as ‘political computational thinking.’ Through various advocacy coalitions, campaigns, lobbying groups and networks of likeminded organizations, learning to code has been positioned as equipping young people with the computational skills required to become solutions-engineers and hackers of the future. The current preoccupation with children learning to code is reflected in how government is also learning to code in order to apply computational thinking and procedural algorithmic solutions to ‘hack’ public and social problems.
Learning to repoliticize code
In conclusion it can be argued that learning to code is a kind of introduction into new computational ways of interacting with the world, as channelled through the ‘rules’ of computer science and the disciplinary systems of thought associated with programmers. Such practices are intended, at least in part, to prepare them for a world in which computational thinking and coding practices are seen as potential solutions to all of today’s economic, commercial and political problems.
While it’s probably best to reserve a little judgment here, it is important to acknowledge that learning to code, digital making and the computing curriculum are attached to these other political activities and ways of thinking, rather than simply to see practices of coding and computational thinking as decontextualized and depoliticized sets of technical skills. As the computing curriculum hits classrooms, we need to learn to repoliticize code.