M2M Day 183: The “V-Method” — a better method for learning basically anything

Max Deutsch
4 min readMay 3, 2017

--

This post is part of Month to Master, a 12-month accelerated learning project. For May, my goal is to build the software part of a self-driving car.

The Linear Method of Learning

When attempting to understand a broad field of study (like the underlying computer science of self-driving cars), it’s often difficult to know where the right entry point is.

As a result, most people assume that the best path forward is to start with the basics, build up a general foundation of knowledge, and then continue towards finer and finer levels of detail.

I call this the Linear Method of Learning.

Using the linear method to learn the computer science of self-driving cars would look something like this:

  1. Learn multivariable calculus
  2. Learn linear algebra
  3. Learn basic computer science fundamentals
  4. Learn about general machine learning concepts
  5. Learn about computer vision concepts
  6. Learn how to code in Python (a coding language commonly used for machine learning)
  7. Learn how to use TensorFlow (a special machine learning library for Python)
  8. Learn how computer vision is applied to create self-driving car software
  9. Learn how to write Python and TensorFlow code to build the relevant programs
  10. Etc…

While this method may eventually work, it’s inefficient and probably not effective.

Firstly, if I start by learning multivariable calculus, how do I know which parts of multivariable calculus are relevant to self-driving cars and which parts aren’t? I don’t. So, I’ll have to learn all of it. Same for linear algebra, and computer science fundamentals, etc.

In other words, if I start with the most general pieces of knowledge, I have no way to prioritize what I’m learning, and so, I’m ultimately forcing myself to learn everything just in case.

Additionally, because I’m first learning the foundational concepts in a general, abstract sense, it’s much harder for me to relate what I’m learning to things I already know. Since effective learning is essentially figuring out how to attach new pieces of information to currently existing knowledge in a meaningful way, the Linear Method of Learning also fails in this regard.

So, while most people approach learning in this linear fashion, it’s a pretty poor method to actually learn anything in a reasonable timeframe.

The V-Method of Learning

Instead, I use a different method, which I call the V-Method of Learning.

Here’s how the V-Method of Learning works:

  1. I start with a specific, well-documented example of my end goal
  2. I try to understand how this example works
  3. For everything I don’t understand about the example, I research the underlying concepts
  4. If I don’t understand the underlying concepts, I research the underlying concepts of the underlying concepts, until I feel I’ve exhausted this path (either by reaching understanding or by reaching a point of diminishing returns)
  5. Eventually, I pigeonhole down enough different paths to start seeing patterns in the important underlying concepts
  6. I study these relevant underlying concepts, slowly working my way up the knowledge chain, until I’m back at the level of detail of the original example
  7. Finally, I reproduce the example based on my new hierarchical knowledge

I call this the “V-Method” because I start at the finest level of detail, dive deep towards the directly-applicable foundational concepts, and then work my way back up towards the finest level of detail — a conceptual V.

The V-Method is much more effective than the Linear Method because I’m able to 1. Learn in the order of relevance to my ultimate goal, 2. Learn the foundational concepts in the context of something tangible, and 3. Build and organize my knowledge in a hierarchical, interrelated way.

As a result, this method is much more efficient, effective, and engaging.

So, here’s how I plan to apply the V-Method to this month’s challenge:

  1. Look for sample, open-source self-driving car code on Github (Github is a popular repository for code, which basically means I can find a lot of other people’s software projects there)
  2. Work my way line-by-line through the code
  3. For every line of code I don’t understand at an intuitive level (which will be most of them), begin my descent through the layers of underlying concepts
  4. Identify patterns in what I’m constantly looking up / researching and determine the most important foundational concepts
  5. Study these foundational concepts
  6. Work my way back up the layers of underlying concepts until I can effectively explain to myself each line of code from the sample Github project

If this still sounds a bit confusing, hopefully it will start making more sense once I actually start.

My first step is to search Github for a good sample project…

Read the next post. Read the previous post.

Max Deutsch is an obsessive learner, product builder, guinea pig for Month to Master, and founder at Openmind.

If you want to follow along with Max’s year-long accelerated learning project, make sure to follow this Medium account.

--

--