Coding occupies a weird place within the field of graphic design. While it is recognized as a practice that profoundly shapes our artificial environment, its actual adoption within schools and studios is still minoritarian, to say the least. Moreover, as some of the interviews in this volume show, graphic designers are not always capable of perceiving the computational virtues of a project, such as an elegant workflow, or an ingenious generative process.1
I speak from experience: in almost five years of teaching, I’ve caught a few students outsourcing the programming part of their projects. Several of them expressed frustration with and disinterest in coding, which is often framed as the mere execution of a creative idea. Sadly, a gendered component is also likely to be in play, probably as a result of women’s internalized estrangement from the so-called STEM (science, technology, engineering and mathematics).2 In fact, most of the students who at the very outset disclose to me that “coding is not their cup of tea” are women.
On the bright side, I have had the pleasure of seeing many complex code-heavy projects made by women designers. These projects were not about the Promethean hubris that code often inspires, or the proud display of the ‘power’ of programming. Instead, they focused on the sociocultural aspects of coding as a practice that brings people together with machines and through machines. More on that later.
Should this practice be within the designer’s domain? This has been a question that has elicited ongoing and heated debate for as long as I can remember. The question, simply put, is “should designers have to be able to code?” For some notable practitioners, the answer is a hard yes. One of them is John Maeda. His position is unsurprising, since he created the language Design by Numbers, Processing’s predecessor, and he could be considered a pioneer of computational design. Computational design is, according to Maeda, design that uses the fabric of anything involving computing, sensing and actuating. In his view, computational designers would not, at least in the near future, replace ‘classical designers’ but simply work on different challenges.3
Another position is more down to earth: sure, coding skills are nice to have, a skill that facilitates the dialog with developers, but in practice, the place of graphic, UI and even UX designers is the wireframe, the mockup, the clickable prototype designed in Illustrator or (goosebumps) Photoshop; and more recently in Figma, Sketch or Invision, with the occasional venture into CSS or SASS territory.
I don’t mean to offer yet another take on this vexata quaestio, but rather to zoom out on the frameworks we adopt when we consider coding as a practice. I hope to indicate two paradigms which influence and reconfigure each other. I will refer to them as Learn to Code and Code to Learn.
A clarification, before we start: in this essay I use the terms ‘coding’, ‘programming’ and ‘hacking’ interchangeably as the difference between them and their relative hierarchy is often fuzzy and artificial. However, as I will explain, they are ideologically attached to the paradigms.
Learn to Code
At the beginning of 2019, a bunch of 4chan and Twitter users began to mock and harass some journalists who had been recently laid off from Buzzfeed and the Huffington Post. The journalists were told by these users that it was time for them to “learn to code.”5
The backstory: a few years before, US media called attention to an initiative to turn redundant coal miners into coders. Distrustful of the liberal press, social media users disseminated the Learn to Code meme to highlight the initiative’s inherent elitism and double standards: it’s OK when miners are asked to retrain, it’s not OK when journalists have to do it. The former are seen as a human resource to allocate, the latter as individuals with agency.
Truth be told, a quiz published in 2014 on Buzzfeed was already ironically problematizing the Learn to Code imperative.5 The format was simple: you were asked to identify yourself in order to find out if you needed to learn to code or not. As a reflection of Buzzfeed’s hallmark absurdist humor the categories included “feminist,” “Michael Bloomberg,” “homeless,” and, of course, “designer.” The quiz’s response to the latter was that they must also learn to code, because Fast Company says so.6
The gist of the joke was that everyone was required to learn to code—except for Barack Obama, who was then too busy being President of the United States (but not too busy to tell students to program their phones instead of just playing with them).
In 2021, the economic imperative to train and retrain has never been so strong. After the pandemic’s dramatic impact on artists’ economies, a skepticism about ‘creative’ work is emerging, portraying it as unproductive daydreaming, and a wholly unessential industry. The emphasis is now on hard labor and effectiveness. A misunderstood ad captures the sentiment pretty well: it shows a picture of a ballerina tying her shoes, with the following headline: “Fatima’s next job could be in cyber (she just doesn’t know it yet).”7
The fundamental idea of Learn to Code is that the ability to program is a historical necessity for people working at a useless or obsolete job, and that these people must serve the economic imperatives of capitalism. This servitude is referred to as ‘retraining’. At a 2019 rally, Joe Biden condescendingly told a crowd of redundant miners: “Anybody who can throw coal into a furnace can learn how to program, for God’s sake!” Nobody clapped.8
Perhaps it is useful at this point to briefly reiterate the distinction between coders and programmers. While programmers are recognized as having an acknowledged and relatively arcane expertise with a correspondingly high salary, coding is increasingly perceived as semi-skilled labor. The programmer belongs to a profession, the coder to a workforce.
Back to design. Currently, public recognition of graphic designers is not so different from that of journalists.9 Both are now perceived as entire professions that it would be good to automate once and for all. Jobs meant to become buttons.
In 2014, German media theorist Florian Cramer dissected the various meanings of the term ‘post-digital’. One of them was “the contemporary disenchantment with digital information systems and media gadgets.”11 The Learn to Code meme suggests that disenchantment does not only revolve around the tools of the trade, but also around the trade itself. Coding, in the light of retraining, doesn’t seem to be so emancipating.
Another understanding of post-digital Cramer highlighted has to do with the revival of old media. This might be a bit of a stretch, but what is more ‘old media’, more 20th-century, than the idea of a workforce to be forged for the good of the nation? Of course, the Learn to Code narrative hints at the fact that jobs, skills and aspirations do not exist in a vacuum. However, due to a combination of disenchantment with programming and old-media labor rhetoric, coding emerges as a post-digital manifestation of capitalist realism, forcing graphic designers, journalists and coal miners alike to deal with their situations. All of them must go through mandatory updates, just like software. Is programming itself immune to this logic? Not really, it would seem, as the angelus novus of AI promises or threatens (depending on whom you ask) to automate the coder as well.12
Code to Learn
Learning with Computers
In a time when much is being said about the creativity of autonomous AI-powered machines, it is good to reconsider Licklider’s notion of human-computer symbiosis.16 When you code, you instruct the computer to execute a more or less complex task, which is then immediately performed. You do not always know what to expect: the result might awe or disappoint you, allowing you to reorient or even redefine your initial goal.17 Part of the symbiosis is intrinsic to the language shared by user and machine—namely, code. Creativity unfolds through this micro-iterative learning process: it is neither in the mind nor in the machine, but rather in the continuous scripted dialogue between the subject and their extensions.18 The computer is just one of those extensions, but a particularly powerful one, since it is, to use Alan Kay’s term, a metamedium, that is, a medium capable of simulating all others. As such the computer should be a thing that can be shaped and transformed. When it becomes less malleable, the computer is fixed within a stable media, which is perhaps more efficient, but also less surprising, less ‘creative.’ You do more but you learn less.
Fundamentally, creativity is a question of time. Mostly of our daily activity with computers happens through hopefully speedy but ossified software. We use the computer in “speedrun mode.”19 This is the paradox of creative coding: the coding part is supposed to make things faster, the creative part requires that things go slowly. According to permacomputing principles, one might say that Learn to Code is very ‘yang’, and Code to Learn does also value the ‘yin’: it “accepts the aspects that are beyond rational control and comprehension. Rationality gets supported by intuition. The relationship with the system is more bidirectional, emphasizing experimentation and observation.”20
Learning Through Computers
Coding does not just manifest as a relationship between a user and a computer, but also between users through computers. Users exchanging techniques in real life or on StackOverflow, appreciating each others’ solutions, using coding as an excuse to just hang out, or building upon each other’s tools.21 The input of this process is patience and a capacity for listening; the output is fun and a sense of belonging.
Coding can also be a bridge linking us to past users. We see this in Ted Davis’ assignment to recreate pioneering computer works22 or with the Re-programmed Art Project, where a series of contemporary designers reinterpreted ‘analog’ works of the Italian collective Gruppo T, active in the 1960s.23
Coding as a Craft
While Learn to Code turns coding into a resumé-ready skill, Code to Learn is about coding as a craft. My understanding of craft is wide-ranging: “a good job well done,” as Sennett defines it.24 A craft is a savoir faire that is capable of stabilizing and consolidating one’s identity. In a time when designers are urged to constantly decorate their bio with strategic labels, a craft is a reflective activity, in the sense that the crafted things and the tools for crafting are a reflection of their maker, who generally recognizes themselves in them. This is also true of coding. As Roberto Arista, creator of the Python for Designers course, puts it:
Programming then can become a way to escape [the confinement of desktop publishing software], connecting different regions and patiently rebuilding the workshop within the tools that effectively destroyed these regions.25
The craftsperson enters their own physical or digital workshop—a local hackerspace, a custom i3 setup, a DIY CMS—and feels at home. This is where they code and learn, learn and code. This is where they can forget, for a while at least, if they are lucky, the pressures and economic necessities of daily life.
Without neglecting Learn to Code’s stressful refrain of employability and professional obsolescence, Code to Learn helps by considering the coding activity in itself, and not merely as an inevitable destiny. Opting for one model over the other in a graphic design school also means determining how to teach programming. When I speak of coding in and of itself I do not mean it as an index of technical notions (variables, loops, etc.). That is precisely the instrumental reduction of the Learn to Code attitude. Rather, I mean it in a broader sense: coding as a social activity and a cultural domain. This is what Code to Learn is all about.
The author wishes to thank Roel Roscam Abbing, Danny Van der Kleij, Raphaël Bastide, mara and sejo for their precious feedback.
1 See for instance Sarah Garcin’s interview.
3 https://www.youtube.com/watch?v=JGGAitirfRY. See also Liz Stinson, “John Maeda: If You Want to Survive in Design, You Better Learn to Code.” Wired, 2017: https://www.wired.com/2017/03/john-maeda-want-survive-design-better-learn-code/.
5 Katie Notopoulos, “Should You Learn To Code?” Buzzfeed, February, 10, 2014. https://www.buzzfeednews.com/article/katienotopoulos/should-you-learn-to-code.
6 Scott Sullivan, “Designers: Learn To Code! Here’s How To Start,” Fast Company, December 21, 2013: https://www.fastcompany.com/1672655/designers-learn-to-code-heres-how-to-start.
7 The ad actually dates back to 2019 and was part of a broader campaign. Taken out of context in 2021, it was thought to be specifically targeting artists. Apart from its actual meaning, the indignation it raised highlights the tension surrounding creative and artistic work. See https://twitter.com/nick_pettigrew/status/1315597228367585281.
10 Graphic Designers Surveyed, Lucienne Roberts, Nikandre Kopcke, Stefanie Posavec et al. ed., (London: GraphicDesign&, 2015), 166-7.
11 Florian Cramer, “What Is ‘Post-Digital’?” , Postdigital Aesthetics, David Berry, Michael Dieter, ed., (London: Palgrave Macmillan, 2015). Also accessible via http://post-digital.projects.cavi.au.dk/?p=599.
13 Ted Nelson, Computer Lib/Dream Machines, (Chicago: Hugo’s Book Service, 1974).
15 Yes, HTML is also coding: “[…] when you write a web page in HTML, you are creating a data model that will be interpreted by the browser. This is what programming is.” in Paul Ford, “‘Real’ Programming is an Elitist Myth,” Wired, 2020. https://www.wired.com/story/databases-coding-real-programming-myth/.
16 J. C. R. Licklider, “Man-Computer Symbiosis,” in IRE Transactions on Human Factors in Electronics HFE-1, no. 1 (March 1960): 4–11.
17 A classic example being the concise BASIC program
10 PRINT CHR$(205.5+RND(1)); : GOTO 10. Try it with an emulator or an actual Commodore 64 ;).
18 In fact, one can go as far as to say the mind exists as the relationship between a subject’s cognition and the extensions they use.
20 Ville-Matias “Viznut” Heikkilä, Permacomputing, 2020: http://viznut.fi/texts-en/permacomputing.html..
21 This becomes apparent with, for example, Dinamo’s computational tools for type design. Or, with feminist server collectives like systerserver and anarchaserver; mara, who is part of their group, tells me: “We share terminal sessions with tmux so we can help each other with commands and configuration of the server. We also frequently communicate via mailing list to share tips or suggestions or problems.”
22 Davis mentions this assignment in his interview.
24 Richard Sennett, The Craftsman, (London: Penguin Books, 2009).
25 Roberto Arista, “Interfaces Are a Solid Object,” Python for Designers, 2020: https://pythonfordesigners.com/chapters/interfaces-are-a-solid-object/.