Upgrade your learning + an example study plan for data structures and algorithms
Tags: todayilearned, 30daysofwriting, personaldevelopment, beginners
Published: 2019-11-18 20:34:40

---
cover_image: https://media.giphy.com/media/TdAJ1T1ESmkCOCuOJQ/giphy.gif
---

Being an engineer means embracing lifelong learning. That's why taking a closer look at your learning methods and taking steps to improve them can help you become a better engineer.

The following is a summary of techniques that can help you master the material you're studying in a shorter amount of time - taken from the course [Learning How To Learn](https://www.coursera.org/learn/learning-how-to-learn/) on [Coursera](https://www.coursera.org/). I do highly recommend the (free!) course to get a better understanding of the concepts and how they fit together.

Scroll down to get an example of how to apply those techniques to studying data structures and algorithms.

## The path from novice to expert

### 🙇🏻‍♀️🎮🙇🏻‍♀️🏃🏻‍♀️🙇🏻‍♀️ Understanding material: Alternate between focused & diffuse mode
Switch between focusing on the material you're learning (focused mode) and taking breaks where you focus on something else or where your mind gets to wander around (diffuse mode, e.g. going on a walk/run, cooking, playing, relaxing, taking a nap, etc.)

❗️Alternating between [focused mode & diffuse mode thinking](https://www.youtube.com/watch?v=lJtUg-3DfUk) is crucial for understanding difficult material.
❗️You can use the [Pomodoro technique](https://en.wikipedia.org/wiki/Pomodoro_Technique) to help you alternate between focusing on the material, and taking regular breaks.

### 💾 Remembering material: Commit material into your Long Term Memory (LTM)
Once you understand the material, you have to commit it to your LTM to achieve true mastery.

#### Procrastination

Committing material from your [Short Term Memory (STM) into your Long Term Memory (LTM)](https://www.youtube.com/watch?v=0egaPpfFFLI) takes time, which is why [tackling procrastination](https://www.youtube.com/watch?v=bDz7bUor51c) is of the highest priority. Overcome procrastination by focusing on [process vs. product](https://www.youtube.com/watch?v=yS2gCgjSq3U) (e.g. by using the [Pomodoro technique](https://en.wikipedia.org/wiki/Pomodoro_Technique)).

#### Methods to commit material into your LTM
❌ Just wanting to learn the material and spending a lot of time with it doesn't guarantee that you'll learn it. 

❗️Avoid the [illusion of competence](https://www.youtube.com/watch?v=Pxi6siZeF6w) by using the following techniques:
* Time
  * Be aware that saving something in your LTM will take time. Be patient with yourself.
* [Deliberate practice](https://www.youtube.com/watch?v=hw8kHY9Pfn4)
  * Deliberately choose to practice what you find most difficult to grasp until it clicks and sticks.
* Spaced repetition
  * You need to repeat the material spaced over days and weeks for it to get safely stored in your LTM.
* [Recalling](https://www.youtube.com/watch?v=Pxi6siZeF6w&t=92s)
  * Avoid the illusion of competence by *continuously* testing yourself on the material you're learning.
  * Close your book and try to remember what you just learned.
  * Practice recalling in various locations to be able to access the material no matter where you are.
  * Try to recall the material one more time right before going to bed.
* [Sleep](https://www.youtube.com/watch?v=b2wxhG2viWc)
  * Does not only make you more beautiful but also flushes out toxins from your brain and strengthens the neural pathways you create when you learn something new.
* Tap into your visual memory system & senses
  * Your visual memory system is extremely powerful and can be used to save knowledge in your LTM in a shorter amount of time.
  * Make a metaphor/visual image for the concept you're learning.
  * Use the [memory palace technique](https://en.wikipedia.org/wiki/Method_of_loci) to place the image into an imagined space/house/village.
  * Try to use your senses to memorize it if possible (vision, smell, touch, hearing, smelling).

### 🔗🎨 Increase your knowledge base & apply it creatively

* Create [chunks](https://www.youtube.com/watch?v=PxLHWgQ0cHk):
  * Start small with mini-chunks, little by little. 
  * Connect the mini-chunks into more complex, bigger chunks through practice & repetition, and by using big-picture thinking.
* [Interleaving](https://www.youtube.com/watch?v=J4YazZUXT_A)
  * Use interleaving to learn *when* you should use a certain technique/concept and to enhance creative thinking.

## Example Study Plan: Datastructures and Algorithms
❗️At all times: 
  * Alternate between focused mode & diffuse mode.
  * If you struggle with procrastination, use the Pomodoro technique.
  * Make sure you sleep & eat well, and get regular exercise.

**1. Step:** Get an understanding of data structures and algorithms by going through a course, reading books, and taking notes. Vary the sources you're learning from to enhance your understanding. Here is a list of courses:
  * [Data Structures and Algorithms Specialization](https://www.coursera.org/specializations/data-structures-algorithms), University of California San Diego
  * [Algorithms, Part 1](https://www.coursera.org/learn/algorithms-part1), Princeton University
  * [Algorithms, Part 2](https://www.coursera.org/learn/algorithms-part2), Princeton University
  * [Algorithms Specialization](https://www.coursera.org/specializations/algorithms), Stanford University
  * [Data Structures & Algorithms](https://www.udacity.com/course/data-structures-and-algorithms-nanodegree--nd256), Udacity

**2. Step:** Write index cards from your notes with important facts. For example:
  * "List all searching algorithms"
  * "What's the Dijkstra algorithm"
  * "What is the time & space complexity of binary search"

**3. Step:** Recall & deliberate practice.
  * Use your notes & index cards to test yourself repeatedly, spaced over time, until you remember all the facts.
    * Recall the material one last time before going to bed.
    * Recall material at various places, e.g. when commuting, at a cafe, in a different room, etc.
  * Deliberately practice material that you find difficult to grasp by doing exercises. My preferred way to practice is using the following resources:
    * [CodeSignal](https://app.codesignal.com/signup/BCTXJe6pi89ruzqdr/main)
    * [Cracking the Coding Interview](http://www.crackingthecodinginterview.com/)

**4. Step:** As you build a library of small chunks of knowledge, take a step back and try to understand the big picture of everything you've learned so far, and how things are connected.

**👩🏻‍🏫 Repeat Steps 1 - 4 until you are a master in data structures and algorithms.**

### Summary
Using scientifically proven learning techniques can be tedious and time-costly if you're not used to them. But as you keep practicing and applying these methods to everything you're trying to learn, you'll save a significant amount of time in the long run and will be able to achieve true mastery in your chosen field of study.