转贴:一年内自学4年MIT计算机科学的33门课程并通过MIT的实际测试,英文版

Mastering Linear Algebra in 10 Days: Astounding Experiments in Ultra-Learning
Patterns of Success for Students, Patterns of Success for the Working WorldStudy HacksOctober 26th. 2012, 7:00am

The MIT Challenge

My friend Scott Young recently finished an astounding feat: he completed all 33 courses in MIT’s fabled computer science curriculum, from Linear Algebra to Theory of Computation, in less than one year. More importantly, he did it all on his own, watching the lectures online and evaluating himself using the actual exams. (See Scott’s FAQ page for the details of how he ran this challenge.)

That works out to around 1 course every 1.5 weeks.

As you know, I’m convinced that the ability to master complicated information quickly is crucial for building a remarkable career (see my new book as well as here and here). So, naturally, I had to ask Scott to share his secrets with us. Fortunately, he agreed.

Below is a detailed guest post, written by Scott, that drills down to the exact techniques he used (including specific examples) to pull off his MIT Challenge.

Take it away Scott…

How I Tamed MIT’s Computer Science Curriculum, By Scott Young
I’ve always been excited by the prospect of learning faster. Being good at things matters. Expertise and mastery give you the career capital to earn more money and enjoy lifestyle perks. If being good is the goal, learning is how you get there.

Despite the advantages of learning faster, most people seem reluctant to learn how to learn. Maybe it’s because we don’t believe it’s possible, that learning speed is solely the domain of good genes or talent.

While there will always be people with unfair advantages, the research shows the method you use to learn matters a lot. Deeper levels of processing and spaced repetition can, in some cases, double your efficiency. Indeed the research in deliberate practice shows us that without the right method, learning can plateau forever.

Today I want to share the strategy I used to compress the ideas from a 4-year MIT computer science curriculum down to 12 months. This strategy was honed over 33 classes, figuring out what worked and what didn’t in the method for learning faster.

Why Cramming Doesn’t Work

Many student might scoff at the idea of learning a 4-year program in a quarter of the time. After all, couldn’t you just cram for every exam and pass without understanding anything?

Unfortunately this strategy doesn’t work. First, MITs exams rely heavily on problem solving, often with unseen problem types. Second, MIT courses are highly cumulative, even if you could sneak by one exam through memorization, the seventh class in a series would be impossible to follow.

Instead of memorizing, I had to find a way to speed up the process of understanding itself.

Can You Speed Up Understanding?

We’ve all had those, “Aha!” moments when we finally get an idea. The problem is most of us don’t have a systematic way of finding them. The typical process a student goes through in learning is to follow a lectures, read a book and, failing that, grind out practice questions or reread notes.

Without a system, understanding faster seems impossible. After all, the mental mechanisms for generating insights are completely hidden.

Worse, understanding is hardly an on/off switch. It’s like layers of an onion, from very superficial insights to the deep understandings that underpin scientific revolutions. Peeling that onion is often a poorly understood process.

The first step is to demystify the process. Getting insights to deepen your understanding largely amounts to two things:

Making connections
Debugging errors
Connections are important because they provide an access point for understanding an idea. I struggled with the Fourier transform until I realized it was turning pressure to pitch or radiation to color. Insights like these are often making connections between something you do understand and the material you don’t.

Debugging errors is also important because often you make mistakes because you’re missing knowledge or have an incorrect picture. A poor understanding is like a buggy software program. If you can debug yourself in an efficient way, you can greatly accelerate the learning process.

Doing these two things, forming accurate connections and debugging errors, is most of creating a deep understanding. Mechanical skill and memorized facts also help, but generally only when they sit upon the foundation of a solid intuition about the subject.

The Drilldown Method: A Strategy for Learning Faster
During the yearlong pursuit, I perfected a method for peeling those layers of deep understanding faster. I’ve since used it on topics in math, biology, physics, economics and engineering. With just a few modifications, it also works well for practical skills such as programming, design or languages.

Here’s the basic structure of the method:

Coverage
Practice
Insight
I’ll explain each stage and how you can go through them as efficiently as possible, while giving detailed examples of how I used them in actual classes.

Stage One: Coverage

You can’t plan an attack if you don’t have a map of the terrain. Therefore the first step in learning anything deeply, is to get a general sense of what you need to learn.

For a class, this means watching lectures or reading textbooks. For self-learning it might mean reading several books on the topic and doing research.

A mistake students often make is believing this stage is the most important. In many ways this is the least efficient stage because the amount you can learn per unit of time invested is much lower. I often found it useful to speed up this part so that I would have more time to spend on the latter two steps.

If you’re watching video lectures, a great way to do this is to watch them at 1.5x or 2x the speed. This can be done easily by downloading the video and then using the speed-up feature on a player like VLC. I’d watch semester-long courses in two days, via this method.

If you’re reading a book, I would recommend against highlighting. This is processes the information at a low level of depth and is inefficient in the long run. A better method would be to take sparse notes while reading, or do a one-paragraph summary after you read each major section.

Here’s an example of notes I took while doing readings for a class in machine vision.

Stage Two: Practice

Practice problems are huge for boosting your understanding, but there are two main efficiency traps you can get caught in if you’re not careful.

#1 – Not Getting Immediate Feedback

The research is clear: if you want to learn, you need immediate feedback. The best way to do this is to go question-by-question with the solution key in hand. Once you’ve finished a question, check yourself against the provided solutions. Practice without feedback, or with delayed feedback, drastically hinders effectiveness.

#2 – Grinding Problems

Like the students who fall into the trap of believing that most learning occurs in the classroom, some students believe understanding is generated mostly from practice questions. While you can eventually build an understanding simply by grinding through practice, it’s slow and inefficient.

Practice problems should be used to highlight areas you need to develop a better intuition for. Then techniques like the Feynman technique, which I’ll discuss, handle that process much more efficiently.

Non-technical subjects, ones where you mostly need to understand concepts, not solve problems, can often get away with minimal practice problem work. In these subjects, you’re better off spending more time on the third phase, developing insight.

Stage Three: Insight

The goal of coverage and practice questions is to get you to a point where you know what you don’t understand. This isn’t as easy as it sounds. Often you can be mistaken into believing you understand something, but don’t, or you might not feel confident with a general subject, but not see specifically what is missing.

This next technique, which I call the Feynman technique is about narrowing down those gaps even further. Often when you can identify precisely what you don’t understand, that gives you the tools to fill the gap. It’s the large gaps in understanding which are hardest to fill.

The technique also has a dual purpose. Even when you do understand an idea, it provides you opportunities to create more connections, so you can drill down to a deeper understanding.

The Feynman Technique
I first got the idea from this method from the Nobel prize winning physicist, Richard Feynman. In his autobiography, he describes himself struggling with a hard research paper. His solution was to go meticulously through the supporting material until he understood everything that was required to understand the hard idea.

This technique works similarly. By digesting the big hairy idea you don’t understand into small chunks, and learning those chunks, you can eventually fill every gap that would otherwise prevent you from learning it.

For a video tutorial of this technique, watch this short video.

The technique is simple:

Get a piece of paper
Write at the top the idea or process you want to understand
Explain the idea, as if you were teaching it to someone else
What’s crucial is that the third step will likely repeat some areas of the idea you already understand. However, eventually you’ll reach a stopping point where you can’t explain. That’s the precise gap in your understanding that you need to fill.

From that gap, you can research the answer from a textbook, teacher or online. Generally, once you’ve narrowly defined your misunderstanding it becomes much easier to find the precise answer.

I’ve used this technique hundreds of times, and I’ve found it can tackle a wide variety different learning situations. However, since each might be slightly different, it may seem hard to apply as a beginner, so I’ll try to walk through some different examples.

For Ideas You Don’t Get At All

The way I handle this is to go through the technique but have the textbook open to the chapter explaining that concept. Then I go through and meticulously copy both the author’s explanation, but also try to elaborate and clarify it for myself. This “guided” Feynman can be useful when trying to write anything on your own would be impossible.

Here’s an example I used for trying to understand photogrammetry.

For Procedures

You can also use the method to fully understand a process you need to use. Go through all the steps and explain not only what they do, but how they execute it. I would often go through proof techniques by carefully explaining all the steps. I also used it in understanding chemical equations or in organizing the stages of glycolysis in biology.

You can see this example I used when trying to figure out how to implement grid acceleration.

For Formulas

Formulas should be understood, not just memorized. So when you see a formula, but can’t understand how it works, try walking through each part with a Feynman.

Here’s an example I used for the Fourier analysis equation.

For Checking Your Memory

Feynmans also offer a way to self-test your knowledge of the big ideas for non-technical subjects. Being able to finish a Feynman on a topic without referencing the source material means you understand and can remember it.

Here’s one I did for an economics class, recalling the concept of predatory pricing.

Developing a Deeper Intuition
Combined with practice questions, the Feynman technique can peel those first few layers of understanding. But it can also drill deeper if you want to go from not just having an understanding, but to having a deep intuition.

Understanding an idea intuitively isn’t easy. Once again, getting to this point is often seen as a quasi-mystical process. But it doesn’t have to be. Most intuitions about an idea break down into one of the following types:

Analogies – You understand an idea by correctly recognizing an important similarity between it and an easier-to-understand idea.
Visualizations – Abstract ideas often become useful intuitions when we can form a mental picture of them. Even if the picture is just an incomplete representation of a larger, and more varied, idea.
Simplifications – A famous scientist once said that if you couldn’t explain something to your grandmother, you don’t fully understand it. Simplification is the art of strengthening those connections between basic components and complex ideas.
You can use the Feynman technique as a way of encouraging these types of insights. Once you’ve gotten past a basic understanding of the idea, the next step is to go further and see if you can explain it using some combination of the three methods above.

The truth is plagiarism is okay too, and not every insight needs to be unique. Understanding complex numbers as being two dimensional is hardly original, but it allows a useful visualization. DNA replication working like a one-way zipper is not a perfect analogy, but so long as you understand where it overlaps, it becomes a useful one.

The Strategy to Learn Faster

Learning faster doesn’t need to be a trick to work well. It simply means recognizing what is actually going on when we reach a new level of insight and finding tools to help us reach those stages consistently.

In this article I described learning as being three stages: coverage, practice and insight. This gives the false impression that these three occur always in distinct phases and never overlap or repeat.

In truth you may find yourself going between them in a loop as you successfully peel down to deeper layers of understanding. The first time you read a chapter you may get only superficial insights, but after doing practice questions and building intuitions, you may go back and read for deeper understandings.

Applying the Drilldown Method for Non-Students

This process isn’t one you need to be a student to apply. It also works for learning complex skills or building expertise on a topic.

For skills like programming or design, most people follow the first two stages. They read a book teaching them the basics, then they practice with a project. You can extend that process however, and use the Feynman technique to better lock in and articulate the insights you create.

For expertise on a topic, the only difference is that, prior to doing coverage, you need to find a set of material to learn from. That could be research articles or several books on the topic. In either case, once you’ve defined the chunk of knowledge you want to master, you can drill down and learn it deeply.

To find out more about this, join Scott’s newsletter and you’ll get a free copy of his rapid learning ebook (and a set of detailed case studies of how other learners have used these techniques).