Spaced repetition really works

sep 13, 2023

Spaced repetition is the practice of learning with flashcards reviewed at increasingly longer intervals.

The logic behind it is that when you are first exposed to a piece of information, you are prone to forget it quickly, but revisiting it you will remember it for longer periods, and thus it's not necessary to review it as often.

This approach is widely used to learn new languages, and multiple scientific studies have proven it to be extremely effective.

This is all cool, but I was a bit of a skeptic. The reason is that people learning with Anki were generally extremely motivated and were spending a lot of time creating their decks, and these are the kind of people who are good at learning, with or without spaced repetition.

I needed proof, subjective proof, and I found it.

Last year, my friend Maria wanted to get her Spanish nationality, for which she had to take a test. The test has a pool of 300 questions from which 30 are chosen, and you are only allowed 3 mistakes. Some questions are extremely easy, but others are difficult even for a Spaniard. They ask about some facts such as who wrote some book, or what is someone known for.

The exam was due in one month, and Maria was pretty scared. She had been studying for weeks, but there were some questions she kept getting wrong, and it was hard to go through the whole list of 300 questions, names got mixed in her head.

I suggested giving spaced repetition a try.

I extracted a CSV from the PDF, and created an Anki deck which I later loaded on her phone with AnkiDroid, and she started reviewing the deck on her phone, going through the questions on her spare time.

The result was incredible. Of course, she aced the test. But not only that, in one or two weeks all her fear had faded, she was learning the whole deck, and she knew it.

This experience proved two things to me:

  1. Spaced repetition works. The science is right.
  1. You don't need to create your own decks. As long as cards are atomic, have the right context and are shown in the right order, there is no extra effort a learner needs to do.

This was my aha moment, and that's when I registered the domain python.cards.

Not all programmers realize how beneficial it is to know their language better. It's not only about coding faster or saving some Google searches, it's about boosting your confidence and having a solid understanding of your tool. It's about reaching higher levels of proficiency.

Experienced programmers master their language by being exposed to it for years, but there is a shortcut: spaced repetition.