Introduction to Anki and Spaced Repetition
For those who are unaware, Anki is the leading (I think) spaced repetition software. It is free, open-source, and extensible with plugins.
What's spaced repetition, I hear the more uninitiated amongst you ask. It's an algorithm for remembering and reviewing things with the intention of putting them in your long-term memory. When we read something new, 99% of the time we forget it - sometimes in a few hours, sometimes in a few days. Spaced Repetition is the practice of reviewing material that we would preferably not forget from time to time. Based on if you remembered the material, the next repetition may get more spaced out, or less spaced out. There have been studies on what the optimal spacing out should be, and different studies have given different recommendations. We will go deeper into this part further down the article. For now, let us suffice to say that some algorithm is better than no algorithm.
Benefits I Can Vouch For
The proponents of spaced repetition may paint a flowery picture that may lead you to believe you can remember anything and everything. And that is actually true up to a point - I myself know almost all countries and capitals forward to back, I can tell the country by looking at its flag, I am working on getting a grasp of the world geographical map, and that's just in the geography section. I have an extensive collection of factoids for programming, general knowledge, a not-so-extensive collection of chess openings, and now that I am trying to pick up playing the ukulele I am exploring if I can add some cards for music theory. Based on my experience, Anki used correctly will supercharge your knowledge base. It will help you win some trivia nights. It will keep that documentation fresh in memory that you went through for a language/library that you are not actively using anymore. Committing stuff to memory will also help in picking up some new language or skills (like chess or ukulele).
Before I introduce the thorns in this field of flowers, I want to make it clear that I believe committing things to memory is highly, highly beneficial and with the right setup, the effort-to-reward ratio is very enticing.
Here are some of the benefits I can personally vouch for:
It was way easier for me to pick up a new programming language (Kotlin, Redux) when I combined my documentation reading with creating Anki cards as I went along.
Learned some chess openings, and it was fun to have known the best move in a position during a game I had previously struggled with.
Got a better sense of Indian post-independence history once I started creating Anki cards for that topic.
Whenever I see a flag, I can recognize the country which instantly piques my interest in the context of the flag display.
Some more, but that's enough to drive the point home I think.
Why Memorize When You Can Look Up
The devil's lawyer may argue that we live in the era of instant fact lookup, why should anyone ever make an effort to commit stuff to memory when we can just do a web lookup any time we need? I believe this is fallacious reasoning, and committing to memory provides benefits that are way incomparable to looking things up. Committing facts to memory drives an understanding of the topic at hand at a level that external references simply cannot. These related facts in our brain form a sort of NETWORK, helping us make sense of that topic at hand, maybe turn it around in our head, play with it, dive deeper, ask questions about it, and so forth. Our brain instinctively makes a connection between an existing node of knowledge and a new incoming related one. It both feels nice and helps the newer knowledge tidbit easily settle into our memory. This is simply impossible when those knowledge nodes reside externally. This networking of knowledge nodes is in my opinion the biggest factor that drives my Anki habit. The aha moments are so worth all the efforts. Also, in-memory lookups are always going to be an order of magnitude faster than lookups in external storage.
I remember reading Sherlock Holmes as a child, where he vehemently argues that memory space is limited. I strongly disagree. Human brains are crazy amazing, and the more you use your memory muscle, the more it will grow.
Daily (ish) Practice
Before I delve into the rules I found to be the most important, I want to touch upon how I go about practicing Anki. I review and learn my cards in the morning or during the afternoon. The time of day is not that important, but I find consistency to be helpful. On a typical day, the time for review should not exceed 7 to 8 minutes. More than that is too much stress on the brain, I have found, and that leads to diminishing returns. But if I happen to miss a couple of days due to life circumstances, then a longer day is fine. If I do happen to miss some days, it is also fine not to take up the additional burden on the first day back, but divide it up into 2 to 3 days. That should be up to how you are feeling at the time of studying your flashcards.
If any one card takes more than 20-25 seconds to recall the answer for, then it needs to be simplified. Answer recall should happen instantly for the spaced learning process to work smoothly. This may mean dividing the card up into smaller cards, adding hints, or in the extreme case even suspending the card.
Advice for the Novice
Now for the thorns in this field. Newcomers to Anki and spaced repetition (myself included when I first started out), dump anything willy-nilly into a flashcard and expect that the software will help them remember it. But this is not a good approach. Human memory, as amazing as it is, is a tricky thing. Force it to remember too much with too little context of existing memory nodes, and it will simply give up. Then you will be faced with cards you don't really remember day in and day out and there will be no lasting progress. Demotivation will lead to quitting the software and concluding it doesn't really work. But Anki is not the magic pill from Limitless, and it will not make you a super-human. We have to gently work with our brain, not force a bunch of information upon it and expect it to commit it all to memory. There are many pitfalls that a newcomer to Anki will experience. I will link below 2 articles on how to make effective flashcards for Anki because they explain the rules/constraints one must follow very well:
https://www.supermemo.com/en/blog/twenty-rules-of-formulating-knowledge
https://borretti.me/article/effective-spaced-repetition
Adding Hints
One very important topic I have not seen covered elsewhere is the importance of adding hints to cards that may be difficult initially. Do NOT rely on it getting easier over time, it should be easy from day 1. That means if you have a difficult piece of information (it's still atomic, just difficult) then we should be adding hints to build up to it. Let me illustrate with an example. Suppose I have a flag that I want to learn the countries for. Here is how a novice me built a card for it:
Over time though, I realized this was putting too much stress on my brain. So I modified it to make it into 2 cards. 1 with hint to build up to the main card.
At first, I had added the hint country in Africa
but this hint was too vague. The above hint leverages the fact that I have already committed to memory the capital of Tanzania (Dodoma), and this is the ideal way to add a hint. Make it related to some fact that you have already Ankified and learned.
Here's another example. This time I did not have any related fact Ankified, so I fell back on a more crude form of hinting as you can see.
The goal is clear though. Every card should feel easy. If it does not feel easy, then add another card with hints.
Use Cloze Cards (Only)
98 to 99 percent of all my cards are Cloze deletion cards. They just work very well. They are great for adding hints, adding multiple fields which helps with repetition, and "burying siblings".
Repeating Cards are your Friends, not Foes
Drop all worries about repeating a piece of information you have already added to the knowledge base. The software will take care of it. I have many repeating pieces of information in my deck, and it has been nothing but helpful. Sometimes I even voluntarily add a repetition when I feel I want to review a card more often going forward than the current algorithm would otherwise allow me. This was very, very counter-intuitive for me, but this realization has single-handedly made the most difference in my Anki journey. Repeat things without the slightest worry. I recently added a card to learn the order of strings on a standard-tuned ukulele. This is the piece of information I want to learn:
What is the standard tuning for an ukulele?
GCEA
Instead of just making one card, calling it a day, and struggling with the cards on subsequent days here is the list of cards I made:
What is the standard tuning for an ukulele?
{{c1::G}}{{c2::C}}{{c3::E}}{{c4::A}}
What is the standard tuning for an ukulele?
{{c5::GC}}{{c6::EA}}
What is the standard tuning for an ukulele?
{{c7::GCE}}{{c8::A}}
What is the standard tuning for an ukulele?
{{c10::G}}{{c9::CEA}}
What is the standard tuning for an ukulele?
G{{c11::CE}}A
(and then finally I have built up enough to the main card)
What is the standard tuning for an ukulele?
{{c12::GCEA}}
It's a limitation of Anki that overlapping clozes need to be on different fields when creating cloze cards. It will look something like this:
This post is an okayish explanation of overlapping clozes - https://eshapard.github.io/anki/the-power-of-making-new-cards-on-the-fly-in-anki.html. I did not find it a great explanation, so if you feel like this topic is not well understood let me know in the comments and I will try to explain this piece in my own words.
Going back to the example though, note that c8 and c4 are the same cards, as are c10 and c1. I literally don't care, repeating cards are my friends, not foes. Over time their schedule tends to normalize, and the fact that each card takes like a couple of seconds to review means I don't lose much due to repetition.
Don't Use Prebuilt Decks
I have not yet found any value in using prebuilt decks. In my experience, they do not adequately adhere to the above principles of easiness, hints, and repetition. It is better in the long term to create your own cards, tailored to what you want to learn, with hints customized based on what is already in your memory bank and repeating it as per your comfort level.
Bury Siblings
Having the heavy amount of repetition means I have to turn on bury sibling cards checkboxes.
What this means is that Anki will not show me 2 cards that are generated from the same note. Hence for the above example of ukulele tuning, I will only see 1 card out of all the 12 on any given day. This is really helpful, and key to making the repetition work.
Override the default scheduling
The default options for scheduling have always been a letdown for me. Hence, I recommend the usage of this add-on: https://ankiweb.net/shared/info/759844606
Use True/False cards
Using True or False questions is a great way to test and jog your memory. Not much to explain here, so let me just illustrate with an example:
TypeScript: The return type of a constructor is always void.
{{c1::False.
The class instance type is always what's returned.::True/False}}
TypeScript: The return type of a constructor is not void but the class instance type.
{{c2::True.
The class instance type is always what's returned.::True/False}}
TypeScript: Constructors can’t have return type annotations.
{{c3::True.
The class instance type is always what's returned.::True/False}}
TypeScript: Constructors can have return type annotations.
{{c4::False.
The class instance type is always what's returned.::True/False}}
TypeScript: The return type of a constructor is always {{c5::the class instance type}}
[All cards are siblings, i.e., on separate text fields of the same note]
Conclusion
That's all folks. I hope these tips will help the novices in Anki as they did me. Without following these, my everyday Anki review was a slog. Now it's a breeze. Anki has helped me pick up new programming languages and libraries, play chess a tad bit better, and other stuff that I have already mentioned. I hope it can do the same for you, and if you have any doubts or want to discuss anything related to Anki, let me know. I do not feel like this write-up covers everything I have to say about Anki so I might write another, depending on the interest level on this post.