On the benefits of humanities in software engineering
Read More Boring Poetry
No Newsletter Next Week
I'm frantically working on next Wednesday's TLA+ Workshop. I started making it last month and it's occupied all my time since.
Originally this newsletter was going to be about the essential vs accidental complexity in teaching a topic, but a couple of things intervened to change that. I'll probably save that one for after Strange Loop.1
On the benefits of humanities in software engineering
So as you'd expect from someone who built most of his reputation on Twitter and newsletters, I'm extremely internet poisoned. And two bits of internet poisoning inspired a sudden change in the newsletter topic.
- A couple weeks back there was a big fight between famous internet economist Noah Smith and perpetual-Hillel-favorite internet historian Bret Devereaux. As far as I can tell it was about history being bad about making predictions and not realizing it? I dunno.
- This tweet:
1992: The humanities are useless. Study STEM.
— Al Peṭṭerson (@eyelessgame) September 9, 2022
2002: The humanities are useless. Study STEM.
2012: The humanities are useless. Study STEM.
2022: Why are nazis suddenly about to take over?
The spectrum of online discourse: one hand, humanities aren't science enough to be worthwhile. On the other, the reduction of it to moral edicts, as if Nazis are just people who didn't read enough Heidegger. As a deep lover of the humanities,2 I'm not sure which is worse. I wish the defenders of humanity weren't so cringe.
But this is a newsletter for programming, not internet poisoning. So any defense of the humanities should stay on-topic, and be about defending it to software engineers. So does learning humanities benefit software engineers?
I have no idea.
Humanities is fundamentally about the human condition, and the hope of it is that it'll enrich your experience of living as a human being. But life is much broader than our vocations. I can enthusiastically recommend the humanities to software engineers, because people deserve to learn beautiful things, but that's not an argument for why it benefits software engineering.
It'd be nice to leave it at that, but implicit in the "humanities don't help our jobs" is the more extreme claim "humanities aren't worth learning." People have only finite time and universities only finite resources, and any defense of a field of knowledge must be defended in terms of "how is this useful" to us." Otherwise it gets relegated to a toy for rich elites.
So I'm going to try to defend the Practical Value of humanities anyway, despite not actually being that confident I can. Ah well, it's not like we have a body of work about dangers of hubris, anyway.
What are the humanities, anyway?
Very roughly, humanities is the study of the "soft output" of human works. This is an overly general description with all sorts of flaws, but it's good enough for this newsletter. But also, humanities as a subject is very broad. All of these count as humanities:
- The history of science
- Cinema studies
- Latin
- Medieval literature
- Folk dances
- Gender studies
- Philosophy of language
- Video game critique
Already we can see why the "you need humanities for morals" argument falls flat: it's predicated on humanities being about virtue when the vast majority of it simply isn't. Learning to appreciate opera or jazz better does not make you a more ethical person. Even learning ethics doesn't make you a more ethical person, just gives you a better understanding of what people think about ethics. The Nazis loved their humanities too.
hitler was a prolific reader and would bore your ears off with his culture takes. stalin's library was full of annotations and notes on everything from history to linguistics to novels. mao wrote poetry. even saddam hussein was a romance novelist
— James Palmer (@BeijingPalmer) September 11, 2022
Second, it makes defending the value of the humanities even more enormous a task. What argument would prove the value of philosophy, theatre studies, and ceramics to the software engineer? It's more likely that all of the fields create value in different ways. At the very least, we need to draw a difference between humanities involved in producing things and in studying them. Art history probably has benefits more in line with philosophy and classics than it does with painting. I'd suspect that the "studying things" fields are more "stereotypically humanities" than the "producing things" field, which is often spun off into its being "creative arts".
Third, it means you don't have to learn humanities the "conventional" way. If there's some value to humanities as a disparate collection of disciplines, you don't need to learn Greek classics or study poetry to access those benefits. Which is good, as it makes stuff much more accessible. If you haven't had good luck learning humanities, maybe you just need to find the right field?
...Okay, two hours and a Zenzedi overdose later and I think I see an approach. Let's do this before I come to my senses.
Theories of Knowledge
My basic argument for learning to humanities is this:
- Studying literature, philosophy, history, etc involves a very different way of thinking about the world than studying software
- The more kinds of ways you can think about things, the better.
Re (1), it's just easier to give an example. In one of his essays on Lord of the Rings Bret Devereaux notes that pre-battle speeches by WWII commanders seem remarkably similar in structure to pre-battle Roman speeches. But all of our examples of Roman speeches are from their literature, not transcriptions of actual speeches, so why should we assume they're similar to the actual battle speeches? Here's his explanation:
Crucially, pre-battle speeches, alone among the standard kinds of rhetoric, refuse to follow the standard formulas of Greek and Roman rhetoric. […] Greek and Roman oratory was, by the first century or so, quite well developed and relatively formulaic, even rigid, in structure. The temptation to adapt these speeches, when committing them to a written history, to the forms of every other kind of oratory must have been intense, and yet they remain clearly distinct. It is certainly not because the genre of the battle speech was more interesting in a literary sense than other forms of rhetoric, because oh my it wasn’t. The most logical explanation to me has always been that they continue to remain distinct because however artificial the versions of battle speeches we get in literature are, they are tethered to the ‘real thing’ in fundamental ways. [...] in these societies military service was the pride of the elite, meaning that the literate were more likely both to know what a battle actually looked like and to have their expectations shaped by war literature than the commons.
Here's the chain of thinking:
- Greek and Roman oratory has a very predictable structure, as seen in our records
- Military speeches are the one exception, so there must be something "unique" about them
- Most elites in Roman society had fought and were presumably familiar with real military speeches
- It's exceedingly likely the recorded speeches are different because they're intended to look "accurate"
- So we can assume the recorded speeches reflect the actual form and structure of the real deal.
Notice what evidence he gathered for this conclusion: first familiarizing himself with the body of work, enough to see the recognize the tropes, then recognizing a subset of that work which consistently avoids those tropes, and then relating that to what we know about the wider context. This kind of active study and comparison of sources isn't common outside the humanities, just as running controlled experiments isn't common outside of sciences.
Humanities are also very focused on the reification of vague ideas into concrete concepts. Do you remember learning the differences between "simile" and "metaphor" in elementary school? Why does the distinction matter? Because distinction is a skill. Defining simile and metaphor means creating two subcategories of imagery and showing that they're nearly identical but consistently different in a specific way. You see this kind of reification in other disciplines, too, but I've found it's especially common in creative analysis.
(My favorite example of this is Rock of Tahamaat. Presented as a tabletop role-playing game, its rules are designed to distinguish the concepts of action intent, initiation, execution, and effect.)
So humanities-studies present different ways of thinking about the world; are these ways useful for software engineering? I don't think they're "necessary", simply because the vast majority of software developers don't have a liberal arts grounding. And I can't with certainty say that the training would be useful for most people. But I know it's been useful for me. Some ways:
- Determining unstated assumptions in a persuasive argument, noticing sloppy research practices that reduce their credibility, or recognizing the signs of crackpottery.
- Turning a vague collection of thoughts into a concrete idea, like Software Artifacts or Mimicry.
- Hunting down the original context of a practice to see if it's different from my current context.
- Seeing that people are using the same word to mean different things.
- Compare and contrast different professional disciplines and learn what lessons we can apply to software development.
- Understanding what leads to a text "feeling" a certain way, like "heavy-handed" or "clean".
- Evaluating moral claims, like "using a dynamically typed language is unethical" or "you must write efficient code to prevent climate change".
Notice most of these aren't about programming, they're about the broader work I do in support of software development. It makes sense that "tangential" skills are important. Most obviously, you don't need to know English to program, but it helps a lot if you want to be good at it!
(Eh, that's a cheap shot. Here's a better example: my favorite software book is Data and Reality. Lots of people told me it's changed how they think about software development. It's also a philosophy book. People don't notice that because they expect philosophy to be metaphysics and ethics and stuff and not "how should we store data.")
This is all really tempting me to write more "humanities-oriented" blog posts, beyond the usual history stuff I do. There's a bunch of drafts already in my slush pile, maybe I should go through that after the conf.
Holy crap this is already 1700 words I could have been polishing my TLA+ workshop BYE GUYS
-
If you see me at strangeloop, come say hi! I'll have homemade chocolates! ↩
-
My first book was dedicated to a college philosophy teacher and I cried when Bernard Silberman died. ↩
If you're reading this on the web, you can subscribe here. Updates are once a week. My main website is here.
My new book, Logic for Programmers, is now in early access! Get it here.