Hacker News new | comments | show | ask | jobs | submit login
To Remember Everything You Learn, Surrender to This Algorithm (2008) (wired.com)
740 points by colinprince 41 days ago | hide | past | web | favorite | 208 comments



Few people have tried Anki (a free alternative to SuperMemo). Even fewer have tried its add-ons, which is where it truly shines! Vanilla Anki is mostly good for text flashcarding, with the phone app helpful for making use of those little bits of downtime throughout the day.

https://www.youtube.com/watch?v=c-4xOe79epU&list=PL3MozITKTz...

https://www.youtube.com/watch?v=QzBoDe3PgAc&list=PL3MozITKTz...

Glutanimate has taken Anki to a whole new level. He created a painless UI for occluding any part of an image and making Anki flashcards out of it (Image Occlusion Enhanced). I used it to efficiently create and memorize thousands of anatomy flashcards. Ordered lists can be a real pain to memorize, but when not missing steps is crucial (as it is for medical OSCEs), Cloze Overlapper has worked very well.

Anki lets you share your decks with others, and medical students have collaboratively created very high quality study decks for studying for the various STEP exams.

To be honest, I was always a fairly mediocre student. Big-picture concepts and figuring things out on the fly, no prob. But I've always struggled to nail down bits of information long-term or learn sequential information, meaning calc and ochem required inordinate amounts of time. No longer the case. Spaced repetition plus visual/text/auditory learning is a recipe for success.

The possibilities here should not be underestimated. Folks on Hacker News have talked about the value of information commons, and this right here is the next best example behind Wikipedia I have ever encountered. While quality collaborative decks exist for things like medical school, learning languages, and more, none exist specifically for the program I am in (PA school). I am currently creating my own with the goal of it being the core of a quality collaborative deck. I am using Gephi to spatially organize concept maps for diagnoses complete with incidence and strength of associations, when such information is available. I then export these maps to Anki, use Visual Occlusion Enhanced to block out the information I want to recall, and voila: time-efficient first-time learning and long-term retention.


I built an Anki deck to study for the FAA instrument written test and the oral exam portion of the instrument practical test.

Tips and best practices:

* Effective learning: Twenty rules of formulating knowledge[0]

* A list of Anki tips and suggestions that [a medical student] wrote[1]

* Anki Guide for Medical Students[2]

* How to make high quality Anki cards quickly[3]

* Anki Tips: What I Learned Making 10,000 Flashcards[4]

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

[1]: https://www.reddit.com/r/medicalschool/comments/4ocdyb/a_lis...

[2]: https://drwillbe.blogspot.com/2011/08/anki-guide-for-medical...

[3]: https://managingmedicine.org/2013/05/14/how-to-make-high-qua...

[4]: http://rs.io/anki-tips/


FYI, your link [1] was culled by the moderators of /r/medicalschool.


Ok, any idea why?


I wonder if the person who posted deleted that reddit account.


Normally their post contents remain with [deleted] as the user name. They could have also used a mass deletion script prior to deleting their account.


have you made your FAA decks public? Would like to see them, thanks!


UPDATE: My IFR deck is available on AnkiWeb:

https://ankiweb.net/shared/info/2105122272


Just a heads up, you can google Flashcard decks for flying exams. I've seen them out there and you can import into Anki.

My question: I have hundreds text files that are solely highlights I want to remember. I’ve made my own cards (for other things) for years and know that’s a best practice, but for this I want to automate the process more. Anyone have a suggestion to format long texts into many cards as quickly as possible? Script, Keyboard macro, or just general method?


Anki can import and export cards in a plain text format (with fields separated by tabs), which should be easy to generate with a script.


I will upload them to AnkiWeb.


Maybe it's because I haven't managed to configure it correctly but I was always a bit underwhelmed by the way it works by default. If you try to learn a language you can do a bunch of cards for vocabulary (my main use case) and it'll keep flashing the words and ask you if you got it right. You never have to input the words yourself, it's always foreign -> native or native -> foreign etc... I really missed not having to actually write the translation myself, I find that it helps massively when you're learning the spelling of the words.

Eventually I dropped Anki for the (closed source and freemium) memrise and I've been using ever since, I currently have a one year streak going. When learning vocab it actually asks you to write it down, or pick the correct translation from multiple choices which makes it a little less repetitive and more stimulating. It also has a few professionally made decks for some languages which are pretty decent in my experience. In the end it works a lot better for me.

But again maybe it's anki's defaults that aren't for me, but if that's the case they're pretty mediocre defaults IMO.


Anki supports typing in the answer. (Here's the relevant section of the manual: https://apps.ankiweb.net/docs/manual.html#checking-your-answ... )

E.g. if your note field is called SpanishWord then putting {{type:SpanishWord}} in your card template means you're prompted to type the answer. (And Anki will show you a diff between your answer and the content of the field, so you can see spelling mistakes immediately.)

The pics from the Anki android app on the Play store shows how it works: https://play.google.com/store/apps/details?id=com.ichi2.anki...


Couldn't you just write the word the first time it's shown to you?


Anki is fantastic! Although I've always felt that the lack of collaboration on public decks is a huge missed opportunity.

> I am currently creating my own with the goal of it being the core of a quality collaborative deck.

You can do that? How does one contribute to a public deck on Anki?


Thank you for your insightful comment.

Specifically your last part sounds like an awesome approach to learn and remember. However, I see a lot of difficulty in sharing the resultant cards and getting comparable outcomes. You probably need to set up the connections first by creating the cards. Simply having access to the cards may lead to people not taking the time and effort to bootstrap the connections by learning about them in a comprehensive manner. Also some organization that works for you may not necessarily work for some other person.

Nevertheless, I am very much intrigued by the potential of sharing knowledge this way. I just think it's not a clear cut and easy problem as one might imagine at first.


relevant Twitter thread about spaced repetition: https://twitter.com/michael_nielsen/status/95776322945477427...


I would echo something that thread said, and was a misconception I had: "Learning" an Anki card, even memorized for months at a stretch, does not mean you "know" the contents of the card in the full sense. You'll still have to use it in real life for that. I find there is still a noticeable pause the first couple of times I need something as I mentally have to "pull up" the card.

However, the transfer can be wildly better than trying to swallow a big pile of Facts (TM) solely by using them. Despite being superficially more work, Anki-memorizing+using can get you to mastery on topics with much less net time spent than simply straight-up using, as long as it is a task that involves a lot of "brute facts" of some sort.

This misconception wrecked my first couple of attempts to get into it, because I did not get the results I thought I should get. Better understanding has yielded better results.


Yeah, it's definitely something that supplements your studies, it shouldn't be the main focus. It pays off when you read or hear something and you think "wait, I know that word, it means... <thing>". At first it's a bit clunky but it does speed things up massively in my experience.


I think you are commenting on: https://twitter.com/michael_nielsen/status/95776421515816140...

An interesting thought would be to have some interactive anki cards.

I don't know about the details, but it could be something like, don't show me a card "how to list files using bash", show a command prompt, and if the user types a command that list files (tree, ls, find, etc.) approve the answer. Maybe ask "list files as many ways you can remember), etc.

How would this translate to other kinds of knowledge? Probably not easy, but not every card would have to be interactive, just the ones that make sense.


> as long as it is a task that involves a lot of "brute facts" of some sort.

I want to use Anki so badly. I have bought the app on iOS ($25), but I haven't been able to get it to stick. I think the hardest part is to distill things into brute facts.

It seems like most the facts are trivial and obvious if you know the concepts and I haven't been able to map my concepts to something on an Anki card that would be useful for spaced repetition. IMO concepts are not something that you "forget" once you have done all the work of putting the pieces together in your head.

I would love to hear success stories of people using spaced repetition successfully for things that aren't facts.


Can you explain more precisely what you want to memorize exactly?

I've only used spaced repetition for learning languages myself (vocabulary but also conjugations and declensions when applicable) and it's true that it generally works better when you can easily match something 1:1 to make both sides of the card. When you can't easily reduce something to a very simple and understandable expression it can get quite abstract and difficult to use.

For instance if you're making a deck to learn French you could make a card that says "une chaise -> a chair", no problem here. But now if you want to translate the word "encore" you have a problem because it can mean a bunch of different things in English: still, yet, even, again... Here making a card can create more confusion than nothing in my experience. It might be better to include it in short sentences demonstrating one specific meaning at a time, like "il est encore en retard" -> "he's late again".

Same thing for grammar: "je pense" -> "I think". Easy. "tu pensais" -> "you (sing. inf.) thought (imperfect)". Not so easy. For these things spaced repetition can only get you so far, you really need to practice the language "in context" to make it stick.


> Few people have tried Anki (a free alternative to SuperMemo). Even fewer have tried its add-ons, which is where it truly shines!

As a very long time Anki user who only very recently started using plugins, I agree with this.

I mean, I think vanilla Anki is already awesome and gives you tons, and I've used it that way for years. But yeah, there are some amazing plugins which can take things to whole other levels, especially in very visual fields.


As another vanilla anki user, what are your favorites?


Image occlusion and Cloze Overlapper, for sure.

Glutanimate makes great videos that introduce the plugins (and he writes/maintains some of them, including imo the above two).

But the basic idea is: Image occlusion - allows you to make a "cloze" using an image. I.e. you select 3 parts of an image to hide (by drawing something over them), and then you get 3 cards, one with each thing being hidden, then having to be revealed. That's the basic gist, and it's amazing, especially if you're studying something with lots of drawings (I usually don't, but e.g. anatomy is useful. And even I find uses for it).

Cloze overlapper allows you to easily create something that's recommended in the famous SuperMemo learning article. Let's say you want to memorize a song. You write the lines of the song, then the plugin generates cards which go:

Card 1: Song name [...] (you have to know the first line)

Card 2: Song name

The first line [...] (you have to know the second line)

And so on. So you're getting the context of the last line of the song, and then you have to know the next line.

This is the "standard" way to learn something like songs, poems, etc, but also useful for other ordered lists of things. Incredibly customizable btw (how many lines to show, whether to show line after as well, etc).

Other fun things: Image Resizer - simply a button that allows you to paste a smaller version of an image.

Advanced browser - makes the browser way more awesome (specifically, it gives you the option of sorting by arbitrary columns).

Note: Anki 2.1 just came out, and most plugins aren't compatible yet. So it's a real question whether it's worth upgrading if you rely on plugins.


What I’d really like to see are the plugins available on mobile. Most days are spent looking at the laptop screen for too long and grinding out an Anki session on the same laptop often takes a large dose of willpower. Doesn’t stop me from loving it and using it, I just use it less than I would.


I'm using DroidAnki on my phone as part of my efforts to learn Mandarin. It took a bit of time to figure out how best to configure it, but now that I have it tuned to my liking, it's a great tool. It's not the only tool I've been using, but it's one of the most helpful.


Yeah I've got the iPhone version of the Anki app. There's a good Mandarin deck called Spoonfed that gives you sentences instead of just words. Much better. But, by far the most effective way to learn the language is to practice with natives. Which I have been doing for a few weeks and the results are amazing.


I've been learning Mandarin for about 3 years now. In April 2017 I released my own program to add spaces between words: https://pingtype.github.io

The best spaced repetition method for me is listening to music. If I watch a film 5x or see a flashcard 5x or read a comic 5x, I'm bored. But I can listen to the same song 20x and still like it.


Can you link to the iOS app? I see several in the App Store and I'm not sure which one to try.


Download links for all versions of Anki can be found on https://apps.ankiweb.net/ (And yes, Anki for iOS costs money.)


Thanks!


Any tips on how you configured it?

I'm about to take another stab at Spanish and vocabulary is one of my perennial weak points. I've played with Anki before, but it didn't seem as useful as I have been told.

Is it possible to get DroidAnki to have notices telling me that it's time to study something?


I highly recommend the book "Fluent Forever" by Gabriel Wyner. He lays out a spaced repetition centered approach to language learning, and specifically around using Anki for learning language.


This is the first I've heard of Glutanimate. Quite frankly, it looks absolutely awesome.


Glutanimate's youtube videos are the best for anki, bar none. I've watched all of them already, they've been very helpful for setting up my anki workflow


I tried it a while back, but got distracted because the UI seemed clunky and half-baked. Anyone know if that's changed in the past several years?


Nah, hasn't changed much at all. The UI is kind of "Linuxy" in my mind - on the surface fairly ugly and confusing, but becoming more and more powerful as you learn more about it.


I didn't realize Anki had decent addons until your post. I accidentally just learned how to use cloze mode too after checking these out, so thanks for sharing!

(created an account just to write this)


I used Anki (similar to SuperMemo) to study for my PhD qualifiers and it definitely helped. I kept up the cards for a while after that, adding more and more. I'm convinced I would have not passed the measure theoretic probability theory class I took without spaced repetition software. The software also proved very useful when I would have a technical idea and had no reference on me as I could remember the details of many results. It seemed to accelerate my thoughts in a way too by removing the delay to look up some information.

Eventually, I did not have the time or need to keep reviewing the cards, so I stopped. But I intend to pick it up again after cleaning up the cards after my PhD. I highly recommend the software.

One piece of advice: I treat these flash cards as basically fast tests that trigger a review if you fail. I recommend this approach as many people seem to think flash cards can only be definitions. Some of my cards are definitions, some are short problems, some are proofs, etc. The definitions are unit tests. Problems and proofs are integration tests. Both are necessary.


Grad math student here. I'm always amazed when I hear other people use such stuff - I tried it out a long time ago, but hadn't success (if I have to learn hundreds of pages of math, there is no other way than creating my own lecture notes, basically).

So I'm curios, if you cram a piece of knowledge that is so interconnected as math is in flashcards and you rote learn all the definitions, theorems, proofs and examples - are you then capable of seeing the connections between them? What happens at the exam, if the professors asks you to prove a new lemma, where you have to combine previous knowledge, does that work?

Also, some proofs are pages long. Do you put them in one huge flashcard?

Since I've never use Anki succesfully for math, as I said, I'm keen to hear from someone who has.


> if I have to learn hundreds of pages of math, there is no other way than creating my own lecture notes, basically

Well, that is what I actually did with Anki in university. For any lecture, I would go over the material, identify the important snippets, and make them into Anki cards. Creating the deck itself is very productive work because to identify the cards and make them small enough, you have to have understood the material. If you just copy the entire page-long proof in, you haven't understood it. Anki forces you to break it down because a card like that is useless.

So if you're already making your own notes why would you want flashcard software?

- It optimizes reviewing, ensuring you look at forgotten cards every day, and easy ones only once a year, instead of randomly poring over the entire set of notes and hoping to stumble upon the forgotten ones.

- It allows higher card quality, e.g. I can paste screenshots of visualizations instead of scribbling them down. My language decks have audio pronounciation, a paper medium does not support that.

- It allows higher card volume, I can't fit 10000 cards in a notebook but I can do so on my phone. Especially not high-quality cards with images in them. Of course nobody even considers fitting 10k cards on paper because reviewing such a collection is not feasible without spaced repetition software (see two paragraphs above).

- Its much easier to pull out my phone and do some reviews in the car or public transit than to do the same with a notebook.


So going far afield, I teach karate and use this all the time though I was unaware that there were typical time constants across the population. I may start using that to teach better.

In karate we teach some forms we call kata. When I teach these, I like to cover the details slowly at the beginning, break for other stuff, and then come back to it at the end to test their memory because it's long enough that short-term memory will start to degrade and they'll have to actually work at remembering it (and thus identify the parts they didn't really quite get).

It's very obvious to watch in realtime. It's a waste of time to just work on teaching the kata for 2 hours straight because they get exhausted and lose focus. It's just as effective to teach it for a half hour at the beginning as long as I have a 10 minute review at the end to solidify what they learned. I usually think of it as three separate practices -- warming up the form, practicing the form, and executing the form.

Warming up means going at half speed with the intent being to refresh the memory. Practicing means going at 70% of full speed to help get it into active memory more solidly. Executing means going at 80% of full speed and focusing on checking muscle memory (video works great) under conditions of some mental stress, and also actually developing the techniques and theory further.

To get back to your point, I see no reason why you couldn't make your card require all three types of reviewing something. But I am not sure if the time constants on forgetting practiced skills is different than memorized facts. In karate your deeply practiced skills are in muscle memory (or for you perhaps in your most accessible memory with the math details you don't even realize you're using which are not known to most people). Having stuff in muscle memory is the bare minimum required to actually move further.

You can't learn karate from reading a bunch of articles and watching karate videos. You have to actually practice it to reinforce the memory and build new connections between different concepts. Does that sound familiar to how you think about learning math?


This sounds like a good strategy for mastering and memorizing a pattern of behavior, which is the demand in most grade school and college math courses. It's nothing like what higher mathematics demands, which is much less about rote memorization and much more about deep understanding of the intricate interconnections between a comparatively small number of concepts.

Put another way: math isn't really about memorization, either of behavior patterns or of facts. That's why I've been confused and somewhat skeptical about the utility of flash cards for learning higher mathematics.


> Put another way: math isn't really about memorization, either of behavior patterns or of facts.

I mean, on the surface level that's true. But obviously we could reductio ad absurdum this claim - would a mathematician be able to work if they lost all their memories every day? Clearly not!

It's something of a matter of how good is your memory, plus how actively you use it. How many people who complete PHDs can still prove the PHD 10 years later? Not many. Which is not to say that you can or should use Anki to learn something as complicated as a PHD dissertation, that clearly won't work. But when learning a new topic, it's a very helpful tool, and it makes sure that even if you now focus only on linear algebra, you'll still recall at least the basics of, say, set theory, which most mathematicians who don't actively study probably don't use much.

> It's nothing like what higher mathematics demands, which is much less about rote memorization and much more about deep understanding of the intricate interconnections between a comparatively small number of concepts.

Well Anki certainly won't help you actually do higher math :) But I find it is surprisingly good at making these weird connections, because in the middle of learning say modern algebra, you'll suddenly need to recall things from linear algebra, and suddenly see interesting new connections. Or things from real analysis, which will make you go "hmmm, so that's why a field is defined this way" or something.


Well, I'm not trying to pitch it or anything. I haven't tried it either for this. I do have a PhD in Materials Science, but it sounds like your experience is different than mine. For me, my experience is like this:

Step 1: Read about stuff people are doing.

Step 2: Read between the lines to understand how it fits into other things I already know about.

Step 3: Evaluate based on my intuition whether the fit is reasonable. Since the data is presumed real, if the fit is bad it usually means I didn't understand the details of what they did. See if I can make the fit with other things I know coherent.

Step 4: If I can explain the fit coherently, consider what problems might be solved by using that connection.

Step 5: Research how that problem is normally solved and why.

Step 6: Go back to Step 1 and keep going until I find something that is actually solved better using my weird idea than it is solved currently.

I am terrible at memorizing, and if I am in Step 3 or Step 4 or Step 5 it's a real roadblock if I'm trying to understand why I can't harmonize the reported data and my understanding and it's because I've forgotten which sites are interstitials in a fluorite lattice. I know the information I need, but now I have to go look it up. Of course this is why people have reference materials, but it's definitely a speed bump.

The important aspects of the work up there clearly aren't about memorization, but it sure helps me actually do it in practice. I really wish I were better at it.

Another thing that this made me think of was using it to remember student/coworker names. Remembering my unreasonably numerous cousins' kids' names would also be nice.


What a weird coincidence, since I actually am doing karate too... And I totally get what you're saying. There is a tremendous amount of knowledge hidden in each kata (in addition to having to remember the kata itself, and there are 26 of them) and without repeating how you describe it there is just now way to make progress in shorter time intervals. But I would not have thought to make the parallel between math and karate, I always viewed them as requiring distinct learning approaches.


That's great! The standard practice advice I give my students (and use myself) is that it is best to practice each of your kata twice each day. The first time you go from Heian Shodan on up, at half speed, just to get it into memory. Then you go in reverse order at normal speed so that you don't get bad muscle memory from always doing it in the same order.

Of course, that's half for exercise instead of just memorization. And obviously it's less necessary from a memory perspective pretty quickly, I can go at least many months without doing a kata and still rapidly pull it back into working memory from a video review (during those times in my life when I couldn't practice regularly) and a few times through myself.

But if it's not in active memory I definitely won't be improving it. Just reinforcing the memory and getting a bit of exercise.


You can read my other comments of how I use Anki to learn math, especially about how I put in proofs and stuff.

But specifically: > [...] I'm curios, if you cram a piece of knowledge that is so interconnected as math is in flashcards and you rote learn all the definitions, theorems, proofs and examples - are you then capable of seeing the connections between them?

Well, I wouldn't think of using Anki as rote learning things. A basic principle is that you must understand (at least in something like math) before you put it in Anki. I wouldn't make a card without first understanding what it says. In fact, the very fact of making a card will often make me understand the proof much better, just by trying to write a more minimal and easy flowing version of the proof, or trying to put in a mnemonic or visualization that will make the proof clearer. (Btw, even after doing this process, I still find that I often can't recall the proof easily even 4 days later! Such is my memory, at least. I can sometimes reprove, but not always.)

Hopefully, if the exam asks to prove a new lemma, having lots of examples in your memory of how to prove things or how to solve exercises in e.g. linear algebra, will make it much easier to do it.

Look, I'm no scientist, but the science here is pretty solid - active recall helps a lot. It's essentially what lots of students are doing when studying for tests, only (scientifically shown to be) more efficient - solving example problems/proofs, etc. And it has the benefit of being inside a system that will hopefully keep the knowledge alive even in 10 years, not just for the exam and that's it.

> are you then capable of seeing the connections between them?

This is probably the best hidden feature of Anki. Because I often will get basic cards surfacing a few months after learning them, I will often find connections that I didn't think about (or couldn't know) the first time! I've even had some cases where I will recall a definition or theorem that I wrote from the beginning of the study, and realize that actually, I got part of it wrong! And now that I know a lot more, I easily see "wait, that can't be right" and dig deeper to discover what was my misunderstanding!


Another tip is to add mnemonics if possible. I wanted to learn Hiragana for fun, tried with flash cards and struggled for hours without progress (maybe got 25% right in the end).

Then I tried with the app Dr Moku that has mnemonics, took like 90 minutes until I started to get a perfect score.

Still takes spaced repetition to keep it in long term memory though.


I can also recommend Anki, I used it to improve my German vocabulary and it was rather helpful!

I study maths and I never thought about using flashcards for it, but it's a cool idea, I might try it out!


Are there sets of cards for known problems, such as learning language X, or is making the cards part of the learning process?


Languages, yes. There are plenty of pre-made decks for learning the basics of pretty much all the major languages. Beyond that it's a mixed bag. There are usually decks for things like verbs and common nouns. Getting comprehension practice (e.g. grammar) is harder because that only comes with ingesting lots of material from different places (otherwise you tend to 'overfit' and rote learn the flashcards).

Making your own cards is more effective than using someone else's deck, simply because it's tailored to you. For anything other than a language, unless it's pop trivia, you should try to make your own cards. You typically have to work methodically through the thing you're trying to learn, which can help a lot. If you go with a pre-made deck then you're relying on what someone else thinks you ought to know.


> Getting comprehension practice (e.g. grammar) is harder because that only comes with ingesting lots of material from different places (otherwise you tend to 'overfit' and rote learn the flashcards).

That could be solved by not treating flashcards as units of knowledge you need to memorize, but as tests that you can only pass if you know a certain set of things. Then you would simply add new things to learn (e.g. vocabulary, grammar rules) and the system selects appropriate flashcards from a large set of examples to test your knowledge.

I've been working on something like that using example sentences from Tatoeba, but I didn't get very far yet, partially because defining the set of learnable grammar rules for a language I do not speak yet is a bit difficult.


> There are plenty of pre-made decks for learning the basics of pretty much all the major languages.

I tried a few of them and the quality varies. The Arabic one I tried was very funny, it would show you something, like أ, and then ask: does it mean "Alif" the letter o does it mean: "How much wood would a woodchuck chuck if a woodchuck would chuck wood? A woodchuck would chuck how much a woodchuck would chuck if a woodchuck would chuck wood".

Pretty useless.


For me writing things down by myself is a huge part of the learning process (I take notes by hand in class even though I'm fluent enough with LaTeX to take them on my laptop directly) so I've never tried decks of flashcards made by other people, but you can find plenty of them for languages, divided by level or topic.

Personally I used Langenscheidt's Basic German Vocabulary¹, which contains the most common 4000 German words, further divided into the top 2000 and the 2001st-4000th and by topic, with example sentences for all of them. I made a card for each of the top 2000 words and included the example sentences in the cards as well.

[1] https://www.amazon.com/Basic-German-Vocabulary-Langenscheidt... (I found a used copy sold online for about 10€, it can be a bit of a pain to get one)


Yes, there are. Learning a language via anki is best by first knowing what all the common phrases and words used in 90% of the language's everyday use is.

This is usually a google search away.

Premade decks are really good for starting off, but ultimately making cards pays off more in the long run for associating memories to individual cards. This comes at a cost of a longer setup time and ongoing process, but with this you can guarantee all your cards are of high quality caliber.

I have my own CSS Stylesheets on my cards too its helpful by visually associating different colors for answers. I use a variety of different formatting techniques too for faster visual grokking/grepping of cards


Both; success rates are significantly lower if you use somebody else’s cards. Seeing the card you made reminds you of making the card, which helps you remember the information you were trying to capture at the time.


I credit Anki with allowing me to successfully leap from ivory-tower academic to professional software engineer. I recognized right away that most academics would scoff at lowly "plebian" tasks like "actually learning the details of a programming language". So I forced myself to push through that prideful bottleneck and essentially memorized several programming manuals cover-to-cover using Anki.


Well, IMHO (no offense meant), memorizing programming manuals makes one a good lonely programmer.

To become a 'professional software engineer', one must learn to be a team-player within a group of persons tasked in building and maintaining a piece of software that will stand the test of time. Which requires a very different skill set. One can be a good SE and still be relying on auto-completion and inline help in one's favorite text editor.

Remembering the API of your languages definitely helps, but actually building softwares that will be used by real users, for years, that's what makes you a 'professional software engineer'.


Sure, but teamwork isn't everything. Or studios would hire cheap communications grads and there'd be no need for CS programs.


Dead on. I make specialized softwre (one off for one customer). I'm always super amused to see how much the software my team writes is at the intersection of many constraints : budget, time, this group of user, that manager, those dev's, etc.


Sorry, I hope this doesn't sound arrogant and after reading your other responses I am still not sure whether you are joking or not... But using flashcards to learn a programming language is by far the strangest thing I have ever heard.

Usually, a programming language (or an API or whatever) has some core part which you use daily. So, no need to memorize anything actively. Yes, sometimes you write something and wonder "Is there an easier or more idiomatic way to do that?", then you will search in the manuals or on stackexchange and you see how it's done. If you are curious (which I hope), you will maybe also check WHY it is the easiest resp. most idiomatic way. Again, no need for active memorization. Then there is the part of the language or API that you rarely need and that you don't have to memorize anyway.

To be honest, I am completely speechless. Flashcards? To memorize programming manuals? I know people who use flashcards when following crash courses to qualify as Cisco engineers or whatever. But for programming???


Anki is a shortcut to muscle memory. Learning-by-doing is great, but inefficient. And when you stop, you forget. Anki cards space themselves out based on your responses, so there's almost no cost to maintain memory.

Part of how I got the job I got (an amazing dream job) is because the interviewers were flabbergasted seeing me live-code flawless idiomatic code like it was the back of my hand. Difficult to achieve that without SOME sort of systematic study. Most master pianists don't get there by just doing lots of casual play.

I should also mention, one of my main language is kdb+/q. Try mastering THAT without flashcards ;)


Im really curious.

Could you explain in some detail how this works out in practice ? For example with someone learning JavaScript or Python ?


How I learned ES6: I have a 1 hour commute each way. When I was learning ES6, I spent roughly half my commute creating Anki cards and half my commute studying those cards.

I created cards by going through this excellent free online book (I skipped chapters I wasn't interested in): http://exploringjs.com/es6/index.html

The process of creating cards: (A) read a paragraph. (B) make flashcards for everything new introduced in that paragraph. (C) goto A.

As for B, I would take great pains to make the cards as terse as possible while still drilling the concepts. Over-verbose examples should be rewritten more tersely (and tested in the browser to make sure you didn't screw up).

For example, from the first paragraph of Section 4.1 I might make this card, among others:

(Front) Evaluate:

var x = 0;

function f(){ if(false) {var x;} return x; }

f()

(Back of card) undefined

(Notice how I distilled the much-more-verbose examples from that paragraph down to a core that illustrates the key point.)

If you're serious about this, it'll take a lot of time. I used it to crash-learn basic kdb in about 1 month, but that required spending ~4 hours/day that whole time. Making cards is a skill in itself, you'll get better at it over time (a lot of my early cards are way too verbose and sometimes I'll rewrite them now that I've gotten better at making terse cards)


Wait a second. This is not how programming works at all. Flashcards are for memorization. If you need to memorize the answer to your "var x=0;..." example, that means that you have not understood how your programming language works. This sounds like a horrible idea. What happens if I change the variable names? Would you still know the answer? You can memorize as long and as perfectly as you want; if you struggle with such basic understanding of the programming language, I will not let you touch any of my software products.

I cannot believe that you are following such a strange approach to learning programming. In fact, I believe that you are using Anki for something completely different than what you are claiming here. You are not making flashcards and you are not memorizing the answers. You are making quizzes and you are using Anki to check whether you are able to solve them. At least, that's what I hope.


> You are not making flashcards and you are not memorizing the answers. You are making quizzes and you are using Anki to check whether you are able to solve them. At least, that's what I hope.

I think you have this weird idea that flash cards are only good for memorizing the things written on them.

That's a really limiting, and false, idea.

A flash card is just a pairing of a specific question with a specific answer. How you use that simple framework is up to you.

I used them for trig identities. That was straight memorization.

I also used them for proofs. As in 'Prove every edge in G^k is a walk of length k in G'. Then I'd work through the proof, and check my answer against the one on the other side. That's not memorization.

It's still flashcards though.


I don't see it in such a bad light; a correctly targeted quiz that effectively targets one unique concept, is asking you to use that concept, and for that you need to remember it. It is testing another dimension of how you learnt that concept. Although I agree it is not the most efficient way of learning to program, it sure seems like a good way of not forgetting corner cases of the language...


> Flashcards are for memorization.

But in your own post you point out that flashcards can be used for quizzes as well?


Cards can be really useful for systematically expanding your "active vocabulary" in a programming language or framework. Yes, you can research stuff, but sometimes you don't know what you don't know. Cards can be one useful way of doing this.


I've found I'm effective in Python simply because after 10 years I've learned by heart the most common APIs but would love to pick up one or more languages and it seems like Anki would be good approach, but I'd like to hear how you split up a language on to flash cards? do you make flashcards for every element of the API (module, type, class, method, function, etc)? Compiler flags, command line args etc?


Back then, I pretty much made cards for everything possible.

One trick is I found it's best to design the cards so you can say the answer fast. You don't want to waste time verbalizing long asnwers. So my cards end up looking like this:

(Front of card) Evaluate: {'foo': 'bar'}.get('baz', 0)

(Back of card) 0

Or like this:

(Front of card) How to get [1, 2, 3, 4, 5] in lodash? _.___(1, 6)

(Back of card) _.range(1, 6)

That latter is an example of what's called a "cloze", where you show the full answer on the front of the card, except with one part blocked out. You can block out different parts of the answer to create multiple cards for the same question e.g.

(Front of card) How to get [1, 2, 3, 4, 5] in lodash? _.range(___)

(Back of card) _.range(1, 6)


I see what you mean, that's very pragmatic, in the sense that accelerating those sorts of question-response makes coding faster.


>most academics would scoff at lowly "plebian" tasks like "actually learning the details of a programming language"

What nonsense. You must have hung around insufferable people.


Have you seen how the usual mathematician/physicist programs? They "google as they go", looking up everything, copy-pasting from stackoverflow, etc.


Oh I thought you meant CS academics. With that I (semi-)agree with you, physics professors can't code for shit.

I only semi agree because this seems to be a phenomenon of an older generation. Newly minted PhDs are often much more proficient in programming, since they usually have received a much stronger education in that regard.


What's wrong in reading the complete documentation, the examples and then the source code of said programming language? Debugging through also helps sometimes on tricky problems.

That's usually the easiest way to learn a new language.


That should be done as well, the flashcards are just a supplement. I find there's often a weird transition where if I'm just reading docs as if it were pleasure reading, I'll be nodding my head, "yeah, that makes sense", "yeah, that's easy", "yeah, I understand", then all of a sudden, "wait a minute, I'm totally lost and don't remember a thing from the last five pages!"

Also, it's easy to get the bird's eye view of a language (say, React, for example), but when you're down in the trenches, you need to KNOW about the pedantic little details (like "class" vs. "className", "for" vs. "htmlFor", minutiae of React lifecycle, etc.)


Nothing's wrong with that, but the point is to improve retention.


Out of curiosity, what sort of cards do you use for math? For language learning it's obvious -- words, phrases, etc. -- but for math, is it like prompts for proofs of theorems, or what?


Not the parent, but:

I use Anki constantly to study Math (or really any technical stuff, but Math is what I mostly study). I would never study without it again - I'm still unhappy that I did an entire 1st degree in CS before I knew about Anki, and barely remember most of it.

The more I use Anki to study Math, the more cards I tend to make. I usually make a few different kinds of cards (usually as I'm studying a textbook):

1. Definitions - usually something like "What is Normal operator? [Define]", with the back being something like "A Normal operator is an operator that commutes with its adjoint". I might add a bit more detail and flair (depending on the context).

Sometimes it's a more complex definition, e.g. "What is a group [Explanation, 3 axioms]", with the back being an overview plus the group axioms.

2. Basic theorems/properties - no proofs, just something like "What kind of matrices always have property X", "Orthogonal matrices".

These are often hard to phrase right, since it might be far too ambiguous to remember 2 years from now. I try to use these semi-sparingly.

An easier example: "What is the project of vector U on vector V", answer: "<u,v>/<v,v>v". (Again, I'm omitting details here like saying "in an inner product space", etc.)

3. Proofs - I tend to use these a lot these days. I'll often either just make a card for a proof "Prove that a compact set in a metric space is closed".

I'll also often err on the side of adding a proof, instead of using a "thereom result" card like in my point 2 above. E.g. instead of asking what is the project of u on v, I actually have a card saying "what is the projection of u on v? Answer and prove". That way I can always reprove it in my head. I usually do this when the proof or explanation is short, if not, I might just split it into two cards (one asking the answer, one asking for the proof).

4. Calculations - I have cards for base calculations if the subject warrants it. E.g. "what is the result of this matrix multiplication". Or even simpler things - I realized while studying math that I forgot a lot of even trivial stuff from high school, e.g. how to factor quadratics using "complete the square" - so I have cards with a few examples of this that I need to solve.

5. I also have some basic facts that I want to memorize, e.g. "derivative of ln(x)" or stuff like that.

Note that while I use Anki extensively for Math, I actually use it for lots of other stuff too.


Thanks for telling me your approach!

For all the examples you gave, I feel like those are the sort of thing that become so familiar in the process of working with those objects (e.g. spending long hours seeking proofs of theorems when I first studied them) that they’d be hard to forget, and I have trouble seeing how such cards would be helpful. I suppose if I just read through the textbooks and sought to memorize the definitions and proofs by rote then this would make sense, but I’ve always been told, and practiced, that the best way to learn the material is to find the proofs myself rather than just reading them straight through. And having done that, the key ideas of the proof, and especially the definitions (which became burned into my brain in the process of working with them) seem to last for months or years without explicit recall.

With language learning, it feels much more to me like rote memorization of an arbitrary mapping between labels in one language and labels in the other, so I find spaced repetition much more helpful.

I’m not trying to be dismissive here, just genuinely trying to understand. I would love to find a more efficient method for studying math, as it’s the main thing I do right now with my time and I expect at least several more years of it. If I’m missing a better way then I’d really like to know.

Thanks very much.


Look, everyone is different. But I did a CS degree about 10 years ago. I learned calculus, and even had to memorize a bunch of proofs for the course.

Now I'm not saying that I don't remember anything from the course... but I definitely remember extremely little. Even some of the "base objects" that we studied.

(It's not like I'm a mathematician who actively uses this stuff).

> I’ve always been told, and practiced, that the best way to learn the material is to find the proofs myself rather than just reading them straight through.

Let's be clear, I completely agree with this. I don't just copy into Anki - I study, and then I put into Anki.

In fact, just the fact of putting something into Anki tends to make me think about it much more clearly, as I decide what needs to be in there, how to rewrite the proof to be more concise but still understandable by me, etc.


> I learned calculus, and even had to memorize a bunch of proofs for the course.

I'm curious about this. Did your class require students to find many of their own proofs of key results, or was it more about regurgitating proofs from the textbook?


Short answer is it was the latter.

This was Calc 1 in a Computer Science program.

Basically, the final exam had something like 6 questions, most of them standard calculation or new proof questions.

But 2 questions were "prove this theorem that you learned", e.g. prove the intermediate value theorem or Weierstrauss' theorem or L'Hopital's rule or something. And answering at least one of these was mandatory.

The proofs were from a list of about 40 proofs that would be on the test. The effect was that you basically had to memorize 40 proofs before the test, or at least a good chunk of them.

I hated this at the time and though it was a total waste of time, but in retrospect, I think this was great way to force students to actually grapple with proofs. It was my first serious proof-based course (though I did proof stuff before in Linear Algebra and Set Theory courses).

And in retrospect, this is (part of) how I actually study today, so I guess I liked the idea.


Great comment. I am the parent commenter, but I don't think I could improve this answer.

"Property" cards can be very useful, even if only as a reminder. I can recall a card I had (back when I used Anki regularly) which asked you to draw a diagram showing how different types of convergence are related to each other (e.g., L2 convergence implies...). Just the exercise of constructing that diagram was very educational by itself.


This sounds really cool. I'm trying to use anki for more math oriented concepts. The 1,2,4,5 points you make are very small and simple, but I have a question regarding point 3:

Aren't proofs going to be absurdly long? You might have a one sentence question, but it demands a 5+ line proof. That takes the longest to review the card though. I almost want to say a multicloze statement is better here, to prove individual parts of the proof. But then you get way too many cards, etc. It seems to contradict best practices of what most anki practioners emphasize.

https://math.stackexchange.com/questions/2111662/prove-compa...

"Prove that a compact set in metric space is closed" seems to be 5 or so major steps involved.

I suck at proofs and find that math is a really big weakness I have. I tried using anki for mostly math, but I still haven't reached that pivotal point where everything just makes sense.


Good question! The short answer is yes, proofs are long. But it's complicated.

For one thing, there are a few reasons to formulate things with smaller answers - one is that there's not always a logical connection between different things, one is to know them separately, one is that if you fail part of a card, you want to only fail that part - and you can't do that, so you need it separately.

The thing is, with proofs, they are logically part of a whole. They do flow logically, one part after the other, at least once you know the big idea - given the big idea, you should be able to do the rest of the steps by simply applying previous steps (usually).

That said, reviews of proofs do tend to take me longer, which is not ideal. And I do let myself "cheat" a bit with proofs - if I know the main idea behind a proof, and am fairly confident I can develop the rest of it (especially if it's a calculation only), then I might consider it answered. But I am fairly strict that I really do think I could develop it.

For example, the compact sets question was something I recently failed. Here's why: the main idea behind it is to prove that the complementary set is open, and the way to do that is to pick each point, define a ball around it and around each point in the compact set, then show how that proves every point has a ball around it.

Now I know all those big-level steps, but when I tried to remember how to develop it further, I realized that I wasn't sure why I needed the original set to be compact - why doesn't this work with any set? So I failed the card.

One other point - I do use a few custom note types for some math things. I sometimes use clozes, but I also have a note type for "Multipart Proof", which allows me to split up a proof into parts. I almost always actually use it to separate the "forward" and "backward" directions of an "if and only if" proof, since they are relatively separate anyway, but I do want to keep the card logically together.


Ah okay I see where you are going with proofs.

I format my anki cards similarly for longer expanded question:

E.g.

- Question

- Short Answer (e.g. the conceptual idea and starting point for solving the proof)

- Long answer (the full proof)

What I tried to do instead, is reword each question slightly to ask a different part of the proof. Keep the long-answer the same, but modify the short-answer slightly.

I find from my experience the anki question/answer needs to be a one-liner though.

I use a yellow highlighted background for the short-answer portion. Its a basic front/back question/answer with some specialized stylesheets I made.

------------------------------------------------------------------

which allows me to split up a proof into parts. I almost always actually use it to separate the "forward" and "backward" directions of an "if and only if" proof, since they are relatively separate anyway, but I do want to keep the card logically together.

Are you chaining multiple questions / answers in one card? Something similar to glutanimate's video here? https://www.youtube.com/watch?v=ag4Hdnkig8U


No, no chaining. I just do the equivalent of having two cards. They would be:

Q1: "Prove that condition A iff condition B [Prove forward direction]" A1: "Assume A. Then [...] implies condition B."

Q2: "Prove that condition A iff condition B [Prove backward direction]" A2: "Assume B. Then [...] implies condition A."

Just that instead of generating this manually, I have a note type that allows me to put in the question once, then add the two answers, and it generates these two cards.

In reality it's a bit more complicated, because I can have more than 2 proofs, and can give each a title. E.g. sometimes you have theorems of the form "All of the following conditions are equivalent: 1) 2) 3) 4)." And then the proofs can be something like "1 implies 2, 2 implies 1. 3,4 imply 2, 1 implies 3" or some complicated thing like that. But these are pretty rare, it's usually just at most a 2 part backwards and forwards proof.


can you make a screenshot sample of one note generating two cards? I know how this is setup on anki, but I'm curious to see the actual math content you write there. at least for the common 2part backwards and forward proof, not the really obscure case ones.

Are you essentially solving the same question in two different ways? (forward proof, and backward proof)

Or are they two unique questions each asking different things? (in the same related family of topics)

I'm working on improving my ability to write math proofs atm so I would find this helpful


Sure, here is a link to an example [1].

> Are you essentially solving the same question in two different ways? (forward proof, and backward proof)

I'm talking of the standard "forwards and backwards" proof that you have to do to show two conditions equivalent.

I.e. if you have cond 1 iff cond 2, you need to both prove that cond 1 implies cond 2, and that cond 2 implies cond 1. (Or that not cond 1 implies not cond 2).

So it's often a similar proof, but not always.

[1]: https://imgur.com/wjPLlVb


This makes much more sense now thanks :)

Last 2 questions just related to just formatting cards

Does that render with inline-Latex on each card (e.g. are you using a latex anki plugin?)

Do you use powerformat pack plugin https://ankiweb.net/shared/info/162313389


I'm using a method which allows you to use Mathjax inside of Anki. I'm not sure where the instructions are, but it involves creating custom note types with extra code that loads Mathjax.

The good news is that the new Anki 2.1 which just came out has built-in Mathjax support, so if you're using that, you can just start using Mathjax. Note that the default Mathjax code is not $ and $$, but this is configurable (though if I were starting from scratch I'd probably just use the default).


I'm taking a measure theoretic probability course this fall, and while I've had great success with using Anki for my biology (i.e. memorization-heavy) courses, I've struggled with using Anki effectively for math. Would you mind sharing your deck as an example?

I like the unit test analogy - agree 100%.


I'd be happy to share the deck. Send me an email at the address in my profile here.

For what it's worth, if I were to go back in time and take the class again I would add many more cards (perhaps up to 10 times more) and also improve the existing cards. My background in measure theory was far too weak for the class. I passed, but I don't feel that I knew the material very well.


Throw out your old decks. The point of SRS, which most people miss, is that once learned and solidified in long-term memory, you _stop_.


Many of the topics I had cards for are solidified, but I'd say the majority are not. The scheduling is the software's responsibility, and I've found it does a pretty good job. So if I've truly solidified something, Anki will tend to schedule for months or even years away.


Seems like the main USP for SuperMemo is finding the optimum time for review. Does Anki also do this?


Yes, in fact it uses one of SuperMemo's algorithms: https://apps.ankiweb.net/docs/manual.html#what-algorithm


> "To this day," Bjork says, "most people think about forgetting as decay, that memories are like footprints in the sand that gradually fade away. But that has been disproved by a lot of research. The memory appears to be gone because you can't recall it, but we can prove that it's still there. For instance, you can still recognize a 'forgotten' item in a group. Yes, without continued use, things become inaccessible. But they are not gone."

This was quite eye opening to me when I first heard of it. Apparently, our long term memory is virtually limitless. You never truly lose something you once had learned well.

Another fact about memory that I found equally interesting: memory is not a "thing" but a process. When you recall something, you are actually reconstructing the memory from various factors associated with it, pretty much like how a paleontologist might reconstruct the image of a dinosaur from fossil remains.


It seems to me that there are two gates, and they move with age, and the rate at which they move differs from person to person. The first gate is the time until losing something from associative memory. The second gate is losing the memory completely. Yes, this does happen, and it happens to everyone. But the quote still has some validity in that many things we think we forgot are still buried deep inside.


> This was quite eye opening to me when I first heard of it. Apparently, our long term memory is virtually limitless. You never truly lose something you once had learned well.

There are startling experiments in the area. Take a large set of pictures (it has been done with sets of up to 20000 at least). Take half those pictures and show them to subjects, one at a time, giving them a few seconds to look at each picture.

Later, take the set of pictures you showed them, and pair each with one of the pictures you did not show them. Shuffle that set of picture pairs, and then show the subject the pairs sequentially, asking them for each which picture of the pair they have seen before.

On a test that used 20000 pictures, with the recognition test a day and half later, subjects got 80% right. If instead people had just been asked to recall as many pictures as they could, most people only be able to recall a tiny fraction of them.

Here are a couple of papers in this area:

https://www.gwern.net/docs/spacedrepetition/1973-standing.pd...

https://www.ncbi.nlm.nih.gov/pubmed/18787113

> Another fact about memory that I found equally interesting: memory is not a "thing" but a process. When you recall something, you are actually reconstructing the memory from various factors associated with it, pretty much like how a paleontologist might reconstruct the image of a dinosaur from fossil remains

This is sort of illustrated by a thing called the Baker/baker paradox. Show people a photograph of someone, with a label that says "BAKER" attached. Tell half the subjects that the label means that the person is a baker, and tell the other half that the label means his name is Baker.

Later, show the subjects the photo but with the label removed, and ask them what the missing label had said. The people given the job story will be much more successful at remembering this than the people given the name story.

The name "Baker" has very little associated with it in most people's minds, whereas the job "baker" brings up associations with all kinds of delicious treats, and maybe childhood memories of wonderful smells permeating the house as your mother baked in the kitchen.

So when you are told the photo is of a baker, all of those things that baking is associated with in your mind get associated with the photo, and you've got more to grab onto mentally when trying to recall the label. These may be weak associations, but they still beat out the name "baker" which for most people has no extra associations.

Anyway, we don't just reconstruct the memory to recall it. We also might edit it and save the changes. This has serious implications for the criminal justice system when dealing with human witnesses.

If an investigator interviewing the witness says anything that suggests events happened different than the way the witness remembers them, there is a danger the witness' memory will change to match the interviewer's version. The witness will not know this is happening, and genuinely believe that the updated memory is what really happened. These aren't always minor updates...they can be big, like in a confrontation changing who drew a gun and started shooting.

I don't have a link, but I've read of experiments where researchers got parents or older siblings of some adult subjects to mention at a family gathering some amusing/embarrassing incident from the subject's childhood--a totally made up incident. Later, the researchers found excuses to question the subjects about that incident, and the subjects "remembered" it, and not only the details that had been supplied in the made up story. They had filled in complete details about the incident and the things leading up to it and following it.


It's quite interesting that Anki(It's a Japanese 暗记 for those who don't know where the name comes from) is mentioned a few times but no body mention "Memory palace"[1] and "Major system"[2] yet. Both methods try to hack some features/bugs of our brains built by mother nature during million years of her evolutionary development. Most memory athletes use some variation of these methods to achieve astonishing performance. There's a Dr. Yep can remember a 65 thousands of English word and the locations (i.e. page number and the sequence on that page) of each word on a Chinese/English dictionary.

The trick is investing some time to build a personalized memory system, then use the system to remember other things like passport number, credit card , phones etc. It might not be attractive to most people because today we have smart phone to help us. But for learning new knowledge, combination of both space repetition and memory system is quite interesting. Here's what I did: I use a Anki alternative called Memrise[3] to build a Major system. (I also have Anki installed but just prefer Memrise). Then I use Major system to review the concepts I've learned. Major system here is the equivalent of Anki as a tool for short term place holder of space repetition, not directly used for learning. I found brain Anki is better than smartphone Anki/Memrise although I built former Anki with later Anki.

Come on fellow hackers, hacking your brain is very rewarding

[1]https://artofmemory.com/wiki/Method_of_Loci

[2]https://artofmemory.com/wiki/Major_System

[3]https://www.memrise.com/en/


https://artofmemory.com/wiki/Person-Action-Object_(PAO)_Syst...

I considered working on this, but I'm just not excited enough about remembering. Thanks google. Oh and Einstein said (according to Shaq) you should never remember what you can go lookup.


The beauty of the human memory system is not whether or not you can remember a thing, but the correlations and relationships between them. A convenient lookup mechanism doesn't help there.


Interestingly (or perhaps not) the book that introduced me to all this was Moonwalking with Einstein by Josh Foer, who was apparently coached by Ed Cooke, one of the co-founders of Memrise.


Ed Cooke is the guy who interviewed Dr.Yip who memories the whole dictionary along with page number and location in the page where the word is on. Search Youtube. It's amazing. Josh Foer later learnt an Africa language in 22 hours.


How do you use your Major system for review?


For example: I already have major system built so I have Tea as 1, Honey(for me it's visualized as a sexy woman) as 2, Ham as 3 etc. Then I have basic Pandas function of axes(), ntype(), empty() etc. Then I will imaging : A crazy guy is destroying a Tea tree with an Ax, I'm practicing typing on the breast of the sexy woman, There's an Ham with big hole so it's almost empty on the table... It's very easy to remember no more than 10 functions in a few minutes. It's just function names but at least it gives you a clue to go over all the functions and recall the usage before you forget. Can not replace Anki but you can recall what you learnt anytime and anywhere. Such as before you sleep.


The best and most practical introduction to spaced repetition is Michael Nielsen's Augmenting Long-term Memory (http://augmentingcognition.com/ltm.html), already discussed in https://news.ycombinator.com/item?id=17460513.


> how to become a genius: You must clarify your goals, gain knowledge through spaced repetition, preserve health, work steadily, minimize stress, refuse interruption, and never resist sleep when tired.


Maybe it's just me who after years at uni is sick of viewing everything from this impoverished academic point of view but I think these statements are not helpful at all. People worship advice/knowledge these days and totally forget about the doing.

The statement does not deny that actually doing stuff is important - "work steadily". However, these are just empty words to someone who tries to become a genius by hitting the books first.

My advice (yes, I do see the irony here) in this age would be to postpone seeking advice or reading about a topic as long as possible. As a result, your common sense sharpens and you may even come up with fresh, creative ideas that others perhaps didn't have.


  > postpone seeking advice or reading about
  > a topic as long as possible
Oh gosh, the number of inefficient solutions, horrible architectures, brain-dead encryption systems I saw, because of the people who did not bother to open a book.

To come up with creative solutions you need to have a base for said creativity. I.e. to connect the dots in original way you need to have the dots already.

I have nor proof, but I suspect that the number of useful solutions created by people who know nothing about the field is close to zero.

Somehow I doubt one would see much further when instead of climbing onto the shoulders of giants they prefer to stay in the pit of their own ignorance.


> Oh gosh, the number of inefficient solutions, horrible architectures, brain-dead encryption systems I saw, because of the people who did not bother to open a book.

If you hadn't come across horrible architectures you would have learned less about good ones. It would be nice if this all happened inside of one person, that's what the parent is suggesting.


That sounds quite good actually. Now how to do that consistently...


First you must convince yourself that becoming a genius (whatever that means) is more important to you than whatever it is that you are currently doing. Then you just act based on your worldview, as you always do.


For language learning, consider Pimsleur, who discovered ‘the algo’ previously:

“Graduated Interval Recall - Dr. Pimsleur’s research on memory was perhaps one of his most revolutionary achievements. He discovered that if learners were reminded of new words at gradually increasing intervals, each time they would remember longer than the time before. He documented the optimal spacing for information to move from short-term into long-term, or permanent, memory. This theory is at the base of all the Pimsleur programs.”

https://www.pimsleur.com/the-pimsleur-method


I'm a big fan of the Living Language package.


This type of learning, combined with applying the knowledge learned, is easily one of the biggest lifehacks I've encountered.

Growing up, I (falsely) internalized that I somehow had a hard time learning languages. However, with the help of Anki, that has an algorithm based on SuperMemo, I realized that this wasn't the case - just that the traditional textbook methods weren't for me when it comes to cramming in "arbitrary" information.

While living in Japan, I used Anki to supplement my recognition of kanji. I averaged roughly 7 minutes of studies for a year, internalizing the meanings and readings of roughly 1000 characters with a 95% retention rate.

Judging from my peers, the only ones that managed to pick up this volume were those that studied the language full-time. Of course, they learned the language overall at a much higher level than I did - this methodology purely focused on the recognition aspect.

Naturally, I got to put the characters to use living in the country, and I also spent time making up mnemonics for each character. Your mileage may vary.


I'm curious what your mnemonics are like, could you give an example or two?

I'm not a student of Japanese, but AIUI there are pictographs and ideographs amongst the characters, presumably these are effectively already mnemonics?


That might have been true of the original bone script characters, but over the millennia they have been stylized beyond recognition, and many new characters were created. Modern Japanese or Chinese is about as mnemonic as the typical icon set used in a GUI application.

However, most characters are composed of a few common components, called radicals, which can sometimes provide hints about the meaning. For example, the Chinese words 海 "sea", 波浪 "wave" and 渴 "thirsty" all contain the water radical ⺡. Similarly for 丝绸 "silk" and 缠绕 "wind around", which contain the thread radical ⺓.

Personally, I don't use any mnemonics, but I know someone who does, and he'd assigned each radical a memorable representation (e.g. the thread corresponds to Spiderman) and then he had a story linking a word to the components, so that 丝绸 would be about two Spidermen, one of which wraps himself in silk to use it as a ghost costume.


Cool, thanks for the lesson and info.


I'm actively making my way through Heisig's Remembering the Kanji, and am currently around 650 kanji. Here's an example that I found funny, combining 立 (stand), with 里 (pictograph of computer - see the monitor and keyboard, though the actual meaning is different):

童 means juvenile. Imagine someone who is so childish that they jump on top of their computer in anger when it blue screens. I've always gotten this flashcard within 5 seconds with Anki, and generally chuckled to myself as well.


I assign a mnemonic to a composite (usually radicals, sometimes combinations of radicals). timerol's example in this thread is excellent; here's another example.

脂: Meaning: Fat. Consists of 旨 (tasty) and 月 (moon). However, mnemonically, 月 occurs in many characters referring to "flesh" of some kind, and as such is what I often use as a mnemonic cue. This creates the quite natural mnemonic cue of "tasty flesh". As such, when seeing this kanji, my thought process when repeating the character goes something like "the tasty part of flesh - the fat!".


In Chinese at least, most characters are not pictographic, but phonetic-semantic: https://www.hackingchinese.com/phonetic-components-part-1-th...

> while pictographs are pretty and easy to explain, they only make up around 5% of all characters. Phonetic-semantic components, on the other hand, make up almost 80% of all characters


I use Anki. It really does work. A few things I found:

1. It takes discipline to understand the material properly before attempting to just bang it all in Anki, but learning directly from Anki can be miserable, so it really is best to try to grasp it fully before going near Anki

2. Creating the right questions can be difficult - sometimes I found myself able to regurgitate the answer but other tests proved I didn't really understand the meaning. One way to approach this is to test different aspects of the answer, or to add the inverse of the question. Still even if you don't grasp the meaning properly just having a rote answer in your head can improve your capability

3. Life often gets in the way of the discipline required!


It would make sense if you could get electronic textbooks which are already in the question/answer form required by spaced repetition software, ready to "load and learn". Rather than reading a traditional textbook, you would take an equivalent question/answer set and learn it by spaced repetition. Do such things exist?

Following on from that, maybe such question answer sets could be automatically generated from the semantic web? A simple example would be a question/answer set about capital cities, but could one pick an arbitrary subject and manufacture a list of questions about it?


> It would make sense if you could get electronic textbooks which are already in the question/answer form required by spaced repetition software, ready to "load and learn". Rather than reading a traditional textbook, you would take an equivalent question/answer set and learn it by spaced repetition. Do such things exist?

I am working to solve exactly this. A form of learning where the learning happens due to interaction between a bot and a human. Machine teaching humans basically. Been working for over 20 months. Will be releasing within two weeks. :)


I would like to know more about this. Do you have a mailing list I can add myself to for a notification when you release?


Thanks. You can sign up at this mailing list: https://tinyletter.com/primerlabs/ here. I created it just now.


I'm guessing your username is relevant :). Using AI for intelligence amplification? Excited to hear about your project.


Haha. Thanks. The project doesn't use AI at all. I figured out that you don't really require the system to pass turing test in order to develop tutoring system. It can assist in clever ways. That being said, Primer ( the tutoring system ) will teach ML/DL/RL courses. For more info, you can subscribe to the mailing list here, https://tinyletter.com/primerlabs/. I will post within two weeks.


Also interested, would love to sign up if possible :)


Thanks :) You can sign up at this mailing list for a while. Expect a mail within two weeks for the launch. https://tinyletter.com/primerlabs/


keep me updated please, good luck.


Thanks. You can subscribe to this mailing list, if interested. https://tinyletter.com/primerlabs/


Well, creating the questions and answers yourself is actually part of the effort required to learn effectively.


Strongly agree with this. I'm a medical student with a flashcard deck of 25K cards. The cards I remember best are the ones I took the time to create.


This wouldn't work that well, you don't learn a complex subject just by flash cards.

First you need to understand the subject, then you can formulate useful flash cards, then you can work on remembering them.


What's the deficit in using a premade card set? Does it not work at all (for you?), take longer, focus on the wrong weaknesses?


Take much longer to learn, but especially they can't be applied when learned as I don't know why I need to learn those things, how they belong together, when it is important that a situation is slightly different and when not, et cetera. There's no knowledge, just factoids.


A friend of mine had a startup aiming to do that in Singapore: optimised learning by frequent recall of byte-sized factoids (comprising a whole coherent subject area though) with a targeted success rate (similar to the SuperMemo spaced repetition method). It was called TokTol (Tree of knowledge, tree of learning), and produced some nice study units (mostly adapted to the Singaporean high school curriculum in the sciences).


I've been doing spaced repetition with Anki since 2013. I wrote about my experience here: https://www.blinkingcaret.com/2016/05/04/hack-your-brain-lea...

If I could only give one advice to someone about improving their learning skills, it would be to learn about spaced repetition


This is by far my favorite piece of software I've ever purchased (and one that's keeping me on Windows). It's very obtuse to use and not really user friendly at all unless you're just making flashcards with it. I get the impression that it's somewhat dogfooding taken to the extreme, and it's almost as if they're selling it as a side project.

There are so many random features like the sleep tracker (https://www.supermemo.com/help/sleep.htm) that don't really make much sense to have but are there anyway.

There's also a web version if you just want flashcards that's mainly focused on language learning. They sell some courses and you can add your own cards too.

The biggest selling point for me is the incremental reading (https://www.supermemo.com/help/read.htm) feature. It's the only way I can manage to keep track of so many articles that I find interesting, and is vastly superior to leaving hundreds of tabs open or a bunch of bookmarks I'll never look at. It's superior to instapaper,readitlater etc because I don't have to decide what to read when I open the app, and I don't have to worry about forgetting about the article if I stop in the middle of it.

If I see anything remotely interesting, I just chuck it in Supermemo, and I'll see it eventually. If it's really important, I'll set its priority higher so I see the article sooner.

If I'm doing research on something and have 15 tabs open, all 15 tabs go into Supermemo, and will eventually get whittled down into flashcards. Start with an article -> extracts -> smaller extracts -> cloze deleted flashcard.

Long comment chains on Hacker News? Supermemo. Youtube videos? Supermemo. Email? Supermemo. Images? Supermemo.

I check my RSS feeds once or twice a week, grab all the interesting articles, import into supermemo, and I'm done.

Supermemo for me replaces: Evernote/OneNote, most bookmarks, Anki, and various todo list apps.

If I just wanted to make flashcards from set material, I'd honestly use Anki, because of the mobile apps. It's really easy to do a few repetitions when you have downtime through the day.

Every person I've shown this app too doesn't really care about it, and I don't really know why. If I had to guess, it's probably because the UI is horrific. I can effortlessly keep up with so much information, and it takes an hour or two out of my day.


> Incremental reading is a learning technique that makes it possible to read thousands of articles at the same time without getting lost.

Man, does't really work that way? When I learn something, like ML, I need the knowledge to sink in, but most of all I need to experiment, to test, to see how it works in practice. I guess the incremental reading may work for something like learning anatomy etc., but I doubt it would help me with more complex abstract concepts.


So for memorizing "stuff" - does this provide anything over Anki? It looks like Anki does the same thing.


No not really, the algo might be slightly "better". But if you only want flashcards, go with Anki. I'd also recommend you make them yourself.


Thanks for sharing your workflow.

When importing articles, does SuperMemo store the original URL? How about the layout of the original article, e.g. photos or diagrams in addition to the text? Is it IE-only or can it work with Firefox to import multiple tabs?


It's IE-only unfortunately. Importing I typically just copy and paste by hand instead of using the importer. The importer doesn't work that well in my opinion unless it's mostly plain text. With all the new front-end stuff and ads, it's gotten especially bad on some sites.

But in general, I get all the photos and diagrams too. URLs are stored, and you can mark up the article further as well for easier searching later. An example: https://www.supermemo.com/help/images/f/f5/Incremental_readi...

Supermemo seems to be heavily integrated with gecko/IE, probably due to age.


Thank for the info & screenshot. Other apps have clipping / knowledge management functions, but not the spaced repetition traversal through a reading queue. You would think that Pocket/Instapaper could add this functionality.

http://www.connectedtext.com (Windows)

https://www.devontechnologies.com/products/devonthink/overvi... (iOS & Mac)


I've heard fantastic things about SuperMemo but don't have a Windows machine - and don't plan on buying one. It's extremely unfortunate there's no Mac version.


VirtualBox? It’s free. Windows isn’t, obviously, but you can run the eval version for however long.


The only difference in the eval version (i.e. not yet registered) is you can’t change the wallpaper, ... which is free enough for me


Do you have a writeup expanding this further? Or maybe contact information. I like learning interesting workflows like this. My contact is in my username


Nothing so far really. I've been trying to figure out how to describe it for years. The program is an extremely hard sell outside flashcards, which you get from Anki.


I realize that supermemo has terrible UI but I'm really curious to see how you use it for incremental reading,research, youtube, and watch it later things. I've never used supermemo before


I'll make a small video, but it's going to take a few days before I can get it done. I'll let you know when I'm finished.


Okay let me know I would love to see it :)


Just emailed you the video, it's a little raw, mostly due to the length limit.


It took me several attempts to ascend the learning curve of Anki, but once I did, it changed my life. Anki Essentials by Alex Vermeer [0] was the introduction that got me over the hump.

Now I use Anki almost daily for learning programming, math, vocabulary, and retaining books I've read.

On books, I originally wrote a script that scraped the Kindle highlights page and converted them into a file that could be imported into Anki. I'd Cloze delete passages and review maybe 20 a day. That practice was so beneficial that I've since started developing it into a standalone product called Readwise. [1]

Readwise doesn't yet incorporate hardcore spaced repetition and active recall principles, but it will soon.

[0] https://alexvermeer.com/anki-essentials/ [1] https://readwise.io


Thats awesome! Have you considered Diigo integration?


Readwise seems very useful to me since I already use Instapaper. Since you're here, I was hoping to ask some questions:

1. Have you considered some way to add Instapaper-like parsing and highlighting into your service? It isn't cheap paying for two subscriptions with Instapaper reverting back to a $30/year subscription for my internet highlighting/notes plus your subscription.

2. From the website, it seems like you already have spaced repetition. What are you hoping to add?

3. What spacing repetition algorithm are you using? SM?


As soon as I read this, I wondered if someone had written some elisp to do it. Sure enough, org-drill[0] exists and implements spaced-repetition learning. In true emacs fashion, it actually implements three different algorithms which one can choose from!

Just looking at it briefly, it appears to be pretty nice.

0: https://orgmode.org/worg/org-contrib/org-drill.html


While I'm a pretty great emacs fanatic myself, I think that this is one of the few cases where you'd be doing yourself a disservice by using the emacs alternative. Anki is extremely keyboard-friendly (more so than anything bar Emacs and vim), pretty extensible in a decent language (python), and unlike Emacs in this case, has a huge ecosystem behind it. The only thing missing is the possibility of using Emacs keybindings in text input fields (which is Qt's fault) — if that's important for you, you can use Emacs for input into Anki — google for it, as they're seem to be several options...

FWIW I read somewhere that Anki started off as an Emacs mode, initially, though the only source I could find now (quickly), is this:

https://news.ycombinator.com/item?id=10925971

Edit:

The Web archive helps (as always):

http://web.archive.org/web/20091001153225/http://ichi2.net:8...


Spaced repetition software? A requisite post is gwern's excellent and comprehensive article on them https://www.gwern.net/Spaced-repetition


Memrise.com (primarily for learning the vocabulary of another language) combines spaced repetition with mnemonics. When learning a particular piece of vocabulary it will offer up an ordered list of suggested mnemonics based on their popularity in other sets. Extremely effective for its use case.


TL;DR: The "algorithm" is spaced repetition. God this was a frustrating article to read.

Spaced repetition does work though, I used a tool called Anki which has a free online sync service and free apps for every platform (bar iOS, it costs £15 on that platform).


From Anki manual[0]:

Internally, Anki’s spaced repetition system is based on an older version of the SuperMemo algorithm called SM2

[0] - https://apps.ankiweb.net/docs/manual.html


It's a profile of the SuperMemo creators, not a how-to.


> God this was a frustrating article to read.

Exactly what I thought. Some parts (10%) are very interesting, but it contains so much stuff I don't want to remember...


I just found out that you can use SuperMemo without a computer.

https://www.supermemo.com/articles/paper.htm

I thought it would be interesting for me to do this method while I'm studying a scientific paper. Any thoughts?


There are some useful tips for reading papers using Anki here: http://augmentingcognition.com/ltm.html

Scroll down to the heading "Using Anki to thoroughly read a research paper in an unfamiliar field".


I've used the paper method in the beginnings of my English study and it worked well for me. SuperMemo was a really great tool and I liked it very much. Managed to keep using it for maybe 10 years, and I'm still sorry that I've stopped when the program and its community were in decline. But the method and algorithm remain the best and it's great to see it's used in modern applications - not just Anki but perhaps in all major language teaching apps. The fact that this article made it to HN front page speaks for itself.

As for using it for scientific paper study - depends what you expect from it. Spaced repetition is great for remembering and retention of facts. When I'm reading a scientifi paper, I rather struggle with the basic understanding of it :)


Ahh, but if you could better remember everything you have understood, surely that would help with understanding the next paper!


Is there a version of this or some alternative for learning+remembering music?

I learn a piano piece, memorize and internalize it, but then if I stop playing it for a few weeks, it completely vanishes from my head. Super frustrating, it's like starting over every time.

On the other hand, I have very good auditory memory -- I can "hear" and recall music in my head without problems. But that's unhelpful to me when I try to play music.


Play very slowly through the piece at least a couple times every time you practice. So slowly that it's hard to discern what piece is being played.

Repeat the same process when you have your piece memorized. Then play your piece from memory but hands alone. You will build up the muscle memory required to keep the piece in your fingers, rather than your head.


No, I did that already. I practice slow and methodically. I keep a measure-by-measure logbook of progress. Muscle memory established. I can then play expressively from memory.

But eventually I'll move on to the next piece, and wind up forgetting to re-visit the other one for a few weeks or months. Gone!!


> and wind up forgetting to re-visit the other one for a few weeks or months

Maybe adapt your practice to the forgetting curve, revisit a piece the next day, then in 3 days, then in 7 days, then in 2 weeks, then 1 month, then 3 months, etc. If ever you mess up the piece, then it's back to 1 day.


This makes sense. Thanks!


been researching spaced repetition and anki/sm and other stuff... I decided to try it because my memmory is quite bad when learning new stuff. I am also a daily weed smoker so my short-term memmory is quite bad but since positives outweigh the negative sides I don't plan on stopping. What do you guys think am I in big disadvantage?


Piotr Wozniak just posted a new article about SRS https://www.supermemo.com/pl/articles/history (June, 2018)


I heard a doctor online once say, "watch one, do one, teach one." He was talking about medical procedures but I've focused on the "teach one" part to much success in software.



So can anyone summarize the memorization algorithm for me? I don't have time right now to read through the full article.

How often should repetitions be spaced, roughly speaking? Is there a rule of thumb?


Rough algorithm:

Study 10-20 new facts today. Review them afterward (same day). Once you feel you “know” them push them to tomorrow.

Review old facts. If you still know it, approximately double the time until you see it again. If the last review was 1 week ago, next would be in 2 weeks.

If you’ve forgotten it either restart it (you really don’t know it) or use some easing factor to schedule it.

Real answer: get Anki and let it do the work. Tweak it as needed.


This is one flavor of these types of algorithms that you can viably implement yourself: https://en.wikipedia.org/wiki/Leitner_system


That's funny. I developed a crude version of that algorithm by separating my flash cards into easy, medium, and hard stacks. I spent most time on the hard stack and would downgrade the difficulty of cards after I increasingly mastered them.

Nothing groundbreaking. I'm sure other people have done the same things out of sheer efficiency - no need to keep going over the easy cards.


Obligatory shout out to Learn with Texts - http://lwt.sourceforge.net/ - which interfaces with Anki.


The TLDR: the algorithm is spaced repetition. Notable apps that implement it are SuperMemo (this one got it popular) and Anki (the free one).


Next article will be 6000 words about how moderate exercise improves general well being.


> "To Remember Everything You Learn, Surrender to This Algorithm"

> "The winter sun sets in mid-afternoon in Kolobrzeg, Poland, but the early twilight does not deter people from taking their regular outdoor promenade"

I find titles promising a specific piece of useful information combined with longform, author storyline based content to be one of the most fustrating things about reading traditional journalism on the internet. A form of bait and switch.


My writing teacher called it "verbal diarrhea".

Journalism students spend so much of their time doing pointless writing exercises, they feel like they should continue with it, as if their reputation depends on it.

In the modern world the opposite is true - attention spans are short, you must get to the point.

A similar thing is true in video - I can't stand vloggers who dance around or have to explain the whole history of the subject before getting to the point.

I blame Google - they incentivise long articles with lots of keywords and longer videos.


Long form content actually does very well online when it is an interesting subject and well-written (and, increasingly, creatively designed).

For example: this article has been voted to the front page of HN, which is more than thousands of terse, AP-style inverted-pyramid news articles can say.


Usually long form content in specific fields is entertaining for me but when it comes to news articles, I'd much rather read summarized content with a only few exceptions.


"this one algorithm" -> 6000+ words

No proper headings.

To hell with that. I won't ever know what they're on about.


The algorithm (version 2, there are newer versions too).

https://www.supermemo.com/english/ol/sm2.htm


That's pretty much why I never read the articles on reddit/hn and always jump straight in the comment section. I suspect that it's the reason most people do this as well.


This was, very likely, an article in actual-printed-paper wired magazine. They blat them up after a short delay.

I used to cover-to-cover it pretty regularly, and these long form articles/headline combinations are great in that situation.

Sure, it's not great for the internet. But I don't think it's a feature of "internet journalism"


    > A form of bait and switch.
It's an article from Wired _MAGAZINE_.

What do you expect? A terse jargon-filled exposition of the algorithm fit for graduate students?

It's perfectly fine to not appreciate the style of the author, but to call it "bait and switch" is a bit much.


It's at least reasonable to expect skimming everything above the fold to tell you specifically what the subject of the article is and where it's going.


I thought I was the only one suffering from this madness! good to know others are tired of this shit too!

I've completely stopped reading past the first sentence of articles that begin like this, which is a lot of articles recently. If I wanted to know what people ate for breakfast, I'd use facebook!


Same here also it did feel like it was an sponsored ad for the company.


You mean like every search result for “X recipe”?


I feel like it must be some SEO requirement - because otherwise who wants a rambling tale of the time someone's gammy took them down to the shore to experience the beach life, finding adventures and making new friends and then paragraphs later ok here's the recipe for Maple bourbon glazed salmon you wanted


"I want people to read my article but fashion myself a novelist".


I used to use supermemo a lot but when I found out I couldn't export my cards (at the time anyway) I got nervous and switched to Anki

Does anybody know if the original creator is still in charge? Supermemo.com got reworked really heavily a couple of years ago and I wondered if he may have sold his company, or maybe just hired a team to make some apps




Applications are open for YC Winter 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: