I’m nearly at the halfway point of my challenge  to learn MIT’s computer science curriculum in 12 months. I decided to put together a short video explaining what my daily routine looks like, and also share some of the tactics I’ve been using to learn at a faster pace.
Learning MIT at 4x the Pace
After having completed a degree at a regular university, I was surprised to find that learning faster is actually easier if you’re not in school. There are a lot of methods I’ve been able to use to speed up the process which are cumbersome in a normal academic environment.
Are these speed ups legitimate? After all, if an actual MIT student has access to everything I do, how could I possibly learn faster using fewer resources? To explain how that’s possible, let me explain how the challenge works.
From the beginning, my goal was to pick a basis of evaluation that could get close to MIT’s actual curriculum. In the end, I settled for final exams and programming assignments. It’s not perfect, but my goal was to get as close as possible to the evaluation MIT uses, while being flexible in how I actually learn the material.
You may argue that, as evaluation tools, these miss some elements of learning, but I’d say they’re a pretty good approximation. They account for the majority of an MIT student’s GPA and they cover the almost everything taught.
The advantage of a non-traditional learning method isn’t in what it includes, but what it leaves out. With a fairly quick evaluation method, I can be more creative in using assignments, lectures, recitations and problem sets to extract the majority of the value in substantially less time.
Despite being the main vehicle for scientific progress, universities are hardly a model of pedagogic excellence. The standard teaching format in most schools has changed little in the last few hundred years, despite new scientific results showing those methods are often inefficient.
A simple example of this is the lecture format. I can extract huge time savings by not watching lectures at their normal speed. By speeding up the lecture to 1.5-2x the pace, I can save nearly 20 hours of work, with just one change. (Note: you can do this by downloading the lecture, then using VLC Player  to speed up the playback rate)
Yes, this makes lectures harder to follow, but because I can rewind and rewatch, that isn’t a big problem. If you’re taking a class you’re properly prepared for, it should only be minor sections that cause confusion—why not carefully rewatch those sections and speed up the rest?
Turn Assignments into Deliberate Practice
Assignments and problem sets are another area that can be hacked. Research shows  immediate feedback and targeted practice are essential elements in rapid skill building. So why do the assignments in-order and wait weeks to get your results?
I usually do assignments out of order, focusing on questions on the hardest possible topics, or on the core skills I sense I need to master most. I also check the solutions immediately after working on a problem, to improve the feedback mechanism.
Under this view, assignments are all about preparing you and serving as an outlet for deliberate practice, not just busywork that needs to be completed.
Recursive VS Iterative Learning
Most students learn in an iterative fashion—take lesson one, master it, then move onto lesson two. The academic system basically enforces this method of learning since lessons and homework are trickled out in lockstep.
There are two weaknesses with this approach. First, you don’t get to see how early concepts are going to be applied to later ones. Second, it doesn’t allow you to invest your time in the topics you find most challenging, instead you conform to the pace of the group.
I prefer a recursive strategy. First I “learn” the entire course material, which usually doesn’t mean I’ve mastered it, but I understand the basic principles. Then I recursively deepen my understanding on harder topics until I’ve mastered it. This deepening can be done by deliberate practice in problems as mentioned previously or by using intuition-generating methods like the Feynman Technique .
How Can You Apply These Methods?
It might be an interesting experiment to see if there are more efficient ways to learn, but you might wonder how it’s useful. After all, if you’re an actual student, assignments and attendance are often mandatory and rarely can be done in the out-of-order, rapid-feedback ways I’m suggesting.
But imagine spending a month to do what I’m suggesting, and master the concepts of your classes using free resources from Stanford , Harvard  or MIT ? The rest of the semester would be significantly easier if you’d already learned 80% of the course in the first few weeks.
Not everyone can learn a class in one week, even with the methods I’m describing. But I’m certainly not 4x as smart as an MIT student, so at least some of the advantage has to be structural, not just intellectual.
Changing the Costs of Learning
I know a lot of otherwise intelligent people (typically businesspeople) that scoff at learning from a university. It’s too academic, devoid of real-world implications or theoretical for their liking.
I suspect a lot of their distaste comes from the normally high cost in time and money it takes to learn. If you could learn twice as fast, with complete flexibility and zero cost, would that change your perspective of whether learning calculus, finance or genetics is worthwhile?
When mainframes still took up a warehouse, many intelligent people couldn’t imagine why anyone would want a personal computer. Now we have them in our phones. If education were to become free and less time consuming, what would stop you from learning?
I don’t know if free education will change the world. But it has at least changed my life. I’ve already started downloading the resources for graduate classes on quantum computing  and machine learning  I want to take once my challenge is over, and I’m looking forward to classes in physics , brain science  and biology . Why not you too?