Reinvent the Wheel. As Many Times as You Need
Reinventing the wheel is a valid learning strategy, and the friction you feel while doing it is the learning itself.
Available in: EN· PT
Reinventing the wheel is a valid learning strategy. The standard advice points the other way. Don’t reinvent it. Reach for what already exists. Ship faster. That advice works when your goal is delivery. When your goal is learning, it gets in the way.
The feeling of learning is not learning
A lot of people in this industry confuse the two. They watch a tutorial at 1.5x, copy the final code, get the green checkmark, and move on. The dopamine is real. The understanding is not. Six weeks later they cannot rebuild the smallest piece of it from memory because they never built it in the first place.
Learning has a physical cost. Your brain is rewiring itself, and rewiring resists. You feel that resistance as frustration, as the pull to open another tab and find a shorter path. That feeling is not a sign that something is wrong. It is the signal that the rewiring is happening.
Avoiding the feeling means avoiding the learning. There is no shortcut around the friction because the friction is the work.
Efficiency is the wrong target while learning
Efficiency makes sense when you already understand the territory. You optimize a process you have run a hundred times. You skip steps you know do not matter. You reach for the library because you know what would be in it if you had to write it yourself.
When you are still learning, you have none of that context. Skipping steps means skipping the parts that would have taught you which steps mattered. Reaching for the library means trusting an abstraction you have no way to evaluate. You arrive at the destination without learning the road. That works if you only ever need to be there once. It stops working the next time the road changes.
This is not an argument against tools or libraries or shortcuts. It is an argument against using them as a substitute for understanding while you are still trying to understand.
What real learning looks like
When I am trying to learn something for real, I stop caring about how fast I get to a working result. I care about whether I can explain, in my own words, what every part of what I am studying is doing and why it is there. If I cannot, I stop and dig until I can.
This is slow. It feels inefficient. The first thing I build is almost always worse than something I could have copied. That is fine. The point of the first thing was never the thing. The point was the version of me that exists after building it.
Three weeks of struggling with a problem nobody else has to struggle with anymore is not wasted time. You walk out with a model in your head, not a checklist of steps you memorized. Every time you hit something unfamiliar after that, the model adapts. The checklist breaks.
The trap of “efficient learning”
There are real, better ways to learn. Spaced repetition. Active recall. Building projects that actually matter to you. Picking the right thing to focus on. Learning is not a free-for-all where every approach is equally good.
The trap is when “efficient learning” becomes code for avoiding the parts that hurt. The well-organized notes you never actually use. The course you finished without writing a line of code yourself. Plenty of activity that feels like progress and produces nothing.
Productive friction looks like working through a problem until your understanding shifts. Unproductive friction looks like staring at the same wall for two days without anything moving. Knowing the difference takes practice. You get that practice by sitting in the friction long enough to recognize what is moving and what is not.
The version of you on the other side
Reinventing the wheel does not produce a better wheel. It produces a developer who understands wheels. The next time you see one, you do not need a tutorial to use it. You already know what it is and where it breaks.
Whoever avoids the friction of learning also avoids the learning. There is no version of this where you get the result without paying for it. Decide what you actually want to know. Then accept the price.