Introduction to Anki SRS

Anki is a spaced repetition software that helps you practice in such a way to maximize your memory retention of things you want to remember. It utilizes an algorithm especially developed to decide the best time for you to review a piece of information.

The best time to review something is when you are just about to forget it.

— Sorry. I don’t remember where I read this.

On the web one can find a wealth of articles, researches and other things about why this approach to reviewing material is recommended. I will mention just a few things here to get you started and you can research more on this subject yourself if you want.

This post is not intended as a complete or beginner’s tutorial. This is done in a very detailed way in the official docs. The idea here is to show some quick concepts so the reader can have a brief but still general/global view of some of Anki’s functionalities that are considered most useful and make practicing the material more efficient, which means less time studying and more retention of knowledge nonetheless. is the Anki SRC official website.

Learning How to Learn

Let me talk about the minimum basic and necessary ideas about studying that I have learned along the way, especially when I worked as a teacher, a period in which I read a lot about proper teaching methodologies, how the mind works regarding learning and forgetting, your learning style, etc.

I keep studying and learning more about this subject of “how to learn” to this day for mainly three reasons:

  • I like it;

  • I am always learning new things myself;

  • I am always helping and teaching others, so, I want to do that in the best way I possibily can.

Learning Style

This subject is simple to understand. Imagine a teacher (and there are quite a few teachers like this) that stands before a class and talks about a certain subject non-stopping for hours. This, in the best case scenario, benefits only the students that prefer to learn (or learn more easily) by listening. The visual learners and those who learn better by doing end up having a less than optimal experience. Of course no one is 100% a visual learner, or 100% a hands-on learner, but we generally have a strong and preferred style for learning, and one would surely benefit and improve faster and better if their learning style was taken into consideration. This way, your study time is greatly improved. You get more results in the same (or less) amount of time.

Anki helps you with different learning styles, for you can use text, sound, images, create questions, cloze deletion, etc.

Recognizing the Answer

Recognizing the answer is when you see a question, exercise, etc., and the answer is also there, visually (you don’t have to think about the answer to know it, you just read/see it). Imagine you took some notes for you history test:

Brazil was discovered in the year 1500.

You read that to review for the test (which is next week). The answer to a possible question of “when was Brazil discovered?” is there. You think you know the answer. But perhaps you don’t. This is scientifically called Illusion of Competence. If you see an answer to something, a solution to a mathematical problem, you may think “I understand how they came up with this solution/answer”. But ponder about this: if you didn’t have the answer before you, who can guarantee that you would really come that that solution yourself? You are just recognizing an answer, not producing one (which is way more difficult).

Imagine another situation. You are a Brazilian student attending an English course. In the text there is the word “eventually”, which is a false cognate and looks like it means “enventualmente” in Brazilian Portuguese, but it actually doesn’t. I means “finally”. You jot down all this on your book and you even understand what is going on, but when you review that text or part of the book some weeks later, your notes are there, and you think you know it. You think if they weren’t there you would still remember what it means, the false cognate gotcha, etc. Again, the illusion of competence is working against you.

I’m not saying that this approach is useless. It has its place and value and should be used at times, like when you are in a class, and you need to take notes about things in one way or another. Still, it must never be your only way to study and review material.

You would be greatly benefited if you took what is important from your notes and created Anki cards for later active review rather than just falling int the default passive review (silent reading) that the great majority people use.

Also, creating cards is a demanding task. You have to really understand the material so you can create proper exercises with proper answers and solutions. That alone is very beneficial and much recommended.

Several studies have proved that just recognizing the answer produces little or no real results and it is one of the most important causes of the infamous “I studied really hard but did poorly on the examination”.

Silent reading is a passive and shallow strategy that produces minimal or no learning.

— Dr. Barbara Oakley

Producing the Answer

This way of reviewing/studying is much more efficient than simply recognizing the answer. It is also more difficult, which is the main reason why we unconsciously default to the easier and ineffective method of “passive reading technique”. This has a lot to do with cognitive ease (we prefer easy things, but this is not always the best and most intelligent approach), but it is the subject for another post…​

To produce an answer, you need a question or exercise in which the answer or solution is not visible, in such a way that you are really forced to answer it yourself, go deep into your mind, search your memory and reason more deeply about about it than the passive reading approach.


Exampe 1 (geography).

What is the translation movement?

Example 2 (C programming language).

How to access the second element of an array using both
pointer notation and subscript notation?

Example 3 (English).


Example 4 (human relations).

Name of a guy in ##php-br irc channel that passed the zend
certification and whose nickname is “ule”?

Example 5 (command line).

Using `xclip`, copy the contents of `file.txt` to the clipboard.

Example 6 (vim editor).

Change the case of a word to uppercase.

Example 7 (emacs editor).

Move point to the end of the sentence.

Exemplo 8 (PHP).

Using PDO, connect to MariaDB setting the connection to UTF-8.

To answer any of the above questions, you need to think, and many of those questions will cause cognitive strain rather than congnitive ease, but that is what makes you commit things to memory in a more lasting way.

In short, passive study is of little help. Active study is much more recommended. Do not lose heart because of cognitive strain — it is part of what makes you remember better in the long term.

Before I start talking about Anki itself, it is worth mentioning something very important and yet greatly neglected: studying efficiently requires knowledge of how to study. There exist techniques, methods and approaches that can either help or hurt. Some areas require more hands on practice than others. You may even score fair grades in history just by reading and passive review, but as for math, for example, actually doing things is really important. It doesn’t help if you read exercises and their answers. You have to actually get pencil and paper and get to real work. Many other subjects are like math in that regard.

It is important to take breaks and relax. It won’t help to remain hours studying non-stop thinking you will improve faster. It will even make things worse sometimes, because your brain needs time to ruminate on what is being learned.

Also, don’t be too excited about a new learning approach to the point where you want to learn everything at once, faster than the speed of light. Slow down! Many things take a lot of time to be mastered. Consistency is the key. It will make you progress, perhaps slowly, but steadily.

Much more could be said about this topic. Science has been learning lots of interesting and useful things about “how to learn”.

Memorizing Is Important Indeed

Don’t believe in the lie that many people have been telling nowadays: “It is important to understand, not to memorize.” This is simply untrue and misleading. Of course understanding is important. That goes without saying. But memorizing is just as important. This is another subject that deserves a entire post of its own. It also involves long term memory and the ability to tap into your storehouse of data to recall seemingly unrelated information that allows you to come up with new ideas and solutions to problems. You can’t use your short term memory (also known as working memory) for everything. I’ll try to talk about those in the future. For now, believe me: memorizing in important indeed.

Flash Cards e Reversed Cards

Using flash cards is somewhat common place to study vocabulary. You see a word in on language, and must be able to say/write it in another language.

With Anki, it is possible to create a card with, say, “good morning” in the front side, with the answer “bom dia” in the back side. But Anki has a handy feature that it lets you automatically create a reversed card (which forces you to know the information from both directions, greatly improving your retention of the material).

So, in one given day, you’ll be presented with:

front: good morning

You and will be required to produce “bom dia”. Still, in some other day, Anki will show you:

front: bom dia

and you must be able must be able to produce the answer “good morning”. This is wonderful in terms of cognition for it creates different brain associations for the same thing, again, greatly increasing your understanding and retation rate.

And it is cool that you insert the information once and Anki creates both versions for you, reducing the time it takes for you to create the cards.

Selecting the reversed card type

In the example above, in one study session I’ll have to know what the PHP function htmlspecialchars('»') will return, but in another study session, I’ll have to to know which PHP function gives the HTML entity for the » character.

Cloze Deletion Technique

This one is very useful in certain cases. You can have a card with an exercise like “In Lisp, how is a list represented?”. There is nothing wrong with this question, but you could also do:

Lists are represented as {\{c1::zero::quantity}} or {\{c1::more}} elements
enclosed in {\{c1::parentheses::notation symbols}}.

And you’ll see the following when studying:

Exemplo de Cloze Deletion

Notice that c1 was utilized three times, and therefore the three words of the blanks are shown all at once. You could also use c1, c2 and c3 in this case and Anki would ask you to remember only one of them in one study session, and another one in another session, and so on.

Completing missing words with cloze deletion is a good way to review and memorize complex concepts because you have part of the sentence visible, and you must remember some key, specific words that make up the whole definition.

Customized Cards

You can (and probably should) create custom card types. For instance, it is possible to create cards with three fields instead of two. In my case, I have a type called SQL which contains exercises about MySQL/MariaDB and PostgreSQL.

So, instead of asking the question “In PostgreSQL, how to create a table X referencing the PK on table Y?”, I can use a third field called “category” where I write something like “MySQL” or “PostgreSQL”. This way, the exercise becomes more to the point. It is not needed to start with “In PostgreSQL …​”. What is more, it helps to filter cards in the browser and create temporary study decks based on that field if need be.

Card about databases displaying three fields


Looking at the previous screenshot, notice that it was also added the tag ddl (at the very bottom) which is an acronym for Data Definition Language. That helps both to filter decks in the browser or creating custom study decks based on certain tags.

Filtered Decks

Imagine that for some reason you need to study vocabulary related to finances, or nouns related to culinary, or Data Definition Language commands for SQL. Anki makes it easy since it allows you to create custom decks from filters based on tags, fields and other things.

For instance, you could create a filtered (custom) deck with this filter:

deck:"sql" category:"pgsql" tag:"ddl"

That is, create a custom deck with cards from the SQL deck, but only those which have the field “category” with the value of “pgsql” and has the tag “ddl”.

A simpler example:

tag:"verb food"

In this case, it doesn’t matter which deck the card is from. All that matters is that de card must have the tags “verb” and “food”. This way, it is possible to create a deck specifically to review verbs related to food.

The original decks where cards are collected from to create filtered decks remain intact. Studying these custom decks doesn’t modify the state of the original decks. That is, if a card was to be reviewed tomorrow on the original deck, and you review it today on the custom filtered deck, it will still be there to be reviewed tomorrow on the original deck.

You can delete your filtered decks at any time and it will not delete the cards collected from the original decks.

Images, Sound, Latex, HTML, Browser, Add-ons

Anki also allows one to paste images, audio, record one’s voice (and reproduce/play it during reviews) and write text in HTML and LaTex, which allows the insertion of mathematical formulae using proper notation.

Bhaskara’s formula

Anki has a feature called “Browser” which enables you to navigate, search, edit, remove and perform other actions on cards in a very versatile way. All filters that can be used here can be used to create filtered decks (which helps you to craft the filter exactly as you want before creating a filtered deck).

Learn everything about the Browser in its manual.

There are also tons of add-ons that extend the already great Anki’s default features. At the time of this writing I use just one, and still, not very frequently, but it is very useful when needed. It is the Supplementary Buttons, which adds many buttons not present by default in Anki to format text (lists, tables, links, etc).

Supplementary Buttons in the Editor

Some people use many more add-ons. It is nice that there are a lot of them that suit particular needs of many different Anki users.

You can find add-ons here.

Ankiweb, Synchronization and Supported Platforms

Anki runs on Linux (the best and most successful operating system ever created), Mac, Windows, Android (which is actually Linux) and iPhone. It is free and open source for all these systems except for iPhone.

It is possible to use the free Ankiweb service to synchronize your collection of decks in such a way that we can study in any device. I use this feature myself because I use the tablet (Android) to study when I am iddle like waiting in the line at the bank or something similar.

Another thing that I particularly like about Ankiweb is that it allows me to add cards about things that I learn during work time, things I have to research about, read, etc, and even solutions for certain programming errors or problems I have during the day. Even IRC talks may end up Anki cards. That means I add them to Anki at work, and they are automatically available on my other devices. How cool is that? Wouldn’t it be a shame if I spent a lot of time to figure something out just to be completely forgotten in a few days?


Here are some nice things to read that are related to Anki and Spaced Repetition in general that have helped me understand more about this subject, including tips and posts from other honorable Anki users.