Computers should not be black boxes but rather understood as engines for creating powerful and persuasive models of the world around us.
Matthew Kirschenbaum
Humanities students should learn to code—not to become a programmer, but to deepen the way we think and engage with digital tools. As Matthew Kirschenbaum observes, digital tools are often treated as opaque ‘black boxes’, and we accept their output without question. Learning to code lets us interrogate these systems. We understand how models are built, how assumptions shape their output, and how interpretation is encoded. Coding, in this sense, becomes a method for creating and critiquing models, closely aligned with humanistic inquiry. Beyond technical skill, it is a way to analyze and represent ideas interactively.
I’ve seen how these skills enhance a humanistic mindset from my coding experience. Tools like interactive visualizations and mapping applications not only make research faster and more accessible, but also embed choices about data and representation. Understanding code allows students to see what happens behind the interface, critique it, and contribute to designing an experience that captures nuanced humanistic ideas. Even without being a ‘coder’ in a project, having coding knowledge improves how students communicate and collaborate effectively.
For example, even a simple interactive script can make a text dynamic and engage readers:
Hover over a generated quote to highlight it
<!DOCTYPE html>
<html>
<head>
<style>
#quote {
padding: 10px;
font-family: Consolas, monospace;
transition: background-color 0.3s;
}
#quote:hover {
background-color: #fff9a6;
}
button {
margin-top: 10px;
padding: 8px 12px;
font-size: 16px;
}
</style>
<script>
const quotes = [
"Computers should not be black boxes but rather understood as engines for creating powerful and persuasive models of the world around us.",
"All programming entails world-making, as the ritual act of writing and running Hello World reminds us.",
"Procedural literacy, …, will be essential if humanities students are to understand virtual worlds as rhetorical and ideological spaces…"
];
function generateQuotes() {
const q = quotes[Math.floor(Math.random() * quotes.length)];
document.getElementById("quote").innerText = q;
}
</script>
</head>
<body>
<button onclick="generateQuotes()">Generate a quote</button>
<p id="quote">Hover over a generated quote to highlight it</p>
</body>
</html>
This example shows that coding is not just about functionality—it’s about thinking critically and representing ideas dynamically. In digital humanities, these skills help students understand tools deeply, communicate insights, and shape digital environments that reflect complex humanistic knowledge. Coding is both a tool and a mindset for exploring and expanding the humanities.
I think you make an excellent point: for humanities students, learning to code can facilitate communication and collaboration across a team. Programming skills help humanities researchers understand both the power and the limitations of the tools. With a clearer understanding of the tools at hand, collaboration between humanities researchers and technical team members on digital humanities projects will be smoother. A group of more informed humanities researchers can then make meaningful contributions to the development of their projects.
I really like how you used your code example to demonstrate the point you are making in your post. Through the use of coding, you have made something that, while basic to prove a point, successfully communicates ideas. This, to me, really exemplifies why humanities students should learn to code. Much like writing is a tool to communicate ideas on paper, coding is tool to communicate ideas digitally.
The use of “coder” and “having coding knowledge” was a good distinction, I liked it. I agree that engaging with digital tools in a meaningful way is crucial, not just accepting things at face value. It gives us a deeper understanding and allows us to better utilize what we are given. The increased efficiency at which a project will run is always a nice bonus.