Teach Yourself with Anki: Open Source Flashcards on Linux


Prepping for a Linux certification exam? Helping the kids with schoolwork? No matter what the subject is, Anki can help you commit it to memory. The flexible open source study system is based around the flashcard concept, but with support for audio, video, and more, and the program can adapt to your learning style.

Using Anki, you can make your own custom decks of “flashcards” for any subject: arithmetic, foreign languages, the state bar exam, obscure Perl syntax — you name it. The card format is flexible, supporting multimedia, text, and even embedded LaTeX for complex equations. The study tool allows you to fully configure your sessions, including optional time limits, slowly or quickly adding new cards to the set you review, and altering the order in which material is presented.

More importantly, Anki adapts your study sessions as you learn. While you work, you click on a button to rate how hard or easy you think each card is; easier cards get repeated less frequently, and harder cards get emphasized until you get the hang of them. This study concept is called spaced repetition, and it has been shown to radically improve memory in academic studies. But while it is hard to implement manually with physical flashcards, a software application makes short work of the challenge.

Getting Started

Anki SetupAnki’s most recent release is 1.2.9, although this is a point-update targeting users who experienced database trouble with 1.2.8 — if your distribution’s package manager has any release in the 1.2.x series, you will have the current feature set. The main application is written in Python, so you can download the source files, extract them from the tarball, and start up the GUI with ./anki &. However, Anki does have a long list of dependencies in order to support its sizable selection of media formats, so if you do not check the dependencies first, you may experience hiccups.

The main GUI runs on Linux as well as on proprietary OSes, and it allows you to both create decks of flashcards and study with them. There are also several front-ends written for popular mobile device platforms, including Android and Maemo, so you can take your decks on the road and peruse your studies form anywhere.

If you want to get a feel for how Anki works before you spend time creating your own cards, you can choose “Download” from the File menu and fetch any of several hundred user-contributed decks on just about every subject imaginable. Some are homemade, but others are created by teachers and college professors. The download tool’s interface is searchable, and lets you sift through the results by popularity, age, and number of cards. The only risk you run in grabbing a deck created by other users is that it may be designed to function with a specific textbook, and not make as much sense without it. Usually, however, the description field in the download tool explains the deck’s origin, including this type of information.

The spaced-repetition system is intended to help you learn by repeating small study sessions over a longer period of time — days or even weeks. You can adjust the time intervals and how they apply to study session frequency, but understand that Anki’s options refer to calendar time, which is unrelated to how much you actually run the program. In other words, you decide how many hours or days apart your brain gets asked the same question, not how many cards or mouse-clicks go by.

There is, however, a “cram” function in the Tools menu, which lets you run through an entire deck without regard to the spaced-repetition schedule. Last but certainly not least, Anki keeps track of your performance, timing, and difficulty ratings for each card and deck, and you can examine the statistics (including time-series graphs) from the Tools menu.

Stacking the Deck

Unless you happen to stumble onto exactly the deck you need courtesy of other Anki users, you will eventually need to create your own decks of study cards. Anki includes a built-in, visual card editor. You can edit the decks you download from the Internet or create your own from scratch just as easily — simply click on the “Add Items” button in the toolbar to create a new card, or choose “Browse Items” to open up a window listing all of the existing cards.

In its simplest form, the card editor has “front” and “back” layout sections, corresponding to the prompt and the answer for each card. You can freely input formatted text using the editing toolbar; you have control over text color, font mark-up (bold, italics, and underlines), and buttons to attach images, audio, video, or pre-formatted content like LaTeX or HTML. The editing interface is not as sophisticated as a slide-presentation program like LibreOffice Impress, but the idea is the same.Anki Math Card

Of course, you can make your decks more complex by taking advantage of Anki’s user-defined template system. With a template, you define fields and enclose their names in double curly braces — such as {{English_word}} and {{Navajo_word}}, or {{Element}} and {{Atomic_number}}. That way, you could create one template with the element name on the “front” of each card, so that Anki asks you for the number, and another template that is just the reverse.

To be honest, I find Anki’s interface for editing templates and decks too complicated. To get to the template creator, you have to open, “Browse Items,” then click the “Card Layout” button, and finally switch to the “Fields” tab. That’s not exactly intuitive — the fields are logically separate from the layout, and both are separate from the browse-able list of existing cards.

Still, the online user manual helps make sense of the internal structure of a flashcard deck, which is the main issue. Even more helpful is downloading an existing Anki deck from with the download tool, and examining its configuration.

Although you can download submitted decks directly from within Anki itself, the project does require you to set up an account if you want to access the AnkiWeb deck library through a web browser. The main benefit of this service is that you can also upload decks that you create — and you can choose whether to keep them private, or share them with everyone else. The private decks that you upload are invisible to the world at large, but you can sign in to your “AnkiWeb” account from other computers, including the aforementioned mobile apps, and retrieve your own creations. This allows Anki to keep your various devices synchronized, so you can pick up your study sessions from any of your devices without starting over. There is also a Google Groups mailing list for deck-creation support, where other Anki users appear to be a friendly and helpful bunch.

I suppose the “learning curve” that comes with Anki’s deck and flashcard format is to be expected. The system is very flexible, and that is what makes it worth using. A vocabulary- or math-only flashcard application might have its share of fans, but giving you full control over the content and set-up results in a much more powerful utility.

I’ve downloaded a few a language training decks that I need to dedicate some study time to, and I can already tell you how much easier it is to launch Anki than to remember to sign in to a web course or crack open a textbook. Nevertheless, I will probably augment existing decks more often than I feel like starting a new one from scratch. But who knows; you may feel inspired to start writing decks from day one. Whether you want to refresh your own memory or help out a child with his or her homework, Anki gives you the tools to do it.