The idea that young people should learn to code has become a global educational aspiration in the last few years. What kinds of questions should digital media and learning researchers ask about these developments? I want to suggest three approaches: first, to take a historical look at learning to code; second, to consider it in political and economic context; and third, to understand its cultural dimensions.
The importance of learning to code is expressed in catchy slogans and ideas like Douglas Rushkoff’s “program or be programmed,” and the view that if you are not working on code then you are being worked by code. Matthew Kirschenbaum has similarly written about learning to code in order to understand computers as “engines for creating powerful and persuasive models of the world around us.”
The key point is that software has become an increasingly powerful influence in all aspects of everyday life. As a result, if we want people to understand the powers influencing their everyday lives, they need to understand what programming does. Initiatives like Codecademy in the US and Code Club in the UK force us to take seriously computer code and its programmers as important social actors in our worlds—people and things with the power to shape our everyday lives.
Arguments and initiatives advocating for learning to code have become almost taken for granted as a good thing in this context. Learning to code provides young people the technical skills and intellectual tools to understand how software, its algorithms, and its programmers are subtly shaping what we do. But what if we suspended our taken for granted assumptions for a few moments, and considered the historical, political-economic and cultural aspects of learning to code?
While learning to code appears to be a new trend, it has historical antecedents going back several decades. As an example, let me put Code Club in historical perspective.
Code Club operates by placing volunteer computer programmers in after-school clubs. Since it was established in spring 2012 it has spread into more than 1,000 schools in the UK, as well as elsewhere around the world. It has its own Code Club philosophy around creativity and exploring, as well as its own kind of club curriculum, which proceeds from using Scratch to HTML to Python.
Code Club has clear contemporary appeal, but what about its historical antecedents? In Education/Technology/Power, Mary Bryson and Suzanne de Castell discuss an earlier era of educational programming, that of LOGO and constructionism in the 1980s. They argue that the LOGO model of constructionist learning tended to make the logical operations and computational rules associated with programming seem like the highest level of human intellectual achievement. But in establishing logical and computational thinking as “normal behaviour,” they argue, constructionism became an “essential component of the exercise of power” that made other kinds of educational practice and knowledge appear “different and inferior”—and excluded certain individuals and groups of young people.
Code Club clearly shares some of the features of constructionism associated with LOGO. It puts a constructionist emphasis on learning through exploration, creation, and play. It also emphasises learning “computational thinking,” “problem solving,” and “logical thinking,” as the Code Club philosophy states.
In constructing programming as an educational activity, then, it is important to note how its specific modes of activity and the forms of thinking it involves might be elevated to a position of dominance over other forms of educational activity and thought, and to consider the possible effects of that. What assumptions, practices and kinds of thinking are privileged by learning to code? Who gains from that? And who misses out?
In the UK, learning to code has been justified, at least in part, as promising to reignite aspects of the digital economy—as an influential policy report, Next Gen, argued. This is why politicians have been eager to support such initiatives. For example, Make Things Do Stuff was launched earlier in 2013 by the UK government Chancellor of the Exchequer, the politician with the highest responsibility for the national economy. The basic assumption of these political advocates is that if young people learn to code today, then tomorrow they will be able to innovate for future prosperity in the digital economy.
While this is familiar as a political and economic ambition, it glosses over a great deal of the reality of the activities associated with programming and coding.
To work on code, for example, may not be as straightforwardly a good thing as sometimes supposed. Looking at ethnographic accounts of the work of computer programmers, such as Ellen Ullman’s Close to the Machine, it’s clear that even professional coding is a complex and precarious activity. Software production involves the incessant updating of skills and fluency in different programming languages, coding packages, operating systems, and so on—such an impossible learning requirement that many programming experts barely know what they are doing. Programmers are often working in a state of what Ullmann calls “ignorant expertise,” barely cognizant of the processes they are undertaking.
Even more alarmingly, the technical complexity of programming means that many programmers are so absorbed in solving technical problems that they overlook the human and social consequences of what they are producing. In Code/Space, Rob Kitchin and Martin Dodge describe code as the product of group dynamics amongst people often working in highly precarious conditions, not least as it is affected by economic fluctuations. Consequently, the established coding practices of programmers, and the ways of knowing and doing things that they share as a professional community, can be as imperfect, partial and provisional as they are creative and productive—and software development has high failure rates to show it. In this sense, if software is shaping everyday life, then it is not necessarily by design but through complex relations between economic and material practices.
We might also consider here the extent to which, as Astrid Mager argues, software development, programming and coding follow particular kinds of rules such as those of efficiency and input-output ratios that are now part of how dominant capitalist algorithmic ideology works. These insights into the vexed work of programmers indicate how political and economic ambitions around learning to code rest on glossy representations that bear little resemblance with the reality of instability, dysfunction and failure in the software landscape, or with the ideologies underpinning its practices.
A third set of issues is around programming as an increasingly mainstream cultural activity. The media theorist Lev Manovich, in Software Takes Command, argues that the simplification of programming environments associated with contemporary social media means that software development is becoming more “democratized.”
There is a close resemblance between arguments about the democratizing potential of programming and arguments advocating learning to code that are based on ideas about learning to produce and not just consume technologies. This is precisely the line stated on the Make Things Do Stuff website:
We want to help people to make the shift from consuming digital technologies, to making and building their own. Because when all kinds of different people start hacking, re-mixing and making things with technology, the possibilities get really interesting…Make Things Do Stuff will enable people to make sense of all the resources that are available to them and will help them to navigate a path that will take them from being a digital consumer, to being a digital maker.
However, it’s important to be a little cautious of the claims around “democratisation,” “co-production,” “presumption,” and so on, that accompany these kinds of arguments.
As David Beer has argued in Popular Culture and New Media, participation in the “prosumption” of media content raises two issues. The first concerns the “free labor” people are providing for social media businesses. The second is that this kind of media engagement is generating vast and new forms of by-product data from the everyday lives of people. These data can then be analyzed using sophisticated analytics in order to make predictions and recommendations, and consequently to shape future cultural encounters—or to “make taste” as Beer phrases it. He argues that the software algorithms running in social media are a new source of social power, or “algorithmic power,” that is increasingly altering the actual functioning of culture in everyday settings.
Learning to code does, then, need to be understood as one way in which young people are being shaped into the “prosumers” on whose media activities and by-product data most social media business plans are now written. The commercial sponsorship of learning to code initiatives and activities by many of today’s most powerful social media and computing companies is evidence of this entanglement of media engagement and corporate power in an increasingly algorithmic culture.
Learning to code is a significant idea and set of practices in contemporary education. As with any aspect of digital media and learning, however, it needs to be studied and researched carefully in order to get past the hype.
Learning to code cannot be understood outside of its historical, political-economic, and cultural entanglements. This means researching all the dimensions of “programming power” around learning to code. Looking at learning to code in terms of power serves as a reminder that while programming may be an empowering activity, it is also shaped by wider issues of power in educational technology, the political and economic power that shapes programming, and the algorithmic power shaping cultural participation with digital media.
Banner image credit: US Mission Geneva http://www.flickr.com/photos/us-mission/8681272802/