Learning to program in C is relatively easy, up to a point. But most self-taught learners bog down at pointers, one of the more difficult programming concepts. When I taught C pointers, I first described how they worked in C language terms. Then in computer architecture terms (most students had a computer architecture class by then). And I could see that around 40% of the class didn\’t get it. I went home and described my despair to my wife. Then a wonderful coincidence happened. That night I read Lewis Carroll\’s “Alice in Wonderland”, the section about the song, what the song\’s called, the name of the song, and what the name\’s called. It\’s a perfect matchup for pointers. The next class I read it to the class and could see that most of them comprehended.
Next time I might use the card catalog in a library as an analogy. The card is not the book, it points to where the book is stored.
Postscript: my wife, a therapist, sees that section as a description of a parentified child propping up an alcoholic father. Good teaching stories contain more than one lesson.