Us programmers are familiar with the concept of abstraction. When we see redundancies in our code, we gather the redundancies into a single thing, and reuse that thing over and over. It’s a simple idea, and one that programmers LOVE.
But this isn’t a post on the techniques or value of abstraction in computing. It’s on recognizing the power of abstraction as a general-purpose tool, and its superpower-like ability to make us smarter.
It make sense that programmers love abstraction. Our bodies and minds are abstracting machines.
Your body abstracts it’s common cellular needs (getting oxygen, getting nutrients, eliminating waste, etc.) into organs that specialize in completing these tasks on behalf of your whole body.
Your brain abstracts by building strong neural pathways for common activities so we don’t have to spend time and energy manually recalculating them. Riding a bicycle requires the orchestration of hundreds of muscles, driven by a stream of sensory input provided by a constantly changing environment. But once your brain abstracts these tasks into a bike-riding algorithm, you hop on a bike and ride around like it’s nothing.
To this point, abstraction can be defined as looking at series of one-off situations, recognizing a pattern between them, and codifying that pattern.
So lets talk about mental models.
My four-year-old is learning to read. One word that sometimes comes up in her children’s books is: Fade.
She knows the sounds that F and D makes, but A and E are tricky. They each have “long” and “short” sounds, not to mention that E could make a U (schwa) sound or be silent* (as it is in this case). That gives us at least 8 possible pronunciations of this word.
You might recommend just memorizing the word, given how common it is. But that’s only a temporary solution. Soon enough, she’ll come across a similar word:
That’s another word with 8 possible combinations to memorize. And then:
There’s another word with even more combinations!
We’ve now memorized 3 one-off words and it’s clear that continuing down this road will take a lot of effort. But there’s an easier way. If we are perceptive, we can recognize the pattern here: For words ending in E, the E makes the A say it’s name:
Yep, “a” says its name every time. And the E doesn’t make a sound, because that’s not its job. Its job is to tell the “a” what to say.
This abstraction gives us a superpower: Instead of memorizing one fact for one word, we memorize one fact that gives us the ability to pronounce new words we’ve never seen:
By applying the contrapositive (if there’s no E then it doesn’t make the A say it’s name), we can use the same rule to say even more words:
- Fade - Fad
- Male - Mal
- Cane - Can
- Hate - Hat
- Bane - Ban
- Pale - Pal
And by extrapolating into new vowels, we can expand our rule (to The E makes the vowel say it’s name), giving us the power to pronounce dozens of unfamiliar words:
- Site - Sit
- Fire - Fir
- Wine - Win
- Pope - Pop
- Note - Not
- Code - Cod
- Rune - Run
- Huge - Hug
- Cute - Cut
- Pete - Pet
- Mete - Met
- Here - Her
What a superpower we have now!
There is a cost. No abstraction is perfect, especially in the English language. We always have a few exceptions that fail to fit the pattern (in this case, we have words like “love” or “done”).
But the utility of this framework is proven. It’s better to memorize one rule and a couple exceptions than to memorize each individual case.
On seeking wisdom
This pronunciation example is instructive. It shows us how to go about gaining wisdom in a world where there’s a lot to know and not enough time to learn it all. In most disciplines, there are patterns that we can abstract and extrapolate to understand all sorts of behaviors. For example: supply-and-demand helps us understand everything from real-estate and movie-theater popcorn prices, to salary negotiation and stock exchanges. Studying supply-and-demand provides disproportional benefit for the effort required to learn it (compared to studying poetry, perhaps). It becomes a mental model we can use to evaluate things we see in the world.
Some other powerful mental models include:
- Evolutionary Psychology
- Feedback Loops
- Cognitive Biases
- Sunk Costs
- and lots more.
To me this is perhaps the biggest benefit of a general core education. Introductory courses in fields like psychology, biology, and economics would do well to surface these models early, so students can extrapolate them out and see the forces that are shaping the world.
And yeah, I think that’s a superpower. Understanding yourself and the world you live in gives you the knowledge you need to thrive. And thriving is good.
*the whole idea of silent letters is ridiculous, but that’s another discussion altogether