Spaced repetition - like the 'Anki' program does - is one of the most efficient ways to learn new things. (For research citations, see 'Study methods', here.)

I previously explained how to get up and running with Anki on an Android phone. Here's the guide for using Anki on a Mac:

  1. Go here and click 'Download Latest Release' (or here if you're on PowerPC).
  2. Open the downloaded .dmg file, drag the Anki icon into your Applications folder in the dock, and then run the Anki application. (Click 'Open' when warned that the application was downloaded.)
  3. Click 'Download' and search the list of decks for 'Less Wrong'. Download the 'Less Wrong Sequences' deck.
  4. Set your review options as desired, then click 'Review.'
 That's it!
(This full process will take longer than 60 seconds because of download speed, but will probably require only 60 seconds of interaction with the phone.)
New Comment
17 comments, sorted by Click to highlight new comments since:

I've been thinking of starting an Anki discussion for a few days. Specifically, I'm wondering about decks that people have found or made, and why they're using them.

I've been learning Spanish and ASL and am considering memorizing braille, morse, and some chunks of biochemistry. One thing I've gone looking for twice now is something to help memorize combinatorics content like stirling numbers, binomal coefficients, and the 12-fold way but I think I might have to make that set myself.

Playing with Anki enough to feel confident that I can keep to it for years makes me realized that I'm not sure what it would be good to memorize. It seems wise to ask other people what their strategy with Anki is so I don't look back two years later and not feel like I spent them on things that were too silly or dissipative :-)

Playing with Anki enough to feel confident that I can keep to it for years makes me realized that I'm not sure what it would be good to memorize.

Is http://www.gwern.net/Spaced%20repetition#what-to-add helpful advice?

Yes! Good essay! It never occurred to me to think of calculating whether I'll save minutes over my life by memorizing versus looking up.

In that essay you touched on the possibility of creating practice problems that generate a new puzzle each time to build skills. When I was trying to find or imagine the best way to create something to study tesuji I ran into this. Would it be better to memorize 150 specific positions and where each one's best move is or have a new one every time and practice? I suspect the memory research that justifies spaced repetition might not apply to skill development as opposed to simple recognition and recall. This might simply require experimentation to settle? I dunno.

Something that occurred to me yesterday after jogging was that the best things to memorize are probably meta-reference material that's likely to be stable, like the library of congress non-fiction classification system... what subject is NZ? What are the three best selling non-fiction titles under NZ? That kind of thing. That way you might hope to have instantaneous recall that something in the library will help when you run across a specific problem that books exist for. You can find and scan the books based on running into the problem in real life, but the existence of the books will (hopefully) be trigger by the simpler memories.

Similar reasoning suggests that, it might be good to memorize the name and purpose of all the commonly tools that can be installed and run library in debian from the command line, and all the libraries that exist in one's preferred programming language.

I suspect the memory research that justifies spaced repetition might not apply to skill development as opposed to simple recognition and recall. This might simply require experimentation to settle? I dunno.

I think that the theory that 'procedural memory decay at the same rate as declarative memory' is a reasonable default theory, and I haven't noticed any real difference in average grade (accuracy of recall) for my programming cards and my more normal flashcards. But certainly I pay attention to any research I come across which seems like it might be germane.

Similar reasoning suggests that, it might be good to memorize the name and purpose of all the commonly tools that can be installed and run library in debian from the command line, and all the libraries that exist in one's preferred programming language.

The problem with that is that memorizing all random tools is a big commitment. There are hundreds and thousands of such tools, which will cost you many hours, and you will only ever look up or want a small fraction of them, and search is fast. How long does it take to refind a tool via Google or just apt-cache search? A few seconds?

If search is always less than 5 minutes, eg., there's little or no point in memorizing the list, because even if you eventually used every single entry in the list, you still have a net loss of time.

OK, but I didn't even know that "apt-cache search" existed until you just mentioned it. I like the idea of debian but I usually get stuck using CentOS. So I think that might count as evidence in favor of doing something in the ball park of what I suggested, just with the right filter on what's included and excluded? Probably much of the value of the deck would be (1) figuring out which things are useful enough to know about that would seriously help someone if they forgot about them or were ignorant in the first place and (2) making those decisions available for other people to memorize without having to do all the prioritization and searching.

Also, that example seems to confirm the idea that some kind of overview of "library science and reference searching and help navigation" techniques would be really useful. When I punch "library" into Anki there are only two decks so far, one for the built in functions of python and one connecting locations on a map to their chinese name. Both come up because they mention a URL that has "library" in the directory structure rather than because they're aimed at what I want.

So I suspect that no user of Anki with enough skills to make and publish decks has thought about these issues for very long? Or I'm on the wrong track with my thinking? Perhaps Anki can't really improve on the XKCD problem solving flowchart? Hmmm...

Probably much of the value of the deck would be (1) figuring out which things are useful enough to know about that would seriously help someone if they forgot about them or were ignorant in the first place and (2) making those decisions available for other people to memorize without having to do all the prioritization and searching.

My personal impression is that tools seem to follow a sort of exponent or power law where a few tools are used a ton of times, many are used only once or no times, and there's a reasonable middle ground of things used from time to time.

Tools in the first category are so common that SRS offers nothing. I don't need a flashcard to remember ls or cd. Tools in the third category would be wasteful to put into SRS, per my previous comment about search being quick and faster than 5 minutes.

The second category might be useful in SRS, but how do you generate them before-hand? I don't think you can. Everyone uses a different 80%. That sort of list can only be generated with heuristics like 'if I use a tool twice, then memorize it' or in retrospect ('I used tools x, y, and z with frequency n, and the total search time for each was >5 minutes').

That article says that each person uses 20% of the tools, not 80%. If everyone used a different 80% that would seem to imply at least a 60% overlap in usage for two people, and at least a 40% overlap for three. Probably the overlaps would fall more or less slowly for different tools along the usage curve you proposed. It seems like there should be some way to at least estimate the expected value here...

Maybe you could check package download statistics and history data (or something?) to see which things are most installed and most used. If you had data from many people I bet you'd find clusters in usage space that could turn into different sorts of flash card decks to help a person "join" that cluster, or become capable of code switching between computer usage styles? Or another use might be to help someone who takes an N year hiatus from coding who doesn't want to get too rusty at the keyboard?

Maybe you could check package download statistics and history data (or something?) to see which things are most installed and most used. If you had data from many people I bet you'd find clusters in usage space that could turn into different sorts of flash card decks to help a person "join" that cluster, or become capable of code switching between computer usage styles?

AFAIK, the Popcons all heavily anonymize their data down to 'installed or not', and don't include anything useful for clustering. (This is reasonable because with the dozens of thousands of packages and whatever power laws or distributions are involved, it'd only take a few idiosyncratic package installations to break privacy.)

So maybe clusters would be efficient enough - although keeping in mind my 5 minute rule and the point about it being very easy to search for programs, I still think it's unlikely - but currently I don't know of any way to generate them.

Please do.

How can I create my own deck programmatically? In other words, if I decide to make my own multiplication table deck, I want to do it with for loops rather than typing all 100 multiplication facts into Anki itself. I was unable to answer this question myself with a bit of searching, although it looks like .anki files are SQLite databases, so I could reverse-engineer it.

(Your post, by the way, did provoke me into getting around to installing Anki, even though I run Linux not a Mac.)

Edit: I just noticed that "File" > "Import" has a "Text separated by tabs or semicolons" setting that will probably do the trick.

Edit 2: The Anki documentation gives the details of how the imported file should be formatted.

I do think Anki is great... but do people really not know how to install this? I guess after the Android post this almost seemed a bit redundant :)

Can I make a post that has all of the above steps except it starts out

sudo pacman -S anki

?

I'm mostly teasing you... but perhaps these could have worked as just one post titled "Anki in 60sec." Then differentiate steps 1-2 for Android, iPhone (if it exists?), OS X, Win, Linux (many distros, of course)... and then the rest would stay the same.

[-][anonymous]60

On the other hand, LW now ranks in the top 10 Google results for "anki on mac" and "anki on android."

That's definitely a benefit of a specifically titled post, I guess.

I'm just trying to get people past trivial inconveniences.

Your suggestion sounds like a good Wiki page.

Fair enough!

A word of warning: When I try to load large decks (>>200 cards), my fairly new iMac system seems to hang. Works fine for smaller decks, though.

Weird.