Review of Annette Vee, Coding Literacy

Article Information

  • Author(s): Federica Frabetti
  • Affiliation(s): University of Roehampton
  • Publication Date: July 2021
  • Issue: 8
  • Citation: Federica Frabetti. “Review of Annette Vee, Coding Literacy.” Computational Culture 8 (July 2021).


Review of: Annette Vee, Coding Literacy: how Computer Programming is Changing Writing, Cambridge MA: The MIT Press, 2017, 376 pp. ISBN: 9780262036245

Annette Vee’s Coding Literacy is a very timely reflection on current movements and campaigns aimed at broadening access to computer programming. The book’s argument is that computer programming (or coding) can be productively viewed as a form of literacy, and that, in turn, the growing importance of coding is transforming what it means to be literate in contemporary society. Understanding coding as literacy — Vee argues — provides a window into better understanding whether and in what way people should learn to code in and out of formal educational settings, and why.

Perceptively, Vee’s book investigates contemporary coding literacy campaigns to unpack the values and ideologies that sustain them and, although it does support the idea that coding is a form of literacy that should be widely learnt, it does not do so uncritically. Vee carries out a careful examination of the social, cultural and educational implications of the repositioning of coding as literacy. Computer programming skills can be framed as a form of literacy — that is, as the ability to read, interpret and write code — in the same way that the ability to read, interpret and write texts is viewed as constitutive of traditional literacy. However, the very concept of literacy and the equivalence between coding and writing are problematized by Vee from the very beginning.

When campaigns such as invoke the concept of literacy to emphasize the importance of learning how to code — Vee notices — they are making a substantially political move. Calling coding a literacy means ‘mobilizing literacy’s heritage of moral goodness’ (2) — that is, linking coding with the ‘moral good’ that literacy has historically been associated with in the western world. Textual literacy has functioned for centuries as a morally good but relatively undefined concept that, precisely because of its malleability, can serve as a cypher for the kind of knowledge a society values. It can indicate various kinds of literacy (financial, health or technological) that can be implemented in large scale educational programmes; it occasionally triggers moral panics about falling literacy rates, failing educational systems and the downfall of society and, most importantly, it works in powerfully exclusionary ways by stigmatizing people who do not possess it. Lacking literacy, or being illiterate, does not only indicate the practical inconvenience of lacking a crucial kind of knowledge; it can also mean being unable to present oneself as a productive citizen and even being blamed for ‘dragging society down.’

However, coding can indeed be considered a form of literacy because, like reading and writing, it is a form of symbol manipulation. In fact, since reading and writing today happen mostly on digital platforms, coding can be considered a ‘platform literacy’ (3). Thus, not only does the association between coding and literacy allow one to think of coding beyond the mere acquisition of technical skills; it also constitutes a theoretically rich way to understand both coding and the new, hybrid kind of literacy required by contemporary society.

Overall, the book makes two basic arguments: that thinking of coding and/as literacy illuminates what literacy looks like today, and that the history and practices of textual literacy can provide helpful comparative contexts for contemporary uses of code. In other words, literacy functions in Vee’s book as a heuristic tool to investigate how today coding skills are working their way out of specialized professional fields and into more widespread everyday habits. Coding is becoming more and more accessible through self-learning tools and informal educational opportunities, and the field of literacy research can provide insights on how to approach computer programming not as a problem-solving tool but as a form of writing. Ultimately, thinking of coding as literacy can help disassociate coding from fields such as maths and engineering, as well as from the narrow disciplinary concerns of computer science, thus signalling ‘a move away from programming as a profession’ and opening it up to the wider population (6).

For this reason, Vee draws on literacy studies, and particularly on New Literacy Studies (a sociocultural approach to literacy that originated in the 1980s), to understand code. Importantly, New Literacy Studies provides a useful critical framework by drawing attention to how literacy reveals social inequalities (for instance, children growing up in sociocultural contexts where literacy is less relevant have fewer ways to incorporate it in their everyday life). According to Elspeth Stuckey, literacy can even enact a performance of violence because of the way it perpetuates systematic oppression. 1

In sum, if coding is conceptualized in terms of literacy, it becomes possible to disentangle it from restrictive definitions given by institutional fields such as computer science, and to broaden its scope to include literacy-like coding practices distributed widely among the population. Such practices may include occasional scripting for data processing, one-off coding for the publication of a creative project, and many other forms of knowledge through concrete experimentation, as well as trial-and-error methods used by webmasters, citizen activists, tinkerers and game makers. This approach encourages the unpacking of the sociocultural aspects of coding and enables a critical reflection on the exclusionary aspects embodied by disciplinary and professional fields (think, for example, of the systematic processes of exclusion performed by computing professions along the lines of gender and ethnicity). In turn, such reflection is crucial to expand access to coding.

Although Vee is by no means the first scholar to argue for the importance of a wider access to coding skills, she builds a convincing argument for looking at code through the lens of literacy in order to ask questions of coding that have to do with the intersection of the social and the technical, the theoretical and the practical. She persuasively argues that literacy has the potential to enable what Adam Banks calls ‘transformative access’, which indicates the capacity to access a technical system in order to unpack how it works, thus unmasking the values and ideologies embedded in it and effecting changes on its interface. 2 In other words, acquiring coding literacy changes the uses of coding. Vee’s argument in the book is that ‘we must think of programming more broadly — as coding literacy — if the ability to program is to become distributed more broadly’ (8).

Importantly, Vee indicates that her aim is not to establish what coding literacy should look like; on the contrary, her premise is precisely that ‘prescriptions for literacy are always contingent’ (10) because literacies are always contingent. The framework of literacy helps her mobilize the extensive knowledge embedded in the study of literacy in order to provide a socially and historically informed perspective on coding as a literacy practice.

One of the main virtues of Coding Literacies is that it stages an encounter between two equally complex concepts — coding and literacy — without shying away from their inner tensions. Both concepts are difficult to define; both involve complex dynamics of power; and both can be used in inclusive as well as exclusionary, and even harmful, ways. Vee’s working definition of literacy as ‘a widely held, socially useful and valued set of practices with infrastructural communication technologies’ (28) implies a systematic analysis of the material aspects of literacy as well as of the social and cultural ones. This is especially significant in contemporary communication ecosystems in which speech and writing are augmented and partially displaced by code.

To explore and problematize the concepts of literacy and coding and their interrelations, Vee structures her book into four chapters. The first chapter complicates the discourse of coding literacy in recent coding-for-all campaigns; the second interrogates the similarities and differences between writing and code as socio-material practices that inscribe and distribute information and influence knowledge production; and finally, the third and fourth chapters trace a history of writing and code with the aim of shedding light on contemporary modes of hybrid literacy. We are currently at a point when code has become infrastructural but the ability to write and read it has not. Together, these chapters indicate how today computer programming is re-coding literacy (hence the book’s title) and suggest that the history of textual literacy can help illuminate possible ways to make this shift more socially equitable.

Vee’s discussion of ‘coding for everyone’ campaigns in Chapter 1 highlights how arguments about education are always ideological to the extent that they reflect the values of a particular society at any given moment. Literacy can widen popular participation in public life, but it can also reinforce the status quo, for example by ring-fencing knowledge reserved to the ruling elite or by promoting hegemonic values. Here Vee also seems to hint at what I would call the ‘performative’ nature of literacy — that is, if enough people start naming something ‘literacy’, it does eventually become literacy, in turn producing its ‘other’ (the illiterate), and enacting inclusions and exclusions that affect individuals as well as social groups.

The chapter traces the historical process that associated textual literacy firstly with the religious values of the Reformation, and later with civic ones. It outlines the subsequent transition of literacy from a collective good to an individual one, linked to efficiency and productivity, during Western industrialization. Finally, it illustrates the contemporary positioning of literacy as a form of self-development and self-realization. Vee argues that some of the values underlying textual literacy, as well as the rhetorical artifices typical of mass literacy campaigns, have been refashioned and repurposed by current mass coding campaigns and movements. She identifies four dominant arguments at work in calls for mass programming: individual empowerment; the learning of new ways of thinking; citizenship and collective progress; employability and economic concerns. Current calls for mass programming also reflect contemporary ideas of flexible work environment and, unsurprisingly, they are often endorsed by Silicon Valley private companies. Regardless of what it actually is — Vee concludes – programming can be framed rhetorically in many different ways. At present, ideas of citizenship, morality, productivity and standardization invoked by mass literacy campaigns are resurfacing in mass programming campaigns, while the idea of the illiterate begins to coincide with the non-coder. By following the historical unfolding of ideas of literacy in its continuities and discontinuities, Vee demonstrates how the question of whether literacy is liberatory or hegemonic cannot be answered once and for all. For example, one of her main concerns is that equality-driven mass coding campaigns have been substituted by employability-driven ones.

If Chapter 1 is about the inclusion of computer programming under the rubric of literacy, Chapter 2 focuses on the relationship between writing and coding as socio-material practices. Vee distances herself from traditional scholarship of orality and literacy – such as Jack Goody’s, Walter Ong’s and even Marshall McLuhan’s work – by positioning it as too simplistically focused on the cognitive ‘effects’ of technology on the human. 3 A correction to this approach is represented by New Literacy Studies, with its view of technology as ‘at once socially constructed and society-shaping’ (105). Vee privileges scholars such as Christina Haas, Deborah Brandt and Katie Clinton, who understand literacy as the material binding of the human and the nonhuman in Latourian networks of objects, symbolic systems and social spaces. 4 Andrea diSessa’s concept of ‘material intelligence’ (defined as intelligence developed in interaction with material objects and environments) also plays an important role in Vee’s understanding of literacy. 5

Writing and coding share similar affordances (for example, discreteness, scalability and creative form) that in turn enable certain kinds of knowledge. However, coding differs from writing in an important way: because it is executable. Vee carefully distinguishes her understanding of the executability of code from that of other well-known thinkers such as Alexander Galloway (2004) by proposing her own rereading of John Austin’s theory of speech acts and suggesting that code functions descriptively for human readers and performatively (or functionally) for computers. 6

If a critique can be made to Vee’s understanding of the relationship between coding and writing, it is perhaps in this chapter, particularly in relation to her use of philosophical conceptualizations of technology. Vee draws on Heidegger’s ‘The Question Concerning Technology’ (1977) to suggest that code is a form of ‘revealing’; and what code reveals and fosters, for her, is a procedural understanding of the world. She also traces code’s discreteness back to Jacques Derrida’s concept of grammatization and to Bernard Stiegler’s reworking of it. 7 Although these conceptual moves are theoretically substantiated, I would argue that collapsing Heidegger’s understanding of the horizon of possibilities opened up by technology, and of Stiegler’s conception of technology as a pharmakon (both a poison and a cure), into the concept of ‘technical affordance’ is perhaps overly simplistic. In this way, the potential for a political critique of technology and for a deeper questioning of its supposed instrumentality offered by the so-called tradition of originary technicity, to which Derrida, Stiegler and Heidegger belong, is to a certain extent neutralized. 8 However, Vee’s conceptualization of ‘how we think with technology’ (98) remains convincing, as does her understanding of contemporary ecologies of communication as the intermingling of speech, writing and code (which can never perfectly translate, but rather always exceed, each other) into what Katherine Hayles has called the current ‘regime of computation.’ 9

Chapter 3 and 4 explore the history of textual and coding literacy in greater depth. Although it is impossible to collapse coding and literacy into perfect parallels, the history of textual literacy is outlined to illustrate the process that leads from the adoption of a particular inscription technology to widespread literacy. When an inscription technology is adopted as a material infrastructure by a centralized government with regulatory purposes — as was the case for writing in medieval England — it begins affecting citizens’ lives and it gradually becomes domesticated. People start perceiving reading and writing as desirable skills and they develop a literate mentality, firstly collectively and then individually. Collective literacy characterizes a society where, for example, not everyone is literate but everyone has access to someone who is. However, when writing begins to be perceived as a desirable skill to acquire, rather than hiring it out, society starts moving toward an individual literate mentality. When a critical mass of people become fluent in an inscription technology (as happened in England in the 19th century, in the age of mass literacy campaigns), society starts building on the assumption that everyone can read and write, and it becomes possible to speak of literacy.

Vee argues that the same questions we ask of textual literacy — that is, how did this process happen? What agencies pushed for what transitions? What structural shifts were engendered? – should also be asked of coding. She traces the history of coding from 20th century government-spurred adoption of computational research to commerce-embraced computation, to the domestication of code in the 1980s (with the advent of personal computing) and finally to today’s ubiquitous computing.

Transitions are not all-or-nothing states: literacy is a moving target, and when an inscription technology becomes infrastructural it triggers anxieties and fears (for example, of being left behind). New forms of illiteracy appear that lay the ground for people to desire and seek out literacy. Vee suggests that, in the current regime of computation, a significant share of the population are feeling the pressure to become coding literate. Coding has transitioned from being a form of material intelligence to becoming infrastructural. People have entered a computational mentality and perceive themselves as surrounded and affected by code, but they have not reached a stage of coding literacy yet. As the ways in which programming can be used are diversifying, and more people appear to be learning to code for work or out of personal interest, more initiatives are built around coding literacy. But what might a world with mass computational literacy look like? What kinds of institutions can be built around the assumption that everyone can program? It is here that, according to Vee, the historical patterns of textual literacy outlined in the book can gesture towards possible answers to some of these questions.

Reading Coding Literacy in Britain in 2021, four years after its publication, still feels incredibly timely. The Covid-19 pandemic has made social inequalities and gaps in access to education strikingly obvious. Suddenly society appears to be divided between those who have access to enough computing resources to cope with socially distanced online learning and those who do not. In the Higher Education sector, even on relatively technical degrees, students from disadvantaged backgrounds, who lack the equipment necessary to study from home and rely on campus-based resources to develop and expand their coding literacy, run into significant difficulties when those resources become inaccessible due to travelling restrictions. Notwithstanding the range of coding practices that can be carried out in the cloud using free or open source software on a variety of hand-held devices, social disparities materialize along lines of class and ethnicity. As Vee acutely observes, literacy is never empowering per se. The acquisition of literacy takes place in always already stratified contexts.

For someone so aware of social and class inequalities, Vee uses the term ‘political’ surprisingly sparsely, preferring the vocabulary of social justice. While effectively using literacy as an analytical tool to unpack the ideologies associated with the promotion of ‘coding for everyone’ in educational and community settings, the book stops short of a radical critique of educational settings as such. As a scholar in cultural and software studies, I cannot dispute the importance of opening the black box of digital technologies through a wider acquisition of coding literacies. However, I also wish for a stronger emphasis to be placed on the critique of the political and sometimes regressive – rather than progressive – implications of calls for coding literacy. In the United Kingdom (and this may well be different in the States) Vee’s book can function both as an opportunity to reflect on the importance of mass coding literacy and as an invite to critiquing some of the political and institutional consequences of coding literacy on our educational system. For example, it could provide a conceptual framework to analyze how coding literacy can be used to reinforce class divides, at a time when a widening part of the UK university is being vocationalized by a conservative government. In this context, coding skills are increasingly positioned as the backbone of new practice-orientated degrees, especially at so-called modern universities as opposed to elite universities.

In other words, if the ability to code becomes the backbone of the vocationalization of higher education, then it might contribute to the reinforcement of the very class divide that it was meant to (and it potentially could) challenge. Here we run the risk of forgetting another important form of literacy — namely, critical literacy, or what sometimes goes under the name of ‘theory’— that is, a robust critical framework with which to approach coding skills that are not intrinsically liberating or empowering, and even less the bearer of political critique. As Vee intelligently reminds us, we must not reify the supposedly liberating potential of coding literacy. What I want to suggest here is that we should perhaps look at how code can be approached not just in terms of skill acquisition but also in critical and political ways. Vee’s argument feels particularly urgent now that we are facing challenges such as the opacity of ubiquitous computing and AI-powered decision-making in almost every aspect of everyday life, and that gendered, racialized and often harmful effects of technology are entering the public debate. Such challenges can definitely be better appreciated by citizens with enough coding literacy to grasp how digital technology works. And yet, they might demand a more political response than that provided by coding literacy.


Banks, Adam. Race, Rhetoric, and Technology. Mahwah, NJ: Lawrence Erlbaum, 2006.
Brandt, Deborah, and Katie Clinton. “Limits of the Local: Expanding Perspectives on Literacy as a Social Practice.” Journal of Literacy Research 34, no. 3 (2002): 337-56.
Clark, Timothy. “Deconstruction and Technology.” In Deconstructions: A User’s Guide, edited by Nicholas Royle, 238-57. Basingstoke: Palgrave, 2000.
Derrida, Jacques. Of Grammatology. Baltimore, MD: Johns Hopkins University Press, 1976.
diSessa, Andrea. Changing Minds: Computers, Learning and Literacy. Cambridge, MA: MIT Press, 2000.
Galloway, Alexander. Protocol: How Control Exists after Decentralization. Cambridge, MA: MIT Press, 2004.
Goody, Jack, ed. The Logic of Writing and the Organization of Society. Cambridge, UK: Cambridge University Press, 1986.
Haas, Christina. Writing Technology: Studies on the Materiality of Literacy. Mahwah, NJ: Lawrence Erlbaum, 1996.
Hayles, N. Katherine. My Mother Was a Computer: Digital Subjects and Literary Texts. Chicago: University of Chicago Press, 2005.
Heidegger, Martin. The Question Concerning Technology and Other Essays. New York: Harper and Row, 1977.
McLuhan, Marshall. Understanding Media: The Extensions of Man. Cambridge, MA: MIT Press, 1994.
Ong, Walter. Orality and Literacy: The Technologizing of the Word. London: Routledge, 1982.
Stiegler, Bernard. Technics and Time, 1: The Fault of Epimetheus. Translated by Richard Beardsworth and George Collins. Stanford, CA: Stanford University Press, 1998.
Stuckey, J. Elspeth. The Violence of Literacy. Portsmouth, NH: Boynton/Cook, 1991.


  1. Elspeth J. Stuckey, The Violence of Literacy (Portsmouth, NH: Boynton/Cook, 1991).
  2. Adam Banks, Race, Rhetoric, and Technology (Mahwah, NJ: Lawrence Erlbaum, 2006), 45.
  3. Vee is referring here to traditional studies of orality and literacy, such as Walter Ong, Orality and Literacy: The Technologizing of the Word (London: Routledge, 1982); Jack Goody, The Logic of Writing and the Organization of Society (Cambridge, UK: Cambridge University Press, 1986); and, in the context of media studies, Marshall McLuhan, Understanding Media: The Extensions of Man (Cambridge, MA: MIT Press, 1994).
  4. Christina Haas, Writing Technology: Studies on the Materiality of Literacy (Mahwah, NJ: Lawrence Erlbaum, 1996); Deborah Brandt and Katie Clinton, “Limits of the Local: Expanding Perspectives on Literacy as a Social Practice,” Journal of Literacy Research 34-3 (2002): 337-56.
  5. Andrea diSessa, Changing Minds: Computers, Learning and Literacy (Cambridge, MA: MIT Press, 2000.)
  6. Alexander Galloway, Protocol: How Control Exists after Decentralization (Cambridge, MA: MIT Press, 2004).
  7. Martin Heidegger, The Question Concerning Technology and Other Essays (New York: Harper and Row, 1977); Jacques Derrida, Of Grammatology (Baltimore, MD: Johns Hopkins University Press, 1976); Bernard Stiegler, Technics and Time, 1: The Fault of Epimetheus, trans. Richard Beardsworth and George Collins (Stanford, CA: Stanford University Press, 1998).
  8. The term ‘originary technicity’ is used, for instance, by Timothy Clark, “Deconstruction and Technology,” in Deconstructions: A User’s Guide, ed. Nicholas Royle (Basingstoke: Palgrave), 238-57.
  9. N. Katherine Hayles, My Mother Was a Computer: Digital Subjects and Literary Texts (Chicago: University of Chicago Press, 2005), 18.