An Intro to SRS based retention
About a few months back, I was tasked at rewrite a new catalog using Adobe Indesign. I hadn’t touched that program in almost a year, so I really couldn’t remember a lot of specifically nuanaces about the print industry and adobe AI. For instance, what margins / settings should I use? Which font-faces work best for fractions? Among that, many other specific questions that I could not recall. So I had to spend a great deal of time figuring out where I even put those notes as well. I hadn’t yet adopted my favorite notetaking app dynalist.io, so I didn’t quite recall where I put them, or where my specific notes were at.
Thats just one example of many problems I have with long term retention of information. It simply becomes more difficult to recall information, as you learn more and more things. I tend to have lots of hobbies in many unrelated fields, so sometimes I’ll work on one project for one month, and proceed not to work on it until half a year later. Which I then have to relearn everything over again. Which sucks. There must be a solution to this right?
The memory forgetting curve highlights the issue I have, developed by Hermann Ebbinghaus. Which states that, memory retention decays exponentially with time. So something fresh in your mind stays in your mind, but after so many days, you’ll just completely forget it. The best example I have for this is when you have to cram for tests at university, and proceeded to forget everything about it the next semester.
Combatting the proposed “forgetting curve” is done via spaced reminders using a formula / algorithm. By spacing out your reminders at the critical moments you will forget it, this in turn prolongs the lifetime of that memory. Whether this memory is for work or personal, it works to your advantage for long term retention. This is called “SRS” or spaced repetition system, and Anki is the most used application for this.
My experience using Anki
Its been 3 months since I started using Anki. My end goal is finding a workflow to using anki that suits my needs. This means, that it isn’t terrible intrusive in my life, offers as much benefits as it can without becoming a time sink, and helps me reach my goals toward my programming / webdev goals. When I first using any program that I would like to adopt, I usually employ the following set of steps many times over:
- Explore as many resources out there
- Read one specific manual feature
- Make deck and test feature
This is sometimes called Agile sprinting, and this helps me gain as much insight as I can on what form of workflow I want to use with Anki. For instance, what the difference between filtered and subdecks are, how cards are synced from ankiweb, ankidroid, and anki desktop. All of these things are important steps to understand, as they prevent unforseeable issues I might have down the road with anki. Such as having way too many cards to review, anki burnout, poor cards, etc.
I’ve explored many plugins, many decks (Janki programming deck, Zanki, Bros pharmacy, Japanese), did my own fair share of testing of anki workflows, and read a few scientific papers on SRS based learning. Below is what I consider best practices related to SRS as of right now, either my own or what others have created
Summary of well established practices
I find the following rules in this priority are best for webdevelopment / programming.
- Super Memos 20 rules highlights the most fundamental principles when writing a flash card, such as avoiding questions that expect many answers, learning before making a card, using imagery, etc
- Janki Method highlights when and when not to write a card, and the big picture when it comes to cards relative to programming
- Janki Method Refined | Oxbridge Notes United States – This highlights formatting rules, cards that become outdated as technology becomes dated, and important formatting rules
The most important points here is that cards should be short, sweet and simple, whether this is through using abbreviation, cutting out words that are unnecessary words (think of what your brain reads when it speed reads), etc. Focusing on the big picture, applying Kaizen (continous learning), but first priotitize learning before making flash cards. In addition, using images to help personalize cards so it doesn’t get confused with other similar cards, avoiding burnout by reducing how often cards appear, etc. Also, thinking about what you will gain from making the card – is this card something of interest to you, has it been tried true and tested information, etc.
Summary of my own best formatting practices
All of that being said, I wanted to highlight what I consider my own best practices, that I found myself through my own experimentation, after many hours of researching and testing SRS based learning. Note that these rules are specific to programming and webdevelopment, and not something like learning a language like Japanese. So these rules may not apply to these instances. Most of these fields are related to formatting cards in general using anki 2.0 version, so they might be subject to change in newer versions of anki. Some of these practices were also determined from analyzing med-school flashcard decks, janki and language-based learning decks as well.
1. You really only need 2 card types – Inductive vs Deductive cards
When we talk about memory recall, there’s really two different types.Hence why you only need 2 card types at most, with some exceptions (say, if your learning a language, you might need an audio field as well). But for programming and computer science learning, only two are needed. What are the two types of cards you might ask? Inductive and Deductive Cards
Inductive based cards
These cards closely mimic reality. They have little to no context clues, are short questions that expect a short answer and a well fleshed out answer. Think of these as questions at an interview. What if someone asks you what your Greatest Strength and Greatest Weakness is? You shouldn’t expect this question to have any sort of clues, its just going to be asked point blank. The same is true when you take a quiz or test that expects a multiple choice answer, or even a written response – those expect you to recall information purely based on your own memory. Inductive based cards, are also based on inductive logic – writing a mathmatical proof is an example of this. In summary, this is bottoms-up approach card. For inductive based cards, I just use a simple front/back default card template
Deductive based cards
These cards are more “fill in the blank” questions, where there are many context clues. Whereas inductive cards are designed for long term use, deductive cards are for short term memorization. Examples of these include cloze / graphic cloze deletion cards. Cards that have hints, etc. What you use may vary here. I personally still use a front/back card
Deductive based logic cards benefit from the use of “sibling cards” as well. You may want to look into programs like Image Occlusion add-on for creating these types of notes quickly, but I personally just use shareX to handle this. You can find my guide on this here .
2. Less field types / card types is better
Since Anki cards allows for rich text formatting, it doesn’t make much sense to have anything more than a “front/back” card for inductive-based cards. You might be tempted to have a dedicated field for “sources”, but sometimes you may not have anything to cite – e.g. the card is based on personal life experience, or is something that is considered common (e.g. translation for a english word to Japanese).
Onto card types, you really don’t even need to use “Cloze” cards as well , since you can write a basic card with literally a “???” where the cloze deletion should be. Reversible cards are not very useful outside items that require a dictionary answer.
3. On back, provide a one liner answer, use formatting for indepth answer
For inductive-based cards, these should have a straight one liner answer. For more difficult questions and answers, a more indepth answer should be provided afterward, and or context to that card. This helps cement why you created that card in the first place, and what the big picture is. Here is an example:
This is a hard lesson I learned about international logistics and trade sourcing. In summarizes a full month of work in one card. Basically, I learned that if you wanted to source products overseas reliably, you had to use US customs data to validate how reliable a vendor is and not something like alibaba. You can mix in emotional states, but this should be done on the back of the card. Your explanations should ideally be short and to the point, just imagine how you would communicate to someone who doesn’t speak english as their first language – you use broken english. This suffices and gets the point down, since your brain fills in the grammer inbetween, thereby reducing read time.
So the first line is the answer, the whitespace below is helps seperate the indepth answer/ context after it. You’ll also want to bold text what the most important summary points are in the first line of the card as well. Italicizing text is another option too, but really you only need two types of formatting
4. On front, use Well Formatted Front Description Over Tags.
In the above example, the first word on my card is titled “Logistics – ” . This is a categorical tag to describe the card. You’ll want to have your “Sort field” in the backend of anki to on the front card. By doing this, this makes it extremely easy to tag / manage notes that you have entered in the past, and to add tags where necessary if needed later down the road.
Backend example of actually previewing those notes in anki. You can easily tag groups of items after the fact too, and you don’t have to spend the extra few steps figuring out how to tag items. Everything is super organized from the get-go. You can always opt in to add tags after the fact, but from my personal experiences using a similar app (evernote), you really don’t get that much mileage from extensively tagging items. Rather, rich text search is almost always better to find cards you’ve made in the past
Also, you want to make sure your front card question is descriptive, to the point, and offers a clear objective. Anything you phrase on the front of the card should elicit a one answer response on the back
5. Do not use images on the front of card unless its a deductive card
You really don’t want to have too many images on the front of your card. Unless however, you are working with a graphic cloze deletion type card like the one above. The reason why you don’t want to do this is because your mind associates that specific card image, to the answer to the solution, rather, not the question itself.
The rule of thumb is to load up images mostly in the “indepth answer” solution on the backside, provided you made a one-liner solution already. This helps build upon the memory of the front of the card, e.g. the question that closely mimics reality
6. Use Gifs only if needed
Sometimes, a gif explains a process way better than an image or text. In this example, I needed to remind myself why using hovered over image URLs to preview them was not a good methodology. You should still opt to have a supporting text description as well.
7. Use Images for CodeSnippets
Codesnippets behave rather poorly from my experience on ankidroid, even if you run anki plugins like syntax highlighter, power formatting, etc. What these plugins do is convert things into HTML / CSS to display on the card, but the issue here is that editing your cards afterward can get slightly messy and inconsistent. Simple is always best.
Whenever you want to create images from your code snippets, I suggest using larger fonts on your IDE, or, if you use an online IDE / program (such as my post on dynalist code snippet manager, I strongly suggest zooming in the web page.
Summary of my favorite plugins
There’s a wide range of plugins available to anki, but I highly suggest using only as few as possible, since they are prone to breaking on future updates. The plugins that are the most beneficial are those that streamline card-note creation, so you always create high quality cards from the get go.
I personally use the following the most:
- Frozen Fields Addon – I use this to ensure that I write my front-facing card correctly
- Quick Note and Deck Buttons – useful for swapping between decks and card types quickly
- Advanced Previewer – Useful for previewing the quality of cards quickly
Summary of my own workflow practices:
While the above rules highlight formatting rules for readability / scalability, I would like to also highlight my own workflow practices
1. Consider reviewing cards primarily by ankidroid and adding cards from desktop
Its best to associate one tool, with one specific application. We see this all the time in the software industry, e.g. what does “twitter” or “google” or “apple” mean to you? In most cases, your mind elicits thoughts of only one or two things, the company “apple” makes you think about MacOS, iphones, etc. The same is very true with applications – its very easy to preview your notes in ankidroid (iphone equivalent is ankimobile) but anki desktop is much more powerful for adding new cards. This way, you get the best of both worlds – having your flashcards in the metro commute to work, at lunchtime, etc while having a dedicated place to add it from your computer
2. Use a seperate application to take notes / breakdown information
Anki should never be a primary tool for capturing information. You should be using a dedicated notetaking app like OneNote or dynalist when it comes to understand information as a whole. Or perhaps old school, with paper and pencil, whatever makes it easiest for you to put that information on some writing medium. Anki should only be used once you have a solid grasp of that material
3. Control the quality of cards over time
While its important to have cards that both are for “fringe tech” or “agnostic”, its important to suspend indefinitely those cards that have no value long term. An easy way to do this is seeing if a card no longer holds true on my ankidroid, just suspend indefinitely and check up on it later
4. Use a formatting convention in your notetaking application to streamline note creation
Its not necessarily that wise to add a card everytime something of interest comes up. Maybe you might be too busy writing a program and only want to focus on that topic for several hours at a time. Or maybe you are trying to solve a difficult math problem, and anki is the last thing on your mind.
5. Use anki everyday
Its important to mention here that a solution is only as good as what you put into it. Whether its adding new cards, previewing cards for that day, or doing both, this makes anki more effective
Anki is not so bad once you figure out what it can do for you, and how to set it up properly, once you explored all the wrong ways to do it first