Madeline Miller's Circe: Describing the sorcery of programming 
Tags: programming, literature, circe, learningtocode
Published: 2020-01-12 01:57:45

---
title:  Madeline Miller's Circe: Describing the sorcery of programming 
description: Madeline Miller provides powerful metaphors for the magic of programming
published: true
tags: programming, literature, circe, learningtocode
---

I've spent the better part of a decade teaching people to code and one of the hardest questions I've encountered is "What's it like when you're doing it right?" What's it like to know that this `class` is too big? What's it like to not be sure you can learn a new framework "in time?" What's it like when you find the thing you needed, but which had eluded you, had been discovered a generation ago, but was forgotten, lain silent and fallow in a far off land?

A great source for these metaphors is literature; the humanities. Far too often downplayed if not outright scoffed by the pedagogy and disciples of the Computer Science mainstream, fiction can provide us the metaphors of the shape of the feeling that most aptly applies. I found a number of wonderful passages about creating in Madeline Miller's examination of the Odyssey / Minoan Myths, _Circe_ (full review [here](https://stevengharms.com/books/2020-01-11-circe-by-madeline-miller/)).

Circe is a sorceress and her language for describing her craft rang exceedingly familiar to me for my own. Here are some metaphors that might serve you well too. Do a quick `s/(witchcraft|sorcery)/programming/g` and you'll be surprised by how many of the quotes still apply.

>   Let me say what sorcery is not: it is not divine power, which comes with a thought and a blink. It must be made and worked, planned and searched out, dug up, dried, chopped and ground, cooked, spoken over, and sung.  Even after all that, it can fail, as gods do not. If my herbs are not fresh enough, if my attention falters, if my will is weak, the draughts go stale and rancid in my hands (p. 83).


>   Witchcraft is nothing but such drudgery (p. 84).


>   Day upon patient day, you must throw out your errors and being again. So why did I not mind? Why did none of us mind (p. 84)?

> Then I learned that I could bend the world to my will, as a bow is bet for an arrow. I would have done that toil a thousand times to keep such power in my hands. I thought: this is how Zeus felt when he first lifted the thunderbolt (p. 84).

> Each spell was a mountain to be climbed anew. All I could carry with me from last time was the knowledge that it could be done (p. 85).

>  I would like the whole business of it [loom-weaving], the simplicity and skill at once, the smell of the wood, the shush of the shuttle, the satisfying way weft stacked upon weft. It was a little like spell-work, I thought for your hands must be busy, and your mind sharp and free (p. 155).

> Of course not, he said, it has been hidden in the foundation, but look, there it is, plain as day. See the cracked beam? See the beetles eating the floor? See how the stone is sinking into the swamp?...When there is rot in the walls, there is only one remedy...Tear down, I thought. Tear down and build again (p. 192).

Every creator knows these metaphors. I hope they provide you a sense of equanimity when considering where you and your code, your spells, fit within the great narrative of creating. Worse comes to worse, they're some great email signature quotes. :)