(Sometimes) it’s good to reinvent the wheel

Probably the best learning technique

Adam Grabek
grabek.io
3 min readSep 12, 2017

--

Learning new techniques, patterns and concepts like SOLID, Domain Driven Design, Command Query Responsibility Segregation or Event Sourcing is definitely hard when the only source of knowledge is the internet, books, and Youtube videos. It’s hard for basically two reasons. The first one is simple and brutal — those things aren’t exactly trivial. The second reason is more has a psychological background.

When writers try to pass useful information they often suffer Curse of Knowledge.

Many sensible strategies fail to drive action because executives formulate them in sweeping, general language. “Achieving customer delight!” “Becoming the most efficient manufacturer!” “Unlocking shareholder value!” One explanation for executives’ love affair with vague strategy statements relates to a phenomenon called the curse of knowledge. Top executives have had years of immersion in the logic and conventions of business, so when they speak abstractly, they are simply summarizing the wealth of concrete data in their heads. But frontline employees, who aren’t privy to the underlying meaning, hear only opaque phrases. As a result, the strategies being touted don’t stick

— The Curse of Knowledge - Chip Heath, Dan Heath, Harward Business Review

To summarise, people tend to have hard time imaging that some could not know what they already know. This makes most of the source material about advanced programming hard to comprehend for someone that has no experience in those fields. Even if the author has best intentions and deep knowledge of the subject, it’s often hard to escape the curse of knowledge. There are of course exceptions and exceptionally good and clear books and publications exist.

I would never expect that every blog author will do an extensive study about how his post will be received by the target audience, I will be just glad that is devoting some of his time to push the community forward. It’s us — learners that need to put more effort into understanding all the building blocks that we need in order to understand a new concept.

My intention is to convince you that reinventing the wheel can be essential learning technique and will extend your understanding beyond knowing what should be done to why it should be done is a certain way.

It’s not about inventing a better way to do things — of course, it’s good to try, you never know what you will discover, but the more important thing is to fail multiple times and come to the same conclusions that other came to before us. Nothing will give you a deeper understanding of idea than discovering it on your own. It’s difficult and frustrating process but equally beneficial.

Always, when I find that some idea that is used with success feels awkward to me I try to fight it. Not because I think it’s wrong but to understand what problems it solves. In a majority of cases revelation comes after those failed attempts to invent something better and suddenly everything is clear and not awkward anymore.

Going back to the Curse of Knowledge — advanced concepts that you want to learn will be much easier to grasp if you will have experience in dealing with smaller aspects of the idea. This will fill the blanks that result from the fact that some of them were obvious to the author’s which publications you read. Now those will be obvious for you too, at least some of them.

--

--

Adam Grabek
grabek.io

Software architect at Code Mine. Fan of DDD and good UX.