174 comments

[ 3.4 ms ] story [ 155 ms ] thread
I started using Anki a few weeks ago when the SuperMemo article popped up on HN. I really like it, and it has helped me remember key terms and learn a new language, all in a really short time...

Feel free to ask me questions if you're confused about how it works! I'm fairly experienced now.

I want to learn Spanish. I have a basic vocabulary and understanding. What’s the fastest way forward in your opinion?
On AnkiWeb there are a ton of decks available made by other people, including some really high-quality ones for Spanish. I'd recommend you download one of those, and then if there are words/content you're already familiar with, I believe you can go and set that you've already "learned" those words.
Other than Anki, clozemaster and supermemo.com are two good paid options. I'm currently paying for supermemo.com*, and the two decks I'm using for Spanish seem to be pretty good.

Clozemaster uses word frequency lists and sentences. Honestly it's (clozemaster) one of the best free SRS products I've seen for multiple languages.

I'd avoid memrise (too many horrible quality decks). Duolingo isn't bad but certainly isn't comprehensive by any means.

The reason I'm paying for supermemo.com is because it has a good quality Chinese deck and those are hard to come by. I also want to use the updated SRS algos that it uses. SM-2 is really old and does not handle skipped days well at all. The newer versions of the sm algo are much better in that respect.

Note that flash cards have only limited usefulness with learning languages: you can use them to remember grammatical rules at first, then do isolated word-choice tasks and expand the vocabulary. You'll still want to do massive amounts of reading in the target language to absorb the proper word usage, and the grammatical practices will stick better this way.
I recommend https://supercocoapp.com - it’s my app, so I’m biased, but it has great content and one of the few apps that really focuses on listening and speaking.
"Fluent Forever" has a suggestion of putting a picture (from, say, google image search) on the front of the card, and the foreign word as the answer. That way you test yourself by producing the correct word without translating it from language 1 to language 2.

Example for Spanish:

Front: picture of a "gatito" from google image search. Back: gatito

The word "kitten" is not used at all. No translations!

The reason you search images in the foreign language is that sometimes the foreign word has a different connotation, and isn't a direct translation. (The example he used was for "girl" in Russian. девушка supposedly means "girl" and yet when you search it, it's (mostly) seemingly a certain type, not "girl" in general.)

What you say makes sense.

In that particular case however, there might be a simple mistake: девушка doesn't mean "girl" in russian - it means "young woman". A "girl" would be девочка.

That only works for simple words. For example when I google for "Zufriedenheit" (satisfaction), I get a picture of a red boat.
Spaced learning really works. I've started to slowly convert python, sql, and postgres docs to flash cards in Anki.

Anki's implementation has some rough edges, but for $0/mon for multi-device use, it's an amazing way to get your feet wet with this learning technique.

The iphone app costs like $25 tho.
I was taking a Japanese course couple of years ago. The course was difficult and if you did not pass mid-term and end-of-term exams you had to repeat the term which costed a lot of money. Fearing that I could fail I decided to invest in Anki. Needless to say it was the best spent $25 ever.

$25 is surely expensive for a simple app, especially if you are a student without a steady income. But if anyone wonders whether Anki is worth this much money - try thinking of the potential benefits.

And I bought it even though I use AnkiDroid on my Samsung Note 3.

Why? Because it is the only way to support Anki's sole developer. He cannot take donations due to Japanese laws. AnkiDroid also does not take donations, though I do intend to start contributing code to that project.

If you really enjoy Anki, consider buying the iPhone app even if you don't have an iPhone.

There’s now a free app that seems to do the same thing.
Afaik this one cannot connect to Ankiweb, therefore you can't sync your status with other devices.
It does seem to offer sync, too. Not sure how well the sync works, but the app says it will sync.
If the Anki iPhone app were the only way there was to do spaced repetition, I wouldn't hesitate to pay $25,000 for it. $25 is a pittance for the work Damien Elmes puts in, not to mention his efforts in maintaining the sync server so you can easily stop and resume your sessions on any device.
Also worth reading is the excellent (and pretty extensive) article by Michael Nielsen[1] showcasing how he used Anki to create an in-depth knowledge about AlphaGo.

Personally, I've used Anki to keep remembering/revisiting the concepts that I use for a while and then move onto something else. Common APIs of programming languages and their standard libraries is one such area. I've found that while it's not really difficult to learn and get into the flow of using a programming language (or history, mathematics, physics for that matter), it's more difficult to try using the same knowledge after a break of few months.

My main language at work is C# and Web Development, but I keep trying to learn other languages and domains in my free time. If I do not use the knowledge for a few months, I forget everything. But with Anki I have to just open the app for around 10 minutes a day and it helps me to recall such concepts in a timely fashion.

I would suggest everyone who has the time and faces similar issues should give it a shot.

[1] http://augmentingcognition.com/ltm.html

This article is the best summarization of real, everyday usage of Anki outside of language learning and medical studies which are common uses of Anki. Reviewing flash cards is the highest leverage 10-15 minute habit I have besides planning my day. There's a certain joy and relief from having a reasonable confidence new information will be readily available to you for years to come. Much knowledge is better absorbed through practice, conversation, and writing. If you can distinguish between what you can learn through flash cards, and what you can absorb through other practices and not conflate the two too much—you'll be in a great place.

Some categories of cards I have that may serve as inspiration for others wishing to get into flash cards..

  * Basic information about countries e.g. population
  * Ingredients and dishes from restaurant menus I didn't know
  * Important people and places
  * History facts (typically from Kindle highlights)
  * Conversions between units (e.g. lbs to kg)
  * Season for various vegetables and fruits
  * Keyboard shortcuts for vim, readline, etc.
  * Learning words and terms I don't know from Kindle/Instapaper highlights
  * Useful statistics
Thanks for the inspiration, I've been using Pocket (and browsers) to bookmark everything I want to recall (like history facts or important people like you pointed out), I knew Anki but never thought about this, flash cards looks like a more simple and efficient way to accomplish this.
Great inspiration, care to share the links?
What specific techniques are you referring to when you mention planning your day as a high leverage habit?
Is there a convenient workflow for kindle highlights - > flashcards?
The best way I know to get highlights from kindle (I only use iPhone) is to click the "My Notebook" icon (looks like a letter paper page), click the export button, and then send to email. There is a notecard option there as well but I haven't tried it. Not exactly a solution but I'm mentioning it because it took me a while to notice.
A great list! Very similar to the kinds of things I put in Anki.

Do you have any other ideas/suggestions?

I experimented with anki in law school one semester.

I decided to feed all the concepts of my criminalistics class into the program and only study that way. The class contains a lot of procedures and tidbits you kinda have to memorize (It was a bad class, I think it should've been taught entirely different but that's another subject).

I came out GREAT. I aced the fuck out of that class and I didn't even have to use anki every day.

org-mode has an implementation of several spaced repetition algorithms, which is what Anki is using under the hood and what was originally invented for SuperMemo. The module is called org-drill.

I'm in the process of turning many knowledge aspects of my life into a personal knowledge base inside org-mode. For books I'm reading, I find it invaluable to create org-mode items. One per concept. Sometimes I don't even bother filling the content. E.g. I just use a title like "Hadamard transform definition" and nothing else. It'd be to time consuming to write up the definition, and it's pointless as that's in the book anyway.

Then, org-drill brings up some of this cards according to the spaced-repetition algorithm. I answer them with pen and paper. Sometimes I need to prove a theorem, or recall a definition like in the example above. I then open up a book to check my reply is correct and grade myself accordingly. It's a great system to systematize learning.

What I've written also has a connection with productivity systems like GTD (which I don't use personally but serves to illustrate my point).

Many if not most people on HN are knowledge workers. For us especially, many tasks in our inboxes are non-actionable. E.g. a link you stored that teaches a great trick to use your editor, or an elusive shell one-liner you came up with.

What to do with these? A good productivity system should also include a knowledge base, so that those non-actionable bits of information that have future value can be easily stored and later retrieved. Here they explain it better than I do: https://praxis.fortelabs.co/gtd-x-pkm-8ff720ef6939/

A further tweak is to force spaced repetition on those knowledge bits you want to be able to learn by heart. In Emacs, you can achieve this by simply tagging them for later org-drill (spaced-repetition) sessions.

As a student I used to do this with pen & paper. I would patiently deconstruct books into extremely long lists of items that included definitions, theorems, corollaries, demonstrations, and whatever concepts in the right order. Then I recalled them during repetition sessions. Doing this with a spaced-repetition algorithm is a much more efficient way, as you focus your effort on hard stuff and you time sessions appropriately to maximize the chances of learning it.

Since we are talking about Emacs now, there's a package[1] for Anki just like everything else in Emacs. :) This basically connects to a background server of Anki, you create a card and press C-c C-c to send it to Anki. End of the day, just sync it.

I am one of those guys who try moving everything to Emacs, but personally I found Anki to be much better than org-drill just for the simple reason that I can go through the cards quickly using the phone app when I have some time (waiting for someone, something, etc.). With org-drill I have to be in front of my machine.

But yeah, I've pretty much sold to org-mode. I, too, have been creating a knowledge base inside org-mode. This contains the deeper knowledge and explanations, while the tidbits are in Anki. Org mode notes are like fat nodes, and Anki cards are the threads which bind them. I personally have found both to be very useful together.

[1]: https://github.com/louietan/anki-editor

One of the problems with this approach (one-way sync/extract from org-mode files to Anki database) is losing out the context (imagine org file notes from a technical books). I use org-drill in combination with org-sticky-header, which show the path of headings to that particular node. Normally in Anki, this requires to add some extra descriptions or tags for this purpose. In org-mode, we get this for free.

But on the other hand, org-drill will fill your org file with scheduling and metadata drawers (I did some hacks to hide them but not able to make it work without messing the org-ellipsis).

Another drawback with org-drill is it manages schedules for one "card" per heading, hence cloze items are not scheduled individually. So, either you remember entirely "Alfred North Whitehead wrote [Principia Mathematica] in [1910]" or not at all. In Anki, not only the book title "[Principia Mathematica]" and the written year "[1910]" are tested separately (same as org-drill), but also scheduled/scored separately too (where org-drill falls short).

I use both, org-drill mostly for books, Anki for "standalone" facts. But I'm always wishing for some kind of a system that hit the sweet spot between them two.

The system described here is in many ways similar to Incremental Reading [1], which also uses an algorithm to schedule when to read the URLs provided. (the Anki addon is fairly primitive though, would rather use a browser plugin that remembers how much I read from each webpage instead)

Also worth paying attention when reviewing flashcards, as described in [2]:

  And when I rush through my flashcard reviews, I’m not thinking. I’m focusing on the wrong question: “Do I remember this perfectly?”
  Instead, whether I happen to have perfect recall or not, I should focus on: “This is my time to think about this again.”
  Major paradigm shift.
[1] https://ankiweb.net/shared/info/1081195335 [2] https://yourawesomememory.com/reviewing-as-thinking/
I’m using anki to gradually learn japanese kanji using the RTK method. Working really well so far, up to about 800 with little struggle.
have you tried readlang? I'm really happy with it, but I'm studying German. Not sure if it works with asian languages.

The website doesn't emphasize it, but readlang has a spaced repetition vocab tool. With multiple (at least for romance languages) built in dictionaries.

Readlang sounds quite promising, I will try it for my Spanish! Thanks for sharing :)
Looks super useful, thanks! May try it for German.

The system I'm doing isn't s reading one though. Instead, you associate each of the 2200 Kanji with an English keyword. You break down the kanji into component primitives, and then you remember how to draw each one by visualizing a phrase associated with that keyword.

For example, Seedling:

The top part is flower: 艹

The bottom part is rixe field: 田

You can make a story like: if you plant seedlings in a field, they will flower. And you imagine it visually. (Note, I have terrible visualization, but can do it well enough for it to work)

This is a really simple example, but you can get more complex stuff. The system generally sticks to Japanese etymology, but sometimes will make up new primitives where it's more convenient for learning.

Take my advice, as a somewhat advanced learner: don’t do this. RTK is this weird honeypot for beginning learners, but it’s nearly always a mistake. The “discouraged RTK user” is almost a comic meme in Japanese language study.

You will spend months “learning kanji”, only to discover that knowing kanji meanings, in isolation, is unhelpful in most situations. You can get all of the same benefits, with more immediate utility, by just learning words.

Thanks. So, I'm actually doing it as a side thing while learning German. I have found I can't do two languages at once, but that learning the characters doesn't interfere.

I should finish them by April or so, and be advanced enough in German at that point that I can switch to Japanese. At which point I'll do Pimsleur and Assimil.

I think having the character base will accelerate that process. I previously tried Pimsleur Japanese, but found it didn't go smoothly compared to European languages I've done. The lack of characters was a big hurdle.

Thanks though. Is discouraged RTK learner someone who completed RTK, or someone who fails to

Someone who fails. The usual pattern is: new learner goes all-in on RtK, makes it a month or two, then gives up after realizing that they’re making no discernible progress, even though they “know” lots of kanji.

There are useful parts of RtK, but they’re the parts Heisig didn’t invent: radicals and mnemonics. You can (and should) employ both, but in the context of words. As you learn words, the “meanings” of kanji will naturally settle in your brain.

RtK people love to argue that it helps them infer the meanings of words and discriminate similar kanji. But in practice, it’s insanely difficult to do the former (except for simple words), and the latter is rarely necessary. It’s far more common to encounter 2-3 kanji compounds with unique meanings that recombine into words, than it is to find words that compose meanings from their individual kanji.

Yeah, I could see that happening. I'm not expecting it to be a panacea, just a mild accelerant I can actually do while waiting to finish with German.

What do you think of that plan? My assumption is that I'll better be able to learn the words in the Pimsleur course the second time around when I can see the writing, and that this will make the overall process easier. It felt like too much, cognitively, the last time.

And at my current pace, the Kanji are about 30 min per day, so it mostly feels fun. If I were doing more I don't think it would be worthwhile, it would be stressful.

To be honest, I think you’d be better off just studying words. Studying kanji really doesn’t help you.
Right, but zero? I can’t study Japanese words at the moment without interfering with German.
If you're doing it mostly for fun with a side benefit of recognizing a few characters here and there, go for it. Just know you're choosing to learn in a way that's not really recommended for most.

If your learning goals are mostly focused around reading, it's helpful a bit.

If you want to actually understand and use the language, hiragana, katakana, vocab and grammar have much higher utility.

This is correct.

My most complete advice would be to focus exclusively on the language you’re learning and don’t futz around with half-measures, but who am I to tell you what to study? If you’ve gotta satisfy the itch, then sure, you might learn something.

Is there a popular repository of shared Anki decks other than https://ankiweb.net/shared/decks/?
Not that I know of, but I recommend making your own decks. Two reasons: you only add what you're interested in learning as you're reviewing material and figuring out how to make the cards for your material helps learning.
I recently started a new job, and wrote a quick script that scrapes a slack team for all the names and profile photos and creates an Anki deck out of it. I'm usually terrible with names and faces so this helped me immensely.
Do you mind sharing the script? Because the company I work for has grown at an insane rate - and there are a good 300+ coworkers I don't know. It'd be nice to know peoples' faces for when I see them walking around the building.
Sure, I'll paste a link to a gist or something later
Hah! I used the Meetup.com API for the same reason. Super annoying that lots of people use avatars though right ;)

I also do this for friends and the ever growing list of baby names that I can't keep track of.

Some people's Slack avatars are dogs, pictures of two or more people, etc, so I'm overtraining a lot but overall it's positive.
Seconded. I'm pretty sure that every minute spent making your own cards saves at least 2 minutes spent reviewing them.
While I do like the project, the webui is horrible :/.
It's a lot better for the desktop app and the add-ons make it more powerful.
This looks like a derivative/expansion of the Leitner Method[0] which I first came across over on Reddit in /r/flying for flashcard-based studying. I have definitely always had more success with paper-based studying than studying electronically--I recommend that you take a look at that document if you fall into this category as well!

[0] https://drive.google.com/file/d/0BzlHy07nfEjOQ2hXWjU3LWpDdmc...

(comment deleted)
I'd say one of the main benefits with Anki or SuperMemo is that the automation of the algorithm allows for many more variables than you could track manually. For each card, the history of its reviews can be remembered and taken into account―e.g. both Anki and SM have several possible answers for how well you remember the card instead of just "yes/no," varying the next interval relative to the previous one. You can tune parameters for each set of cards, allocating more or less attention to them depending on how easily you remember different kinds of information. This control, IMO, optimizes the schedule over the course of months. (Though it does make tweaking the params rather complicated sometimes.)
I always kinda wondered how to make Anki stuff for like algorithms and the like.
For Anki, I'd grab the complete article from Wikipedia/textbook/[good source], and then write a few examples. The flashcards would be a number of cloze deletions, and then I'd have a separate deck with a practice question to recall from a blank state. For example [1], I'd take this Wikipedia article, and break it down like so:

In computer science, a stack is an abstract data type that serves as a collection of elements, with two principal operations: pop and push.

This sentence would become a number of flashcards that look like ([...] is a cloze deletion where you have to insert the missing word, each cloze is a flashcard):

In computer science, a [...] is an abstract data type that serves as a collection of elements, with two principal operations: pop and push.

In computer science, a stack is an abstract data type that serves as a [...] of elements, with two principal operations: pop and push.

In computer science, a stack is an abstract data type that serves as a collection of [...], with two principal operations: pop and push.

In computer science, a stack is an abstract data type that serves as a collection of elements, with [...] principal operations: pop and push.

In computer science, a stack is an abstract data type that serves as a collection of elements, with two principal operations: [...] and push.

In computer science, a stack is an abstract data type that serves as a collection of elements, with two principal operations: pop and [...].

You'd do that for most of the article. Find a few examples of a stack, do the same thing from cloze deletions, and then in a separate card, make a few questions to have you write from scratch, parts of a stack.

The separate deck would be so your regular reviews don't take forever, when you get a question asking you to write out a stack. The other deck would be done say 3-4 days a week, and have many fewer cards, because they're going to take awhile to answer. You could even use the index card method for this part as it's closer to actual practice than recall.

In another deck, I'd also have short answer questions. For example, what's the difference between a stack and a queue, or stack and array, etc. This would also be more for practice sessions, rather than daily repetitions, as the questions could take awhile to answer.

Note that you'll have a ton of flashcards this way for each algo, but they'll be extremely easy to answer (a good thing). Five flashcards you can answer in 2-10 seconds each, is much better than one flashcard that takes you a minute to answer.

Assuming five seconds to answer a flashcard, you could easily do 120 repetitions through the day. The nice thing about Anki is the mobile clients, so you can do a few cards while you have some downtime. When I was in school, I was usually doing flashcards while I was waiting for class to start or going to the bathroom etc.

That seems like a waste of flashcards to me, but if it works for you, it works. I would just create one flashcard for front and back. What is a stack in CS? A stack is an abstract data type that's a collection of elements, with two principal operations: pop and push. If an answer's longer than 1-2 sentences then it's time to break it apart into different questions.
I find it somewhat excessive (and I still make poor cards even my by own guidelines all the time), but I try optimize to make my flashcards as easy as possible to answer according to [1].

Especially in the long run once you get thousands of flashcards, and have a few breaks because of life. A general rule of thumb I go by is that my answer should be shorter than the question.

Even in your answer there's three or four separate parts to it. You have:

1. An abstract data type 2. collection of elements 3. Two principal operations 3a. Pop and push

[1] https://www.supermemo.com/en/articles/20rules

Fair enough. I guess I'm pointing out with cloze questions that don't hide all the selected text, you're perhaps making it too easy. I prefer hiding all, showing one. On a test, you might be able to get similar hints but if the understanding isn't there you might be thrown off by different wording. If I'm creating the knowledge for work, I'd rather simplify as much as possible, break up into different parts where necessary, and learn the answer exactly. Relying on additional context is not something I'd do. For those reasons, I'd prefer regular flashcards when possible. The other benefit of a single flashcard is it's easier for organization purposes.
Always wanted to try this, never was sure how to use it for algorithms and the like though.
For anyone who wants to use spaced repetition for learning languages, I recommend Clozemaster[1]. It uses the cloze deletion technique and has thousands of sentences for most languages. Using it has significantly improved my German.

[1] https://www.clozemaster.com/

[2] https://en.wikipedia.org/wiki/Cloze_test

Interesting, I just tried it for Japanese. But too often I could fill in a word without understanding it (there's often only one grammatical form that fits). Also each sentence is accompanied by English translation which feels a little bit like cheating ;) Does the method still works even with the translation available?
It works, but you can actually disable the translation in the settings, or make it show after you've answered.
I started Anki about two weeks ago and I've already reviewed over 1,200 cards. It's a fun way to start the day and is surprisingly therapeutic. It really makes remembering a choice.
I couldn't imagine learning a language without Anki. I had to learn Coptic in a month, which required memorizing the most common ~1000 words in the language. Anki made this as easy as it can be. I don't think I would have been able to meet my deadline had I been making paper flashcards or using some more informal system.

The nice thing about Anki is that you can use it at any time without any overhead associated with beginning or ending your session. There are so many scraps of time in my day (on the bus, waiting for someone to meet me, waiting for my food to heat up in the microwave, walking to the store, etc.) that are mostly only useful for being a zombie on my phone, enjoying my surroundings, or being alone with my thoughts, which are all also sometimes appropriate uses of the time, but in all of these times, I can also just pull out my phone and start reviewing my cards, even if I get in just a few.

What was your list of the most common ~1k words? Do you have a link?
This is an Anki deck that was made from the book I used: https://ankiweb.net/shared/info/1657789477

I made my own Anki deck because this deck didn't have tags by chapter, and I wanted to study only the words I'd been exposed to so far.

Thanks for that - do you know if there is a way to export the list of words without going through the full process of installing Anki? I'm interested in different people's concept of "the thousand most useful words" and would love to extract the list you've used. It seems like it would be less overall work for you to do it than for me to do it, although I realise I'm asking you to do work.

Thanks.

Looks like the APKG format is a SQL dump[0], so perhaps, depending on how determined you are. My cards wouldn't be too useful as they are because many cards contain English prompts ("Which verb forms must have their direct objects incorporated into bound states?"), and the cards that do contain words have various inconsistencies depending on the part of speech, such as lemma-like forms that you would never see in an actual text as-is for prepositions, or multiple conjugation bases for verbs. So yeah, it'd be a hassle to put it into a normalized format. Sorry about that.

Not sure what the nature of your interest is, but I'm sure you must be familiar with what a Swadesh list[1] is? It's only a couple hundred instead of a thousand, and the words (or rather, their meanings) are chosen in advance, but it's a close concept.

[0]: http://decks.wikia.com/wiki/Anki_APKG_format_documentation

[1]: https://en.wikipedia.org/wiki/Swadesh_list

>I had to learn Coptic in a month

What kind of job do you do?

I'm a PhD student in computational linguistics. My advisor is the principal for a repository of digitized Coptic texts[1], and while I wasn't required to learn the language as a part of my role as a research assistant on this project, I wanted to because it'd make my contributions better. (And I had a couple of months of free time in the summer after I quit my job and before I started school.)

[1]: http://copticscriptorium.org/

That's really cool. Was expecting more of a intel / research role answer, but that makes a lot of sense
I've had huge success using Anki in taking required professional exams. I'm in finance, so at various times I've had to take the JSDA, the Series 56, and Series 65.

I originally signed up for a Kaplan class for the 65, thinking it was going to be a cram class. In reality, it turned out to be a review class. Halfway through the first day on Monday, I told the teacher I hadn't started reviewing the material yet for the test on Friday. He said I was essentially a lost cause, and I should sign up to take the test again in a month.

I immediately left the classroom and spent the rest of the day entering every question from the practice exams into Anki. I spent 8-10 hours the next 3 days doing nothing but running Anki questions. On Friday, I crushed the exam.

Other useful things I've learned with Anki include the Number Major System and the answers to a bunch of those useless "brainteaser" interview questions.

I used Anki for about a year, and it definitely didn't work for me. Going through and remembering the answers was always a struggle. I only ended up with 36 cards -- the idea of making a bunch for every person I meet and book I read would overload my memory like crazy.

My memory has always been really good at indexing "what's the word for that", "there is an algorithm for this called X", "the keyboard shortcut for this is Y", "there is something weird about the way Z works in situation W". But it's index only, and I have to look up the content every time. At least since I turned 35 and realized I was forgetting the answer to every problem I'd solved before.

It's been 2.5 years and I don't remember the answers to any questions. Maybe using it for precise definitions is the wrong way, as that might be more like remembering 20 things in a row. I had questions like

Q: What is type erasure? A: Java implements generic types by deleting them. It does a compile-time check that your types match, then replaces the types with their bounds (eg, when T extends Number) or with Object.

I have retained a vague, but not precise knowledge of what type erasure is. I know exactly what to do when I program something that uses it. But even Anki can't give me the kind of sharp memory you might need for a job interview or quiz.

It's so easy for me to learn things by working with them. Hundreds of concepts, functions, keywords, and strategies a year, more than all my colleagues. I tried to memorize the things I don't use every day. It was unpleasant and that made it unsuccessful.

Your answer doesn't answer the question. You ask what type erasure is and then answer with some very specific information on Java's generics. Nothing in your question indicates that it's about Java or generics.

> Maybe using it for precise definitions is the wrong way, as that might be more like remembering 20 things in a row.

This is exactly what it can be like. The 20 rules from SuperMemo are really useful for trying to formulate and transform the cards.

https://www.supermemo.com/en/articles/20rules

It's always odd how failing at most things leads me to ask "how am I doing this wrong?" and overcome, but I never asked this about Anki. Thanks for the link.

I was not aware till this moment that type erasure was something that C++ also has. I thought it was a specific gotcha for Java like the whole "no == for Strings" thing. In that context, I've only seen it connected to generics.

> Going through and remembering the answers was always a struggle.

That's a definite hint to adjust the procedure, e.g. change the schedule. There are plenty of variables: some cards are better learned together because they are too similar, and you'd have trouble recalling them among other ones (I have this when going over geography, with countries that are in busy regions like Oceania or the Caribbean) ― you can pull them into a "filtered deck" by a tag and study them separately. Or, you do the opposite and put several decks into a grouping deck so you have to remember different kinds of facts in mixture instead of drills on specific topics.

Some answers are poor fit for one's memory, so you change them until you feel comfortable and retain the knowledge. E.g. I can't remember population of countries and cities with good precision, so I allow myself some slack with the answers.

Regarding the schedule, I found that I have to have a tighter schedule than the default, and I also employ the "bury" feature to repeat some cards. Plus, I have different limits on the numbers of new and reviewed cards for different decks.

If you find that you need more context to retain the knowledge, I'd think it suggests that you should have more cards, not fewer, and they should have closely related information, even partially duplicating each other. Maybe also have more info on each card, such as code examples. It can be time-consuming to create the cards yourself, but there are ready-made decks, including plenty on programming, and it's also possible to convert cards made for other apps. (Might be also fruitful to see how others make cards, and borrow some ideas.)

Generally, IMO spaced repetition simply "automates" the natural need of the memory to have the facts repeated to remember them―and other tricks, such as addition of more context, would also help. But, of course, for some people the right approach might be to abandon flash cards altogether and employ something else, such as practical exercises.

If anyone is familiar with memrise, is it simmilar?
It uses a similar algorithm, yes.
It does, but many of the decks on memrise are horribly made, so I stopped using it. Clozemaster is much better in my opinion.
I've been using Anki for some time and I love it but it's not a perfect tool. What I especially like is it's flexibility when it comes to designing flashcards. You can adjust colors, font-sizes and pretty much every visual aspect using css code. You can even embed your own font within a deck, which can come in handy when you are dealing with Japanese kanji (Printed and handwritten kanji sometimes differ and iPhone contains only "printed" versions of kanji fonts. I searched online for a "handwritten" font and embedded it into my decks).

There are cons too. The flexibility comes at the price - while reviewing the flashcards is smooth and easy, creating a deck can be very frustrating - the interface is not the most user-friendly. I ended up creating decks in Excel, exporting to csv and importing in Anki. That made the whole process much easier but I still had to jump through some hoops to achieve that.

Another problem (with the algorithm, not Anki itself) is that it's very easy to forget what you've just learned if you don't keep using the app. It's super easy to learn hundreds of vocabulary within a short period of time and pass the exam, but you need to keep reviewing the deck for at least a year, otherwise you'll forget it as quickly as you've learned it.

> Another problem (with the algorithm, not Anki itself)

My main gripe with the algorithm is you can't take weekends off. I used Anki a lot in College, and Mondays where terrible, due to the backlog built-up over the weekend.

One could also say, one shouldn't be drinking the weekend away ...

Actually, it's mentioned several times in the docs that you shouldn't think that backlog build-up means you have to crunch―or more specifically, IMO, 'backlog' isn't a thing here at all. If you can only put in thirty minutes a day, then do it and then close the app, this doesn't change because of a missed day. The cards will be there the next day, it's not like they catch fire when you skip a session. Stressing over the backlog would likely only make your mind work worse.

Instead, change the limit of cards to review to the number that you can get through in the time you have.

(Unless your college schedule requires you to actually crunch some number of cards every day? I don't know if that's a thing, but using spaced repetition in such a case would seem ill-fitting anyway.)

> Instead, change the limit of cards to review to the number that you can get through in the time you have.

I actually brought this up with the devs. The way Anki counts this limit is just how many draws from the stack. A better way (and much more intuitively aligned with the wording) to count this, would be to limit the size of the stack you draw from.

> Another problem (with the algorithm, not Anki itself) is that it's very easy to forget what you've just learned if you don't keep using the app. It's super easy to learn hundreds of vocabulary within a short period of time and pass the exam, but you need to keep reviewing the deck for at least a year, otherwise you'll forget it as quickly as you've learned it.

Wouldn't it be more accurate to say that this is a problem with human memory in general?

I use supermemo, and the vast majority of my collection isn't language related. For languages, something like clozemaster, supermemo.com, or premade anki decks/courses are fine.

I still find it odd that the only two groups of people who seem to use the software a lot are med students and language learning enthusiasts.

Supermemo is really buggy, and the website is extremely disorganized, but has a lot of useful information on it. The main reason I use it is its incremental reading function. Essentially, you can import articles, and turn them into flashcards in one swoop, while still having access to the full text via built in search (if you choose).

For example, I just finished importing most of the CSS reference [1]. And it only took me ~10 minutes to open the tabs and import them into Supermemo. Each page will get whittled down into flashcards over the next few weeks.

As others have stated, my srs usage is actually quite a small portion of my day, and extremely high leverage.

The hardest skill to learn is learning how to make flashcards properly [2]. I almost exclusively rely on cloze deletions now.

I do my repetitions in the morning when my memory is still fresh.

[1] https://developer.mozilla.org/en-US/docs/Web/CSS/Reference

[2] https://www.supermemo.com/en/articles/20rules

There's a plugin for Anki for incremental reading: https://github.com/luoliyan/incremental-reading

(Though I'm not sure how the internal database structure works with that, I think you can't save the whole text along with a deck instead of individual notes―but maybe addons can change that.)

I tried it awhile ago, and it didn't work well, but I'll try it again. Incremental reading is kind of finicky to get right. Incremental reading is the real draw of these programs for me, and Supermemo (despite it's flaws) is kind of the only one that has a decent implementation of it.
Ah, then the plugin likely won't work for you, as Alki is already not a paragon of usability for editing, and since the plugin is bolted on the existing app, it probably results in an inferior experience for such an interface-sensitive task, compared to a specialized app.

I just thought that it might be of interest for people already using Anki and curious about incremental reading.

That's my story as well. I tried the Anki plugin and didn't find it as per my taste.

Now incremental reading for me is a multi-monitor and multipass approach. One monitor has Anki, the other has the thing I'm reading. I keep on reading and keep noting down questions.

I've also come to realise that the context is totally different when I frame a question during reading, and when I revisit the same question later. A lot of times I have to clean-up the question: perhaps add a little more context, change wording etc. so it becomes a bit easier to answer.

I tried it and it did not work well as well - I have been thinking about building a piece of software to solve this issue because I find incremental reading so useful (potentially)
Derek Sivers (CD Baby guy) had written an article about how to memorize a programming language using SRS and Anki:

https://sivers.org/srs

I've used anki for learning German a few years ago and it really worked for me - I was able to learn a few (<500) hundred new words in about 2 months. Not bad at all for a person with no language talent. Although, I've stopped learning the language 3 years ago, I still understand German texts, thanks to anki.

When using anki, a browser extension, enabling creation of flashcards, from the content found on the Internet, is handy. I find a website fluentcards.com and its browser extension, quite OK. Unluckily, it seems not to be maintained and there is no official add-on for Firefox, but you can build it from the github repo [1] and it will work on FF, too. The webpage also allows export of the words saved on Kindle to the anki.

There are also a few extensions for learning Japanese specifically. [2] seems to be the most popular.

[1] https://github.com/katspaugh/fluentcards-extension

[2] https://foosoft.net/projects/yomichan/

Anki has become the de-facto standard for memorizing the large swaths of information required during medical school. Not everyone uses it, but pretty much everyone that does and sticks to it sees impressive results.
> Not everyone uses it, but pretty much everyone that does and sticks to it sees impressive results.

This is another way of say "everyone that it works for gets good results"

It's interesting to note in studies comparing spaced repetition vs. massed learning, when students are asked afterward which method works better, they more often choose massed even though their own test results favor spaced repetition[0]. The upshot is people can use spaced repetition, it can "work" (in the sense that they remember the material better and test better) yet still drop it thinking massed practice to be superior.

[0]https://www.gwern.net/docs/spacedrepetition/2001-simon.pdf

Yeah that's a fair assessment, and I agree that it's not for everyone. But I do feel strongly that everyone should at least give it a shot.
I really like the idea of spaced repetition learning, but it's the little details that are driving me crazy.

I cannot get Anki working on Raspberry Pi. (I have a Raspberry Pi connected to a TV in front of my rowing machine so I can study while I'm exercising.) I tried Mnemosyne but I can't get the sync server working, and I'm disappointed in the formatting options provided. I tried org-drill but adding images to cards is quite difficult.

Right now I'm working on writing some Javascript that can be plugged into web pages to provide the spaced repetition functionality. That way I would have the full capability of html5, css3, javascript, etc. Syncing would be handled by whatever file syncing software the user preferred. Creating/editing cards would be by whatever workflow the user wanted.

If anybody has any other solutions to the problems I'm having (running Anki on Raspberry Pi, Mnemosyne syncing/formatting, etc), I'm ready to listen.

If you have access to a smartphone or tablet, there are some great apps for this available...
Have you tried just going to the website https://ankiweb.net/decks/ and reviewing your cards there? It should work on any device with a browser including your RasberryPi.
I tried going to the Anki website and I discovered another thing that I don't like about Anki. I went to one of my old decks and tried one of the cards; the spacing options for this card were <10 minutes, 1, 2 and 6 YEARS. I'd really like more control over the spacing of the card presentations.
You can actually change that up all in the settings (even on a per deck basis). It takes a bit of tinkering because it's not clear from the beginning what each setting does. Typically if I get something wrong I reset it to 20% of its previous time (so if it was a month since I saw it last I'd see it in around 6 days).

I'd trust the system though. Typically once you get to the point where you won't see it for more than a year you're highly unlikely to forget the content anyway. Although it depends on what you're trying to learn. The default settings are optimised for learning Japanese.

That’s the point of using the algorithm. The recall intervals are based on Ebbinghaus’ forgetting curve. If you want to see the card sooner than one year choose <10 minutes even if you remember it perfectly.

This is why you should turn off showing time until you next see a card in preferences. Trust the algorithm.

You could set the maximum time in the deck options: e.g. set it to 1 month, and all cards will have that as the next interval if you answer them right. After you work through the cards, you can increase this maximum. There's a chance, however, that after all this time you'll have many of cards reset back to beginning.

Or, you can fire up the desktop card browser and reschedule all the cards in those decks—choose "return to the learning queue" so they pop up like new, or set some interval like, again, a month. Then you can do a “custom study” to work through the cards right away. (I haven't tried this method, though, so not sure it will work.)

"running Anki on Raspberry Pi"

It's a bit hard to help without knowing:

- what OS you're using

- what exactly you mean by "I cannot get Anki working", i.e. the standard stuff in a bug report: what did you do, what did you expect to happen, and what actually happened

- what peripherals you're trying to use (e.g. some people using treadmills control their PI using an Xbox controller; perhaps your problem is related to getting that working?

I'm running a Raspberry Pi 3B+ with the latest Raspbian image (Stretch dated 2018-06-27). I used apt to install Anki version 2.0.32. Starting Anki from the command line results in "Import error: no module named QtWebKit".

Apparently, QtWebKit has been unmaintained for quite some time, and has been removed from the latest version of PyQt. When I get the time I'm going to load Jessie onto a spare micro-sd card and see if that solves the problem. If that doesn't work I may fall back to Plan A and roll my own SRS application.

Edited to add: The Raspberry Pi is not attached to the rowing machine or anything else besides keyboard, mouse, and TV. I'm using it to read ebooks, study, surf HN, etc, while I'm exercising.

Anki 2.1 was released 3 weeks ago, and is the current stable release. It depends on newer versions of QT. It might work better than the one from apt.

If you really want to install the one from apt, e.g. because your favourite plugins haven't been updated to work with 2.1, then perhaps this approach will be easier than re-installing the OS:

https://github.com/gnprice/anki-jessie

Thank you rahimnathwani. The procedure took a while to complete, and I'm getting some warnings, but the procedure from https://github.com/gnprice/anki-jessie worked. This should hold me until Anki version 2.1 becomes available for Raspbian stretch.
There's a third-party web client mentioned elsewhere in this thread: https://ankimono.com/

I haven't tried it so not sure if it syncs with AnkiWeb and really works as a full-fledged client, but it sounds like a fitting solution for your stack.

---

By the way, there are bluetooth remotes/joypads for one hand, e.g. Zeemote or mini gaming pads [0] — they may be more comfortable to use with Anki and the TV while exercising, compared to the keyboard and mouse. Afaik people are using them with Anki in text-to-speech mode on phones. And media server apps like Kodi have “big picture” interfaces suited for such remotes.

[0] https://i.imgur.com/EM8HQr4.jpg

Pretty sure that ankimono site is a knock-off. It doesn't seem to be affiliated with Anki in any way, at least.
Ah, it appears that you're right. That makes it at least a second such app leaching off the Anki name.
I really like the https://ankimono.com webapp, although creating your own clone is a great way to learn a new framework or language.
That's a clozed-source knockoff of Anki. With SRS it's important that you choose a solution that will still be working in 5, 10, or even 20 years. Anki being open-source and sporting an open format fits that bill. Also, it has a proper desktop app, so you never need to worry about losing access to your data ahead of an important exam, etc.
(comment deleted)
I've been using Anki since 2013 (almost 5 years). One really nice thing about Anki is that it has analytics. I currently have 4532 cards and my numbers are 99.18% correct answers for "Learning" (very young) cards, 98.44% for Young cards and 92.52% for Mature cards. No way I would be able to remember over 4000 pieces of information without spaced repetition. I truly believe this is the best learning "hack" there is. I've wrote about my experience here: https://www.blinkingcaret.com/2016/05/04/hack-your-brain-lea...
It has been a while since I used Anki and I vaguely recall I have a horrible experience with creating cards.

I really wish there is a way I can create cards in vim or something, but that sounds really limited when it comes to things like Chinese where you need to somehow write out the character or find an image of it on the Internet.

Honest question, what is so hard about writing Chinese to create carss? I find at least typing in pinyin on windows and android isn't so bad, or did you mean specifically in the context of vim?