DEV Community

Cover image for Spaced Repetition Studying with Anki
Martin Graham
Martin Graham

Posted on

Spaced Repetition Studying with Anki

My brand new study tool - spaced repetition with Anki

I just completed my second assessment at LaunchSchool and thought I would take a moment to highlight a study tool I was introduced to during the prepwork - spaced repetition studying using Anki. For clarification, Anki is an open-source implementation of the SRS technique - I'm not familiar with any other implementations but there are several other popular ones. Based on the most popular shared decks the two most common users are language learners and medical students - however I think this technique could be useful to anyone.

The goal of SRS? Help you memorize information. A lot of information.

What is spaced repetition study (SRS)?

Think flashcards. Except computerized - ooh...aah. Flashcards that you can add images to. Flash cards that you add audio to. Flash cards that can blank out phrases and then fill them in. Flash cards where you can go to sites and download collections of thousands of high-quality cards that other people made.

Sounds like a real revolution of the paradigm so far? Well we haven't actually gotten to the SRS part! Spaced repetition study is at heart an algorithm that gives an answer to the question when do I need to review this card next? If you ponder for a moment you may come up with the answer right before I forget the card. Wouldn't it be great if you had an app that would show you a flashcard five minutes before you forget it?

Well, mind-reading is perhaps not within our grasp. However forgetting curves are pretty well studied - these are functions that generally model how large a gap between reviews of a piece of information are allowed before the information is forgotten. Crucially, these gaps widen with each repetition.

The forgetting curve

The upshot is that cards are reviewed, and each review is pushed further into the future. However, the card should come up again before you forget the information, and thus your gradually widening review is locking that information into your memory.

It should be noted that SRS is a memory technique, not a learning technique. In order to work properly you really need to have learned and understood the information first. For instance, the flashcards aren't so good for learning a poem from scratch, but once you have it memorized the subsequent reviews will help you retain the information.

For those that want a little more technical analysis this article gives a great outline of the studies that have been done on SRS. I especially like her analysis on how you decide which pieces of information to make cards for.

What it looks like in practice

Here is an example of a card I used when studying OOP in JavaScript -
The front of a review card

The back of a review card

The key lies in the options revealed after clicking 'show answer'. These buttons will set how long the gap until the card is reviewed again. Each time you see a card these numbers increase - I have some cards that are up to several months!
Timing options after answering

As a result of the review spacing I only review a small subset of my cards daily - and if you don't add new cards the daily review total falls over time. The blue numbers represent how many new cards to review in a deck, and the green how many review cards. I have heard the upper-end of users have 10,000+ cards, yet they review 200 or so a day. Here we see the advantage SRS has over traditional flashcards - more efficient use of review times means larger decks can be used (or review times decreased).

A list of cards to be reviewed today

My tip for beginners - use cloze deletion

On a lark I downloaded a deck of US Capitals that my wife and I review daily (I've always thought I need to learn my capitals better). Recently I decided to update these cards into cloze deletion cards - these have natural fill in the blanks.

A non-cloze card
A cloze card

Cloze cards are much more naturally to look at, and you can cloze out any part you want - you can even have multiple parts hidden and revealed together! Overall they are much better than the basic cards.

Each card actually has two cloze deletions, and Anki automatically makes two review notes (one with each deletion), which is handy.

In the classroom

I've been thinking for a bit that SRS would actually be really beneficial for the high school students I teach - one of the real issues I encounter if poor information retention by my students. Expecting my students to create and review decks daily is a big ask, so I opted for a different approach - Anki warmups.

I've created a review deck for each class, and I have set the number of cards fairly low (only 3 new cards and 10 max cards per day). Each day we start class by reviewing cards, and I'm planning on keeping the review intervals on the shorter side. I'm only one week into this, but I'm very optimistic on the benefit so far.

A card for my physics class

Interestingly enough I got a marketing email (the sort I ignore dozens of daily) from a startup wanting to make SRS software targeting the classroom. I actually think this could be brilliant - teacher shared/controlled decks and a dashboard of information about student reviews would be a game-changer for school use.

Getting started

A few thoughts about getting started:

  • Before starting you should understand that commitment and discipline are required for this method. You could maybe review every other day - daily is best however. Skip a week and many cards pile up - so you procrastinate - so more cards pile up - and now you aren't using the method at all.
  • Head on over to AnkiWeb to browse tutorial and create an AnkiWeb account (or find an alternative you like)
  • There are mobile apps for iOS and Android. The iOS app costs $24.99 - if that seems like a lot to you, consider that the time commitment is much more costly. Most users say the app is easily worth the cost.
  • If you are the sort, give r/anki a browse

Top comments (0)

Timeless DEV post...

Git Concepts I Wish I Knew Years Ago

The most used technology by developers is not Javascript.

It's not Python or HTML.

It hardly even gets mentioned in interviews or listed as a pre-requisite for jobs.

I'm talking about Git and version control of course.

One does not simply learn git