Because you’ll probably spend large amounts of your life learning, it’s really useful to know how to learn efficiently and effectively.

On learning

Some tips to learning:

  • Meta tip: Be patient. If you care about learning this particular subject well (which you probably will for only a few subjects), be willing to spend a little bit extra time.
  • Focus on intuition. It’s much easier to remember things if you have a feel for the how and the why.
  • Use multiple resources (and preferably multiple mediums). I like to think of it as encoding knowledge in multiple ways.
  • Use Spaced Repetition Systems to retain your knowledge (see next section). If you don’t know what spaced repetition systems are, scroll down to the bottom and read one of the first two resources there
Using Spaced Repetition Systems

Meta-Tip: Use your spaced repetition system to help you recall the intuition that you’ve hopefully learned.

When learning with spaced repetition systems, there’s 3 types of cards that I often create.

  1. Building block card: “What is a dictionary in Python?”
  2. Application card: “In Python, how would you initialize a dictionary called planets with keys “one”, “two”, “three” and values 1, 2, 3.
    • You can start to get too comfortable memorizing these, so I like editing these after 2-3 repetitions.
  3. Learn-this-later card: “Learn what a list is in Python.”
    • There will often be plenty of things that I don’t necessarily feel like learning now but want to learn eventually, and it’s helpful to have periodic reminders.

Tip 1: Think about card design as extracting knowledge that’s already in your head. You want to try to extract it in as many different ways as possible. If there’s a big chunk of knowledge that’s all connected, visualize the “shape” of the information (how all the different pieces interact), and think about your card making as extracting as many different sides of that bigger shape as possible.

Example: (speedrun https://youtu.be/aircAruvnKk if you don’t already have a very basic grasp of what a neural network looks like)

  • What is a weight?
  • What are the connections between neurons called?
  • What’s the difference between a weight and a neuron?
  • The connections between neurons in different layers are called [(cloze deletion)].
  • Envision a diagram of a neural network. Picture where the weights and neurons are.

Tip 2: Prefer cards that are “situation-oriented”. Your brain is an association machine, and this will help it recognize the right situations to apply your knowledge in the “real world”.

Example: “How do you find the max of all the values in a list named numbers in Python” - “max(numbers)“

is better than

”What does max(list_name) do?” “Find the max value in the list.”

Tip 3: (related to #1) This is something that’s hard to understand until you actually start learning something with a spaced repetition system, but be very attentive to and obsessive of the wording you use when designing cards. Based on the way you’ve learned the subject in the first place, certain phrases and word choices as more likely to evoke the intuition that you want to “extract”.

For way more tips and insights around using spaced repetition systems, visit at least the first 2 of the following links. They’re ordered in terms of how useful I think they’ll be.