Another beauty of sound-alikes is that you can build a story with its own logic, running parallel to the information you’re memorizing. That gives you another way to catch mistakes (i.e., error detection).[1][2]
For example, I memorized Python’s exception hierarchy[3] using an old Texas courthouse. The building’s floors represent inheritance, while the windows follow alphabetical order.
| Exception | What I see |
|---|---|
ArithmeticError |
Aretha Franklin at the corner |
↳ OverflowError |
Water overflowing from a window below her |
AssertionError |
An ass |
AttributeError |
A trebuchet |
BufferError |
WALL-E’s buffing robot |
LookupError |
My friend Luke |
↳ IndexError |
Dexter, one floor below Luke (they interact) |
NameError |
A horse neighing |
The ↳ entries are subclasses of the exception above them. The others are siblings, all inheriting directly from Python’s Exception class.
Notice how much I don’t have to memorize.
Take AttributeError.
Trebuchet starts with ‘T’ and is enough to remember the “tribute” part of attribute. I already know I’m in the A’s alphabetically, so the missing initial sound is supplied by context.
And the whole courthouse is devoted exclusively to Python’s exception hierarchy. I don’t need an image for the word-sound “Error” every time. Of course it’s an exception[3:1]. What the hell else would it be on this building?
Now suppose Dexter shows up beside Luke instead of below him. That contradicts the hierarchy. If the buffing robot comes before the trebuchet, that contradicts alphabetical order. And if an image changes enough that sounding it out no longer fits, that’s another clue.
The sounds, the sequence and the physical structure all help constrain what I can reasonably recall.
I mean you can sound out with your mouth the encoded information in the story, and only verbatim sound-alikes will make any sense to you. ↩︎
It’s not foolproof. The trick is giving yourself multiple ways to notice when something you’ve recalled doesn’t fit. ↩︎
For those unfamiliar with Python, exceptions are how the language signals errors and other unusual conditions. Your code can catch and handle them rather than simply crashing. The hierarchy organizes them into increasingly specific types. ↩︎ ↩︎