"Build your own X to understand it" is advice so common it has stopped meaning anything. I repeated it for years without being able to say why it worked, which is the same as not understanding it. So I built the wrong things, learned less than I told myself I was learning, and kept the slogan anyway.

Then I rebuilt a TCP echo server seven times, and somewhere in the middle of it I finally understood a sentence I had read for six years and never once been able to derive. That is when the advice stopped being a slogan and turned into a method with rules.

The claim I actually believe now is narrower and stranger than the slogan. You don't understand a system until you've rebuilt a worse version of it. Not read about it, not even read its source. Rebuilt it, badly, with your own hands. And it matters which parts you get wrong.

Three ways to know a thing

We lump three different things together under the word "understand," and they are not the same thing at all.