After completing the MIT Challenge  I got an unusual critique. The complaint was that I shouldn’t have looked at solutions after working through problems. Great thinkers like Newton or Euler, this critic’s reasoning goes, didn’t have access to solutions and they understood the ideas better than anyone. The best process to learn something, he argued, is to prove it for yourself.
This may seem plausible, but it quickly becomes absurd if you dig deeper. Discovery is orders of magnitude more difficult than learning second-hand. Fourier fought for years to prove and win acceptance of a mathematical formula  we now teach to college sophomores. Any method which takes a genius decades is likely less efficient than one which takes a clever college student a semester.
Even the scientific pioneers of today are only able to build their accomplishments after spending thousands of hours learning the theories before them. I’ve heard of only a handful of important discoveries that weren’t made by researchers who hadn’t first studied the prior work.
Despite these flaws, the critique does raise one good point: discovery is not the same as learning. Just because you can study and pass an exam, doesn’t mean you can make new scientific discoveries. Newton didn’t uncover laws of motion by getting feedback from problem sets.
Where I differ from my detractor is that I believe this is okay: discovery is different from learning and therefore requires different skills. I would even go further—learning at different levels of expertise requires different skills. Expert learners and beginners face very different challenges, and as such, should use different strategies to learn efficiently.
Mastery and the First 20 Hours
My friend Josh Kaufman  recently published a book, The First 20 Hours , which document getting past the initial frustration barrier with a new skill. In contrast to the ten thousand hours supposedly required for expertise, Josh claims you can get comfortable after just twenty.
Josh correctly makes a distinction between the beginner phase of skill acquisition and mastery. Mastery isn’t just repeating the first twenty hours 500 times. Mastering a skill requires different strategies than beginner skill acquisition. When I first started learning French, each new conversation would introduce dozens of new words. Now, I have to push myself to find more nuanced ways of expressing myself instead of relying on the basics I mastered a long time ago.
Learning as a Beginner
The beginner has several advantages over the advanced learner, but also several weaknesses. Each of these weaknesses requires different strategies to overcome, and can halt progress if they’re ignored.
The first advantage for a beginner is simply the glut of learning opportunities. When you know nothing, it’s really easy to find something you haven’t learned yet.
I noticed this play out even over the small gap in skill level between my early courses in the MIT Challenge and my final courses. Vector calculus has hundreds of tutorials, explanations and guides online. Photogrammetry for machine vision has almost none.
The second advantage of being a beginner is that the biggest opportunities for performance improvement haven’t been used up yet. Understanding an obscure design pattern may help a programmer in a narrow instance, but understanding how a variable works is necessary to do almost anything.
The disadvantages of being a beginner include: a lack of context to see where knowledge learned fits into a bigger picture, low meta-knowledge on how to learn successfully in the domain, and negative feedback overwhelming the motivation to practice.
The disadvantages of a beginner are more easily hacked away than those of the expert, however, because they have more to do with finding good teachers, material and learning environments than structural difficulties.
In contrast to a beginner, advanced learners struggle under very different constraints. Now the context is known, feedback is generally positive and meta-learning strategies are already established. The difficulties are now structural.
Complacency is the biggest problem with advanced learning. In the beginning, simple participation was enough to ensure growth. Now just showing up merely maintains your skills at the past plateau. It takes deliberate practice to shift to the next level of ability.
Skill growth beyond the basics also becomes confusing for many pursuits. Going from terrible writer to passable is a straightforward process—simply write a lot and get feedback. Going from passable to great can be frustrating since that same recipe often leads to plateaus.
These shifts in obstacles from beginner to advanced necessitate different strategies for handling the different phases of learning.
Learning Efficiently as a Beginner
Beginners should take advantage of the glut of resources and unexploited big wins, but need to be careful about low-context environments, poor meta-skills and excessive negative feedback. Here are some strategies to cope:
1. Use the skill as early as possible.
You can get positive feedback and higher context just by actually using the skill you’re training in a practical environment. Early programmers should try to make something they want to build. Early language learners should try speaking to someone, or reading something they actually care about.
2. Slow down and break down.
When you don’t understand something, don’t just ignore it. Slow it down or break it down in order to understand better. This applies whether what you’re learning are new phrases or physics. Slow it down and break it into the components until you understand all the pieces.
3. Set up regular habits for practice.
If you can establish good habits  to practice your skill, gains will likely come easily. In the beginning, the danger of plateauing because of habits is minimal since even a suboptimal approach will often have enormous growth compared to later phases of learning. Habits also help you combat the negative feedback bias of new pursuits.
Learning Efficiently as an Advanced Learner
For advanced learners, the biggest challenge is that the skill isn’t too challenging anymore. Meta-skills and habits tend to calcify, stunting long-term growth. Here’s how to overcome it:
1. Separate work from practice.
In the beginning, all applications of your skill are practice. For advanced learners, however, this is no longer the case. Just because you write code all day doesn’t mean that this counts as “practice” in becoming a great programmer. Chances are 95%+ of that work is not pushing your skill to a new level but repeating what you have already mastered.
There are two main ways you can separate work from practice. The first is simply to do side projects. I believe that this is the most accessible alternative for anyone who isn’t prepared to quit their job or make drastic changes immediately. It is, however, a lot more work and requires strong time-management skills to execute.
The second way you can separate them is by changing your environment. Changing jobs to one which forces you to use different skills will shift you back to the beginner phase of learning once more. The weakness of this alternative is that adaptation to a new environment usually occurs faster than you should change jobs, and that not all new job opportunities will provide the skills you truly need to work on.
2. Set a “level up” goal.
One tactic to force yourself out of complacency is to set a goal to reach an even higher level. This will force you to make those uncomfortable changes to your habits in order to reach the new goal.
As an example of this, I could enroll to take a C2 exam  with my French to force myself to push up to that level. Currently, I’m under no pressure to improve dramatically, so my level stays at a comfort point. Publishing a book would have a similar effect on my writing, forcing me to reach a higher standard.
3. Learn complementary skills.
Expertise isn’t a singular proficiency but thousands of microskills and factual connections. Therefore improving expertise can be as simple as shifting to a highly related skill an practicing that.
See how the skill is compartmentalized and look for unexplored clusters of microskills that can be learned. If I wanted to improve my understanding of artificial intelligence, for example, I might decide to improve my linear algebra skills. If I wanted to get better at endurance running, I might train in swimming to practice my breathing.
There are two cautions to this approach, however. One is that learning a skill which is too far from your original mark may not be very efficient. If your goal is to write better, learning programming may be fun but it’s only weakly associated with those skills.
The second worry is in skills which have contradicting rules and conditions. If I decide to learn Italian, I’ll need to do extra work on my French to keep them separate since I may start inject Italian words into my French conversations by accident.
Navigating the Shift from Beginner to Expert
There are a couple signals you can monitor to assess your shift from the spectrum of beginner to expert. By watching for these clues, you can make adjustments to your strategy to avoid falling into to plateaus that come with advanced learning, but not burden yourself with those worries in the frustrating beginning phases.
The easiest signal to look for is simply how frustrating the activity is. If you find application of the skill to be comfortable, chances are you’ve graduated out of the beginner phase and should start considering the strategies for advanced learning.
The other signal is your growth of ability. If you’ve been practicing regularly, but your ability hasn’t grown visibly in the last few months, you should consider some of the strategies listed for advanced learners above. This can apply, even if you’re still finding the skill frustrating.
Should You Become an Expert?
I think it’s a mistake to commit to mastering every skill you start. Core career skills reap the highest rewards from mastery, but many others will still be rewarding at post-beginner levels of ability. Mastery takes 10-1000 times as much time as intermediacy does so you’ll likely only have time to truly master a handful of skills in a lifetime, even if you end up learning hundreds to a beginner level.
If you do decide to master a particular skill, one which your career will likely orbit around, then recognizing the difference in learning obstacles is important. The methods to reach a beginner or intermediate level aren’t the same as those to reach an advanced one. You’ll need to shift your strategy once the methods you used as a beginner stop working.