Karl Stolley: Source Literacy: A Vision of Craft

Karl Stolley, Illinois Institute of Technology


For the things we have to learn before we can do them, we learn by doing them. E.g., [people] become builders by building.
- Aristotle, Nicomachean Ethics, Book II, Chapter 1

“Program, or be Programmed.” That’s a dire warning. And being a firm believer in the importance of computational literacy, or source literacy as I prefer to call it, I’ve issued more than my fair share of dire warnings: What happens if we only write in other people’s apps, other people’s text boxes. What happens if we think ourselves so privileged as a field that we can pick and choose from the digital buffet of what will and will not be our concerns.

But for the sake of this short polemic, I won’t issue any dire warnings. I won’t make any direct appeals as to why every member of the Computers and Writing community should immediately learn to program. I won’t even want to argue with anyone about whether we should pursue source literacy. For me, the answer is an obvious and unqualified Yes. But debate or even sharing abstract ideas alone is not persuasive. When it comes to programming, like swimming or any other activity whose lived experience differs greatly from its perception or description, only hands-on, long-term experiences will persuade.

What I can offer here is my vision for the field of Computers and Writing. I want to share what it is that we could do and be if we all make learning to program a routine component of our writing and teaching. I will conclude with four things that each member of the field can do immediately to make this vision a reality.

My Vision

Do not automate the work you are engaged in, only the materials.
- Alan Kay, “Microelectronics and the Personal Computer" (244)

Because this is a vision, I’m going to use the present tense. Not the future tense.

My vision for Computers and Writing places craft at the center of what we do. And what we do is digital production. We make things from raw digital materials: open-source computer languages and open formats. Which is to say, we write digital things. To write digital things, we rely on a strong command of source literacy.


There are no language tricks with the verb write in this source-literate field I envision. Writing is not a metaphor to explain how writing is accomplished by clicking through a WYSIWYG that generates and automates our work for us. The verb write is literal.

Everyone, of course, writes with web standards: HTML, CSS, and JavaScript. Above all else, the field values digital projects that are accessible from any browser, on any device. In my vision, that value has become pervasive; it’s rare anymore to hear of a writing assignment that doesn’t require students to adhere closely to web standards.

And while debates rage over different markup and design patterns, the level of discourse and collaboration regarding digital craft has never been more sophisticated. In fact, in the field as I envision it, several members of the Computers and Writing community are now active participants in the working groups that oversee the development of web standards specifications.

But the really remarkable change has been the number and diversity of open-source software projects initiated and maintained by members of the field I envision. It’s unusual to find someone in Computers and Writing who doesn’t have a GitHub account and a favorite language, or who doesn’t attend the special interest group devoted to that language at the 4Cs each year.

From all of this digital production activity, there has been a renaissance in publishing on digital craft in our field. Numerous digital book titles by researchers in Computers and Writing routinely appear on must-read lists outside the field, especially for programmers and developers whose own professional practice has been greatly augmented by a rhetorical approach to thinking about and doing the work of digital craft.


How did this sense of craft emerge? By rejecting a model of computing that is suited to office cubicles and deskilled writers. By embracing, instead, a deep appreciation for the raw materials, the languages, of the digital medium, and seeing digital writing as more than the on-screen result of the machinations of commercial software.

“Craft,” in the words of Malcolm McCullough, “is commitment to the worth of personal knowledge” (246). It is commitment to research and learning over technical support and intuitive interfaces. Craft is ultimately the sense of taking responsibility for the digital writing that we unleash on the world. It is the thrill and wonder of watching our collective work emerge from the thousands of lines of hand-written source code that make up the eBooks and web applications that members of the field write every single year.


How to Make this Vision a Reality

Here are four means to making this vision a reality. But do not think of them as steps. Rather, think of them as representing a radical shift in digital production that centralizes craft: a shift that you either adopt, or reject.

1. Learn a Unix-like operating system at its command line.

Whether you have a shiny new Mac with the latest version of OS X or run Ubuntu Linux on an old computer you have laying around, the first step to source literacy is to get comfortable with relying on the keyboard to interact with the computer.

2. Commit to writing in a text editor with good syntax highlighting, and start writing HTML and CSS.

For everything. Old habits hold people back more than the challenges of learning something new. Even if ultimately you have to submit something, like a journal article, in Microsoft Word, do your composing in HTML.

3. Learn the distributed version control system Git, and establish a GitHub account.

Experimentation, expansive learning, and even simple revision are all impossible if we’re shackled to the regular file system of a computer, where versioning happens by renaming files. If the computer is, as Steve Jobs said, a bicycle for the mind, then Git is a time machine and guardian angel for the mind’s productive digital work.


4. Learn a couple of web-oriented, open-source programming languages.

JavaScript and Ruby are the two languages I wish everyone knew, on top of HTML and CSS. Despite its reputation, JavaScript has matured into an important language, as evidenced by server-side applications such as Node.js. Ruby, courtesy of development frameworks such as Rails and Sinatra, is quickly becoming the language of choice to power web applications. But Ruby has utility in many other domains, such as programming command-line applications that can extend and deepen command-line literacy beyond basic shell scripting.


I don’t expect any of this will be easy. I engage regularly in all four of the practices above, and have for many years. Yet I still consider myself a learner. And being a learner and valuing learning as itself both craft and challenge, I cannot help but summarily reject ‘ease’ as a measure of any craft that is valuable or worthwhile.