Knowing Is Teaching, but Also Reinventing the Wheel

“What I cannot create, I do not understand.”

That’s one of the quotes on Richard Feynman’s blackboard at the time of his death. See the full picture here.

We truly have learned something when we can teach it. Feynman also said that we truly understand a subject when we can teach a beginner’s level lecture on that subject.

But that first quote reminded me of the famous mantra among programmers and coders: “don’t reinvent the wheel.”

Back in my first coding classes at university, one of my teachers taught us to write our own “Connection” class and use it wherever we go. We were learning how to connect to databases, probably using PHP or something.

Well, that wasn’t code reuse. That was reinventing the wheel and taking our reinvented wheel with us everywhere. We had ORMs in those days.

Reinventing the wheel is a bad idea. It only makes sense when learning to code or a new concept. Understand something, disassemble it, then recreate a simpler version. In fact, that’s the best way to learn coding.

The full quote should be “don’t reinvent the wheel. Only reinvent it to know how it works. Then use a real wheel.”

“You can only recreate what you understand” works in the other direction too. You only understand what you can recreate. You only understand the wheel you reinvent.