If you can't explain it, you don't understand it ๐ก
I have a love-hate relationship with teaching and explaining things.
On the one hand, explaining something puts me at risk of exposing that I don’t really know what I am talking about. “Better to remain silent and be thought a fool than to speak and to remove all doubt”, as the saying goes.
On the other hand, teaching is a great way to determine if you truly understand a subject. When you try to explain something, you will quickly discover any parts where your understanding is not as good as you thought.
In the inimitable words of Winnie the Pooh (A.A. Milne):
When you are a Bear of Very Little Brain, and you Think of Things, you find sometimes that a Thing which seemed very Thingish inside you is quite different when it gets out into the open and has other people looking at it.
I think the magic comes when you need to put words to things. It is quite easy to have a vague picture of something in your mind without realizing how vague it actually is. Putting things in words exposes that vagueness.1
Of course, this is not a new concept. In pedagogy, this is called learning by teaching and has been practiced since antiquity. Physicist Richard Feynman advocated explaining things in a way that a child could understand. (If you discover areas which you find hard to explain in simple terms, you know what you need to study further.) In programming, we do rubber duck debugging because articulating your problem to an inanimate object can help you find the cause.
In fact, because explaining things to others is such a good way test your understanding, I almost think it should be mandatory. If you want to do something but you cannot clearly explain what you want to do, maybe you’re not ready to start doing it?
Can you explain what you currently do to a child?
Featured comments #
glyn: I'd add that, sometimes, it's necessary to write some throw-away code to gain understanding. This is especially the case when I am blocked in writing one or more of the above documents.
-
Forcing me to put ideas into words is in fact the primary purpose of this blog. ↩︎