Top-Down and Bottom-Up Learning

Which should you choose: top-down or bottom-up learning? Spoiler: it’s really up to you to determine which will be more motivating. There was a good thread of comments on an article posted on Hacker News around procrastination and how it could be more of “an emotional management problem” than a time management problem. Figuring out how you learn best could help prevent procrastination as well.

Side note: I think us younger generations tend to look for quick fixes to problems over resolving what is causing the problem. Productivity tools are a good example where companies are offering solutions, but we can easily abuse them if they don’t help us overcome why we are not productive in the first place. This is a funny TED talk by Tim Urban called “Inside the mind of a master procrastinator” that I recommend:

That was a bit of procrastinating there but let’s get back to “learning”. Say you wanted to learn how to build web applications using Go. Everyone would approach this differently and most of us would probably take a hybrid approach between top and bottom.

Top-Down Approach

A person using the top-down approach would be Googling phrases like this:

This strategy is designed to get you productive and building web apps quickly. A person using this strategy would typically look for code samples that accomplish specific tasks like how routing works with parameters or how to use middleware to secure an endpoint. This strategy works really well to keep people engaged because you see a lot of progress with a little bit of effort. That is motivating and makes people want to keep growing and learning.

Bottom-Up Approach

A person using the top-down approach would be Googling phrases like this:

This strategy starts with the foundation and the language basics and may not even touch on web apps yet because there is so much to learn about the language itself like how to loop over arrays, how to spawn a thread, and how to not shoot yourself in the foot when you are copying and pasting code from GitHub. This strategy does not appear to be very productive because you typically don’t have anything to show for the effort for a longer period of time.

Hybrid Approach

Most people will probably use a mix of both approaches to learn. They will start with a tour to understand the basic syntax and constructs of the Go language, follow an article to build a web application, find a code sample to help understand the differences between pointers and values, test out a web framework like Echo to see how other people are building web apps, and then finally they may read the entire Go spec and browse the Go standard library to see what’s available. This last approach can be done in a few hours so if you are interested in learning Go, that’s how I would/did learn it.

Which to Choose?

You should pick the approach that has the highest rate of success for you. Some people would like to learn everything they can before they start (bottom-up), and others love building quickly and learning the nuances as they go (top-down).

If you get distracted, discouraged, or lose interest easily, start with the top-down approach because you’ll get satisfaction quickly that can help fuel you each step of the way. Grant Cardone wrote a book called The 10X Rule: The Only Difference Between Success and Failure which talks about motivation and how successful people aren’t motivated all the time. They are successful because they start an activity without the motivation and know that once they are started, the act itself will create a surge of motivation that will help propel them forward. The trick is to just start coding and maybe you’ll get a surge of motivation along the way.

If you are someone who has to understand all the options before you start or doesn’t like when they find out they’ve been doing something the hard way for a while, the bottom-up approach will lay that foundation so once you do start building, you’ve got the confidence upfront that you’re not missing something silly.

#learn #go