explain this deeply i don't understand :  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:

Learn multivariable calculus
Learn linear algebra
Learn basic computer science fundamentals
Learn about general machine learning concepts
Learn about computer vision concepts
Learn how to code in Python (a coding language commonly used for machine learning)
Learn how to use TensorFlow (a special machine learning library for Python)
Learn how computer vision is applied to create self-driving car software
Learn how to write Python and TensorFlow code to build the relevant programs
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:

I start with a specific, well-documented example of my end goal
I try to understand how this example works
For everything I don’t understand about the example, I research the underlying concepts
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)
Eventually, I pigeonhole down enough different paths to start seeing patterns in the important underlying concepts
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
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:

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)
Work my way line-by-line through the code
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
Identify patterns in what I’m constantly looking up / researching and determine the most important foundational concepts
Study these foundational concepts
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…