Spaced Repetition
gwern.net
gwern.net
I started off with just putting in a new vocabulary word every day and have been gradually ramping up the amount of info that I put into it. Now, I will add anything from programming details (e.g. how do you get the number of characters in a Rust string?) to key facts from the books I read (e.g. in The English Patient, who does the patient have an affair with?). My review sessions only take 5-10 minutes a day, and my only regret is not starting this habit earlier (especially in school). It's incredibly gratifying to review something, know the answer, and be very aware that without Anki, I would have forgotten it a long time ago.
But if you have cards that you don't find interesting or useful anymore, maybe it'd be better to just delete them.
[1]: https://www.scientificamerican.com/article/the-interleaving-...
E.g. I am currently using Anki to learn more keyboard shortcuts for Bash, Tmux, and vim, and the deck tells me which program the card is talking about. I already have to put context for vim visual mode keys in those cards.
Edit: Ah, just saw your other comment about doing something like it with tags.
I do tag my cards. For example, if a card is "In HTML, what header should you use to make a website responsive?", I would tag it with "programming," "webdev," and "html." The organization is there, but I haven't actually found a use case for the tags yet.
It's sort of like the Pomodoro technique, except with 30-hour chunks instead of 30-minute chunks. (Obviously they serve different purposes.)
After studying a topic, while it is still fresh in my mind, I will make a few entries into my spaced repetition system (org-mode) and then I only review the entries between each of the 30-hour blocks. This means I'm only reviewing entries maybe twice a month at most. Yet, the spaced repetition still works well, and surprisingly, it doesn't take long before I'll only have one or two entries to review during my rare study sessions.
My point being, even if you study your spaced repetition entries only once a month, it will still work.
It also helps me not become too obsessed with creating cards for every little thing. I study a topic for a few weeks, and only at the end do I even think about spaced repetition and making cards. I review what I've learned (I do take notes sometimes) and make only a few cards for the most important topics. Ultimately I'm only thinking about or interacting with spaced repetition systems one or two days a month. Again, they still work even when used so rarely.
Also means that you can export it all to a well structured PDF and use on any device that can read PDFs.
Downside is one cannot do drills unless at the PC.
The first is a flashcard application called Manabi. It uses a similar algorithm as Anki with a priority on UX.
The other is Manabi Reader, which complements the flashcard app. It curates feeds of interesting short-form content, has one-tap dictionary lookups, optional furigana injection and JLPT level tagging, and it lets you create flashcards from the words you're learning as you read.
Glad to hear any feedback. I'm currently working on word tracking functionality for Manabi Reader, to track your reading progress and let you see which and how many words in an article you should know already vs. words new to you.
Does anyone know where I can find the equations that model this qualitatively? (of course there's no expectation that it will list actual quantitative coefficients for my brain)
>It is difficult to determine exactly what forgetting index brings the highest acquisition rate. Simulation experiments have consistently pointed to the value of 25-30%. You can even plot speed-vs.-forgetting graph using your own actual learning material in SuperMemo 98 or later using Tools : Statistics : Simulation. You will probably also arrive at similar results
How can simulation provide us with actual real world data?
How do we know that the forgetting index sweet spot is independent of the number or even history of recall attempts? If I write R to denote remembered and F as forgotten, then I can imagine RRF, RFR, FRR (variable ordering of failures for a constant recall rate), and RRF, RFF, FFF (variable retention rate for different factoids), and R, RR, RRR (number of recall attempts) to influence the sweet spot level.
Does Anki support plotting plotting such a user's graph? If it does I might consider rewriting the code such that it can generate multiple plots (to find sweet spot at N-th recall attempt, N-th recall attempt with M succesful out of N-1 previous recall attempts, ...)
in the above "simulation experiments" links to http://super-memory.com/articles/theory.htm#maximum%20speed
which doesn't describe any simulation, but just shows a plot, presumably generated by supermemo statistics for an individual?
If someone has a large homogenous set of Anki cards, I'd like to experiment myself. Perhaps vocabulary of a foreign language? If I'm going to use a vocabulary dataset, I'd need a dataset where the responses are sense disambiguated though (i.e. the sense in parentheses), otherwise I am cramming wrong associations.
https://senrigan.io/blog/everything-i-know-strategies-tips-a...
Thought rs.io is/was really well done, great curated stuff. Added a reference link to your pages.
Hit me up at jeffshek@gmail.com anytime! I sheepishly already follow you on Twitter lol.
There recently was another discussion related to spaced repetition[0], and at the time I dismissed it. I mostly thought "huh, bad memory never really held me back in software engineering, so I don't really care", and that with the fact that my factual memory is probably the worst it has ever been.
Fast forward a month. My biochemistry university studies have started, and I'm absolutely in love with spaced repetition. It's been one of the best learning experiences of my life. I don't think I've ever acquired that much (factual) knowledge about a new field in such a short timeframe, though there a probably other factors at play too, like motivation.
I write Anki cards on my computer and sync them to my smartphones, and then do them on my commute and before I go to sleep. Every time I go through some of my course material and encounter something where I'm not sure what it means, I note the word (with context) down in my notebook and then later sit down to write a Anki card for it.
The first exams for the semester are still to come, but largely thanks to spaced repetition, I feel very confident about them. Really looking forward to applying it in other parts of my life in the future!
Does anyone here have tips to memorize the standard library of the programming language you use say Python using Anki? While yes there is the quick look up to the lib using a standard dev environment, what I am pointing to is having to lookup for details for the library function assuming that you know the function is the right choice because you have added it your long term memory. If this is useful for nothing, it will be useful at least for the algorithmic interviews which should be aptly named harakiri :-) [2]
[1] https://alexvermeer.com/anki-essentials/ [2] https://en.wikipedia.org/wiki/Seppuku
I don’t use them to memorize the answers, but more as a cue to do the problem. I add 1-5 new cards a day. The cards aren’t facts, but actual problems. It’s been really effective so far. I can pretty easily recognize what the pieces I need to apply on novel problems much more quickly.
[0] Disclaimer, I made cards.c13u.com for a class project
The one that I did this morning was:
If given the root of a binary tree, calculate the number of unival subtrees contained in the tree.
The back is usually either blank, or has a space and time complexity that I should get if I did it correctly.
It’s important to make sure you solve it at least once, and understand the solution well before you make a card of it.
Also, what kind of problems are you putting into the cards? Are there any "must-know" interview questions that we should all study and memorize?
Please share an example card.
I’ve given 3 examples in some other replies, but I’d say that it’s most beneficial to keep some common stuff in the front of your mind. Like various operations on graphs and trees, how exactly to formulate dynamic programming subproblems, etc. For that I’d say it’s better to have a lot of different problems in the deck for those types of those things, rather than memorizing definitions of DP and linked lists.
Some cards I’ve put in lately are:
Calculate the level of a binary tree with the minimal sum of its elements.
Reconstruct a binary tree given an inorder and preorder list of the nodes.
The backs are usually blank or space and time complexities that I should be able to achieve.
I also did this for various college courses I’ve taken, and I’ve found that to be tremendous for practicing and recognizing patterns.
Say you have decided to brush up on your first grade math, and you make a card for multiplication. Instead of just making one "2 2 = 4" card, you make one card containing three potential questions, so you add "5 4 = 20" and "3 * 3 = 9" to the same card. Each time this card is scheduled to appear, Anki will randomly choose one of the questions to display.
This way you prevent your memory from overfitting to the irrelevant context and force it to remember the actual concept, because you have to use your knowledge of how multiplication works every time. You have to pick a large enough selection of possible questions for that to work, for me three is usually enough. Additional bonus : anki reviews get less tedious, because you don't feel like always seeing the same old stuff.
Here's a template for creating such cards: https://ankiweb.net/shared/info/947272864
Very interested to hear what others suggest.
I had the same problem when I was initially only put in definitions into Anki. I was able to say the definition 1:1 but didn't form the concepts very well. My 2 (very similar) solutions for this (which I found to work pretty well), are:
1. Cross-referencing cards. I started editing a lot of cards, to add cross-references to other definitions that I also have cards for. For all the new cards I write now, I always try to have at least one reference to something that is on another card.
2. Meta-cards. I specifically add cards that test the knowledge of concepts, and me explaining it by adding cards like "Explain the difference between A and B".
3. Epic cards. When I started learning the periodic system of elements, along with the individual elements, I added a card for each group, a card for each group where I also have to know the element symbol, and a card for each group where I have to know the element symbol and atomic number. Obviously, I can only correctly solve a card if I know the easier versions of it, but it both provides a bigger goal to work towards, and also helps to put the smaller individual pieces of information I'm am learning into a context.
1. Slow down your review session. I run into this problem mostly when I lose discipline and start skimming the question.
2. Put more effort into breaking info down into very atomic parts. For complex info, I'll still put in a high-level card, but I'll also put in cards that represent pieces of the info.
3. Add different cards for different methods of recall. I frequently add pairs of cards. For example, I added both "what is Betteridge's law?" and "what adage states that any headline that ends in a question mark can be answered with no?"
I basically wrote a CLI tool to auto-generate an Anki deck from a Meetup.com event URL, using the publicized names and profile pictures :) https://github.com/CivicTechTO/anki-meetup-memorizer
We have a script that runs weekly via CircleCI, before the event, and drops the file into a GDrive folder for me to easily load up on the way to the Meetup: https://github.com/CivicTechTO/civictechto-scripts/blob/b1cb...
I wish more websites would create templates like that.
I also built a tool to build spaced repetition flash cards from the captions in YouTube videos. This uses the SuperMemo-2 algorithm, the same algorithm as Anki. This has helped me a lot with my listening comprehension.
Most people seem to use it to learn languages and technical subjects. I'm looking for things that most people would find useful in their daily lives:
- Social security number
- Credit card number
- Passport number
- Multiplication tables
- Unit conversion tables
- Emergency phone numbers
- Recovery codes and passwords
- Basic recipes and cocktails
- First aid techniques
- Survival techniques
- Phonetic alphabet
- NATO phonetic alphabet
- Basic words in foreign languages