DEV Community

Cover image for Upgrade your learning + an example study plan for data structures and algorithms
Kat  ๐Ÿ†๐Ÿพ
Kat ๐Ÿ†๐Ÿพ

Posted on

Upgrade your learning + an example study plan for data structures and algorithms

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 on Coursera. 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 is crucial for understanding difficult material.
โ—๏ธYou can use the 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.


Committing material from your Short Term Memory (STM) into your Long Term Memory (LTM) takes time, which is why tackling procrastination is of the highest priority. Overcome procrastination by focusing on process vs. product (e.g. by using the 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 by using the following techniques:

  • Time
    • Be aware that saving something in your LTM will take time. Be patient with yourself.
  • Deliberate practice
    • 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
    • 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
    • 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 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:
    • 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
    • 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:

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:

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.


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.

Top comments (3)

miku86 profile image

Do you actually use Spaced Repetition?

I once had a big set of Anki cards,
but I found out, that most of the stuff is pretty useless,
if I don't use it in "production".

So using something in production is implicit spaced repetition.

Nowadays I explain stuff to myself in ELI5 mode, to see if I actually understand the concept behind it. And I give workshops, that's also great for repetition.

codebalance profile image
Kat ๐Ÿ†๐Ÿพ • Edited

1.) I haven't used spaced repetition much so far in my life, but the few times I used it (on vocabulary) it was a very effective method. I wrote this blog post because I struggle with retaining information and I want to change that - both in computer science but also in Brazilian Jiu-Jitsu. So, I'm going to try it out and will let you know how it goes!
2.) I agree that a lot of information gets lost unless it is used continuously (your brain is eagerly garbage collecting while you sleep ๐Ÿ˜›) and that work experience is the best way to become an expert in your current field of work.

There are a few situations though where work experience won't cover what you'd like to learn & remember, and where spaced repetition might come in handy:

  • Personally, I have a hard time remembering abstract concepts, details, and terminology related to work, which makes me look less professional in meetings. I don't have much time to dive deep into those concepts at work, so I'm planning to brush up on those at home and use spaced repetition to remember the most important points.
  • I want to transition to another job or field and need to learn something I don't currently use at work. For me, these are currently: Datastructures & Algorithms to pass interviews, ML & AI, Fullstack web development.

What are your thoughts on that? And, what is ELI5 mode?

miku86 profile image

With "work", I mean things we work at in our lifes, not actually things we do at work.

ELI5 = Explain it Like I'm 5 (years old). I learned a lot from teaching kids & teenagers. They ask more often when they don't understand something, while they often have less knowledge than adults. So when they get it, I think I did a good job and understood the concept too. Explaining to elderly person goes the same route.