David Epstein's Range is the antithesis of the 10,000 hour rule. Whereas the 10,000 hour rule tells us that excellence is a result of early specialization, Range argues that instead of pursuing deep expertise, we should seek breadth in our skills and knowledge. For example, did you know that Nobel laureates are more likely to have interests in arts and other fields compared to their peers?
In this post, I'll discuss the key lessons software developers can take away from Range.
All section headings are quotes from the book.
"Frustration is not a sign you are not learning, but ease is"
Continuous learning is not an option for software developers who want to stay relevant as the technology landscape keeps on changing. Here is what Range teaches us about productive learning:
First, the more mistakes you are able to tolerate when learning new things, the better you are going to remember the new information even as time passes. This phenomenon is referred to as the hypercorrection effect. Hypercorrection effect is so powerful that educators say struggle is more important than repetition when it comes to efficient learning.
Second, you should practice "spacing" and "interleaving" when learning. Spacing means leaving time between practice sessions. Its effectiveness is somewhat related to the hypercorrection effect: with spacing, you add struggle to your learning and therefore help yourself remember things better in the long run.
Interleaving refers to mixed practice, and it's the opposite of focusing on one type of problem when practicing – i.e. "blocking." Blockers perform better than interleavers during practice sessions but when interleavers and blockers are given new problem scenarios, interleavers surpass blockers.
"Compare yourself to yourself yesterday, not to younger people who aren't you"
Career switchers are not a rare sight among software developers (I'm a career switcher myself). When you start a new career as an adult, it's easy to feel like others have a head start over you. At your workplace, you look around and see younger people who seem to know twice as much about software as you do. Meanwhile, your past colleagues in your old field are comfortably moving up the career ladder. You might think to yourself if switching careers was such a smart choice after all.
When The Dark Horse Project researchers started looking for high-flyers from different professions, they soon discovered that the majority of their interviewees had unconventional career paths. It was much more likely for a person to be a career switcher than a person who had pursued the same professional goals from early adulthood. Throughout their professional lives, these "dark horses" had been on a lookout for opportunities that could be a good match for them. They were concerned much more about matching their interests and skills with different opportunities as opposed to "falling behind" when switching professions.
"There is no such thing as a master-key that will unlock all doors"
When you become highly skilled in one domain, you also become inflexible in thought and behavior. When the problems you are used to solving change even slightly, your expertise can become a hindrance. This is referred to as "cognitive entrenchment."
If you want to avoid cognitive entrenchment, you could learn a new programming language or a new domain instead of specializing in one domain or language.
As is the case with learning, what's good for you in the short term can be harmful in the long term.
Range contains much more lessons and interesting food for thought about topics such as grit and innovation than this post tries to cover. If you are wondering whether to add Range to your reading list or not, here's a link The New York Times review of the book. I personally recommend this book for everyone who is facing external or internal pressure to specialize instead of choosing the path of a generalist.