The author of this article mentions he'll post an article tackling this issue, looking forward to that!
I later wrote my own flashcard app[1] with spaced repetition and ended up hiding the details of what was overdue and instead just let you set up a daily goal of number of cards reviewed. When you do a lesson, it picks up the overdue cards first, but if there aren't any, it pulls in new cards instead.
It's funny because I originally thought telling you how many were due each day would be a great motivator (at least for me), but I'm finding I actually don't care. If you miss a few days, the cards still remain overdue, but when you return it doesn't feel bad.
I think for me, it's more important when learning to aim for the long-term commitment to it than to be perfect each day in your studies. If you aim for perfection, you end up not meeting your high standards and may end up quitting. Also, I think the "deadline" for when to review in spaced repetition isn't exactly accurate to the day or hour that something is due, so there's a little bit of malleability there, and I think that's okay.
Those are features of AnkiDroid, and probably the desktop Anki also.
There is a daily review limit, and you can configure to see review cards before new cards. Anki does not tell you how much is overdue beyond the review limit.
If you're set on writing your own app, you will tend to overlook the configuration details of the original, though.
My strategy for this was to dump the entire text of some good literature into Anki decks that give me one new paragraph per day. The steady drip of unseen material removes the stigma of pressing the “again” button and gives me a small reward of story progression from each session.
In a separate deck, I use cloze deletion on sheet music to help learn songs. That deck only gets reviewed by actively playing music, which is an inherently enjoyable activity on its own.
Maybe you only review a few of those hundreds of cards that are due. So what? The algorithm still achieves its purpose. You are still focused on cards you are least likely to have permanently learned. No matter how you use or abuse space repetition algorithms they ensure your study time is well spent (assuming flashcards are the right thing to be studying at all).
I learned this from experience. I have some math concepts I'd like to have memorized. I made some flashcards in a space repetition program. I haven't review them for about 6 months. It is what it is -- at least I know all my progress wont be gone when I finally do return to those flashcards. I will have forgotten some cards, those cards will be shown to me frequently. I will have remembered some cards, those cards will get a boost because I've remembered them for 6-months without review, and will rarely be shown to me. The spaced repetition algorithms still work; they are robust.
I will update the post with screenshots or something tomorrow, for credibility.
1. Never set a maximum number of reviews. It will create an unstoppable backlog no matter what you do.
2. If you have a huge backlog of like 500 cards then just hit "HARD" on 50% of them until the backlog is spread out over multiple days and you have a manageable number reviews.
3. Don't have too many young cards at once. Stop adding new cards after you have 500 young cards (exact number depends on how easy the cards are).
I've been able to use it about 30-45 minutes per day, every single day for five years. Even when Im sick or traveling. If I know I am going to be busy, I just turn down the number of new cards in advance and by the time I'm busy my review count has usually responded.
(I don't use the desktop Anki, by the way; I used it briefly for doing some editing on decks.)
Tha said, AnkiDroid could use a vacation feature. How vacation mode could work would be simply by rescheduling all cards, delaying them by the vacation amount (14 days or whatever). Thus, no cards are due for the next 14 days, and on day 15, the same cards are due that would have been due day 1 (no "snowplow" accumulation). It would probably help if the app generated a notification a day before vacation ends.
It's incredible that neither the author of the original Anki, nor the authors of the AnkiDroid clone, recognize the value of a vacation.
But the vacation idea is great, I'm sure someone could make an add-on to implement it.
It happens. Every time it was a slog but I just got through it.
The one thing I can say for certain is given enough time it will happen. But whether you can overcome it or it causes you to quit is down to how intrinsically motivated you are (Anki or no Anki) to achieve the goal you are using Anki to help you accomplish. If you would continue to pursue the goal even without Anki then you will most likely persevere. If the goal is simply to remember everything and not forget stuff and you're only using Anki to use Anki then you will almost certainly quit when you hit this wall.
>I feel like Anki is not designed to help you succeed. Eventually, you'll start missing your reviews. One day you'll open Anki, see that you have hundreds of cards scheduled, and just quit the app.
You could also just do it every day, if it's important to you. You're not destined for failure, it's a choice you make.
You will forget stuff over time. What was the leading actor's name in that movie? Aaargh, it was practically a household word in the early 90's ....
> You could also just do it every day.
Even people who stick with it 7 days a week for 50 weeks could use a 2 week vacation.
My number one recommendation is to not get overly excited about it. One of the first things that happen when you start using Anki and realize the superpower that it is being in charge of your memory is that you want to include EVERYTHING in it.
You start creating cards with obscure bash one-liners, little-used git commands, or Javascript functions you read about in a random article. You add all of it to Anki. After all, you might use them in the future right? And it doesn't cost you anything to create a card with them so why not.
What happens is that because you don't have a clear picture of why those cards are valuable to you - you just added them because they might be useful, one of these days - you will have trouble retaining their knowledge, meaning that you will keep failing to successfully review those cards.
And because of the way spaced repetition algorithms work, those cards will be constantly appearing in your reviews, and you will keep failing them. And they will keep appearing. And so on and so forth until you lose all motivation to use Anki because it's becoming a frustrating experience to do your reviews.
The most important thing about using Anki is to keep using it. That's how you get the benefits of it, so be more selective about what you add to Anki instead of profligately adding cards that you gain nothing from.
Coworkers, neighbors (like that neighbor 3 blocks away that I talked with for a few minutes about {such-and-such}, but don't see that often), restaurant employees/proprietors, delivery people, maintenance workers, friends-of-friends I've met.
Without Anki I have an abysmal memory for names. I have aphantasia[0] which might relate to my difficulty with names.
Now, with Anki, (if I'm using it regularly) I have a freakishly good memory for names. :)
Goes a long way to helping others feel welcome and appreciated, which in turn means _I_ end up feeling welcome and appreciated. A very virtuous cycle.
Edit: I'm a software engineer, but most of my Anki usage is not focused on software engineering directly. To create new Anki cards, I follow the "20 rules for formulating knowledge"[1], so it takes a bit of work before I can take some new bit of information and "process" it to something ready for Anki.
[0] https://www.facebook.com/notes/blake-ross/aphantasia-how-it-...
[1]: https://www.supermemo.com/en/archives1990-2015/articles/20ru...
- what does ABC stand for
- describe process X
- how process X differs from Y, and why
- what is the role of system A in process Z
- what is the shape of data that comes from A to B in process Ł
This vastly reduced the number of times I got stumped with something during various high-level meetings (to the point that I routinely pointed out some false assumptions people made). It worked better for me than passive documentation. The domain was unusually complex though.
- Emacs Commands
- Emacs Key Strokes
- Greek letters, words and sounds
- The wikipedia List of non-standard dates
- Physic ideas
- General principles of organization
- Learning principles
- Bible verses
- Command line utility options
- Vimium key strokes
Basically anything that I want to learn I end up ankifying. I find that Anki is most effective for remembering things that I don't do all the time, but need to remember two or three times a week/month. Here's a good tip, if you need to DuckDuckGo it more than once it's probably a good idea to throw it in an Anki card.
That way, you can build a knowledge base of what actually interests you, which you’re much more likely to study and retain in the first place.
* HTTP status codes
* Acronyms
* Syntax mistakes (spot the bug).
* Command line or vim snippets, e.g. "write a for loop over all files in a directory in bash" "grep and only show match"
I find it most useful for catching things I commonly screw up. The trick, of course, is to build the habit of identifying when you've repeated a blunder and then to make it into a card. An example for this in Go would be using `range` and forgetting the second arg: `for val := range slice` is legal syntax, but `val` is actually the index var here, it should be `for _, val := range slice`.
It's usually simple things, like what's the method signature for slice? Or how do I run bash inside of a docker container?
The tough part for me is sticking to reviewing. There, I'm trying to figure out where to attach it to something I often already do.
I've started reviewing a question or three in the rest breaks during my workouts.
Not all exercises or routines work great for that, but it works surprisingly well for things like bodyweight HIIT.
If you want to improve your vocabulary read more books. If you want to improve in a programming language program more in that language. If you want to learn chess openings - play more chess.
Actually doing things you want to learn is way more fun than rote memorization so you are more likely to stick with it.
But if your goal is purely to expand your vocabulary, don’t you think reading is more tangential than drilling words with flash cards?
However, after a couple of weeks coding a project related to Perehdytykset and Kuljettajaohjeet, I now know the words.
But many things are list-like, or maybe just don't stick in your mind via reading, or need to be memorized quickly, or are better memorized in a digital/artificial context, or can only be memorized "naturally" at a high cost (just theorizing here). In this cause Anki is worth the overhead.
If anki were cost free (every interesting thought I heard in a podcast were automatically added to the deck), I'd use it store everything I didn't want to forget.
Many masters say the fastest progress can be made in chess by doing "find the checkmate" exercises on tricky or otherwise interesting positions. This aspect of chess disproportionately contributes to success, compared to how much time is spent on each of these positions in the natural course of play. A bit of meta-knowledge about what makes someone successful at chess lets players play more effectively by focusing most on whatever helps them win.
Similarly, if you're learning a language and find yourself constantly groping for the right word, you might make a connection between your ineffectiveness at communication and lack of a memorized vocabulary, then shore it up by focusing specifically on that.
While there's a very strong correlation, there's no special rule of nature dictating that the best way to learn a thing is the same as doing it.
Go players practice life and death, basketball players practice shooting hoops, football players practice dribbling.
I designed macro exercises to give my students when I taught Starcraft.
The problem with these exercises is they are rarely very fun. To be great at something, you have to put in the hours. You won't if you aren't enjoying the time spent.
But I do agree with you that it takes you there and no further. Moreover, I find the branding of this site (and others of its ilk, these seem to pop up every now and then over the years) to be really disingenuous. I don't think it's on purpose, more out of naievete.
An implicit assumption with these kinds of things is that it's cognitive fitness getting in the way of whatever it is you want to do. That's deeply presumptuous, IMO. The truth is more likely to be as you say -- it's not a lack of "cognitive fitness" -- it's a lack of experience doing the thing you want to do! And so if you want to get better at doing that thing, the difference between success and failure is figuring out a way to practice it consistently and slowly pick more challenging things to do. Not look at it like a leetcode problem with a trick that must be found which magically makes the problem tractable.
At a certain point doing the "fun thing" will lead to stagnation of your skills.
It takes effort to get good at something, and that effort is not always going to be fun.
The gist of it is that there are several types of "practice". "Naive", "purposeful", and "deliberate".
- [0]: https://mrbartonmaths.com/resourcesnew/8.%20Research/Explici...
It’s a big reason why when you ask your friend what the two foreign characters in the movie are muttering they may pause and say, “this character is really mad at that character.” Because translating their swearing just does not make any sense in English, or sounds even harsher than it really is (according to screenplay writers, the French like to slip the word “whore” into any exclamation, from jovial mocking to impotent rage. Or perhaps more illustrative, there’s a “dang it” that refers to either a cow, or a dog’s name.)
Or going the other way, you want to explain “Bob’s your uncle” to a Swede? There’s a political history lesson in that explanation. They’re so weird you just learn them in context and go on, mostly.
As an airline pilot I’ve had to learn new aircraft a few times over the last 5 years. The airlines can’t afford to give you 100 hours in a simulator to drive in every little detail. You have to spend time in the manual using rote memorization to be up to speed on things before you’re out in the world operating the machine.
Learning by doing is my preferred method as well and it has its place. Just trying to point out that sometimes rote memorization, and tools to make it easier, are an important piece of learning something new.
A good approach is to use Anki to memorize words but only add words that you've actually encountered in the wild.
Is anyone working on improving the UI? Or are there alternative "frontends" out there? Does anyone know how hard it would be do it? (I assume it might not be trivial since Anki has a plugin system, but I don't know to what extent they can modify the UI)
It uses a similar scheduling algorithm to Anki, but it's based on simple markdown note cards, and has some features around that as well, such as bi-directional link references.
Personally I find the UI/UX to be exactly what I want it to be. What exactly do you not like about it?
It's by no means pretty and definitely has a learning curve. That's what makes it such a useful tool though. Otherwise you end up with duolingo...
I also make Cloze cards specifically for grammar where I'll cloze out the conjugated verb and put an English hint, like: 7시니까 댄 씨는 벌써 {{c1::퇴근했을 거예요::I think he left work}}.
I disagree with his approach (which I haven't followed since original discussions) to then try to monetize this by basically creating a closed-source, locked-down Anki replacement. As I recall, he wanted to do what he said in his book wouldn't be effective -- to sell his cards to others.
It was a brutal, breakneck pace but the result was nothing short of phenomenal.
It's like inventing a very surreal dream to help you avoid forgetting things. I use variants of it for things like people's names and ideas I'd like to explore all the time, it's super helpful.
I always saw Anki as an implementation of spaced repetition. What is your process?
How do you codify connections and associations into spaced repetition?
I've been using Anki quite successfully to learn things about wines in french, especially about the wine domains in Bordeaux and Bourgogne. It's easy to create, as a flash card. One side shows the map, the other shows the name.
Now, I'm keen on learning the list of the main french authors of each century, but I don't know how to proceed.
Let's say a list of 20 names, how would you do it?
You would not create one flash card with 19th century on one side, and the 20 names on the other side. I've been struggling with that issue.
Maybe using the cloze type?
In general you want to reduce the amount of things you have to retrieve from memory in one go, and attempting to retrieve a 20 person list is just going to give you problems.
The cloze solution is certainly better than the full list (and does follow the minimum information principle because you just have to retrieve a single name) but the problem is that it doesn't give you any handles. If you have 19 names and Flaubert is hidden, how would you know it's Flaubert that's missing? Long-term you're bound to fail those cards.
But I would also question the premise of the card. Do you expect to have to come up with the 20 names each time you want to talk about 19th century French literature? As in, each time the context is "19th century French literature" is the appropriate knowledge to retrieve "* list of 20 authors *"?
Instead a better approach might be to flip it around and ask yourself, "In which century did Flaubert write Madame Bovary?" or something along those lines. You can both reconstruct the list from that and if you're writing about Flaubert the knowledge that he wrote during the 19th century will come more fluidly to you.
Your answer and your link (especially the paragraph about sets) help me a lot
Anyone else study this way, like an Anki for interview questions? If not, how do you pick what questions to practice and what order do them in when studying for interviews?
If you don't want to practice programming exercises, but rather memorize facts, Anki is fine. Go through the common algorithms/data structures (and the less common ones) and create cards that ask you things about it. "What's the big-O for inserting into a sorted linked list?"
Or do like me, and skip those interviews because they're usually a miserable experience and don't really gauge the quality of the hire.
Conspiracy? Well it must be true.
Sets that can be downloaded are also often low quality, or at least there is no way to tell in advance.
I think some day there may be a unicorn startup doing the flash card thing right.
There are software companies doing the spaced repetition thing (like Duolingo).
If it just has the proper dispersal.
You would just be an ass,
To do it en masse,
Your remembering would turn out much worsal.”
Ulrich Neisser, Retrieval Practice and The Maintenance of Knowledge
What? If you can ace the exam by memorizing, it must mean that awarding of merit in your field of study requires little more than the mere regurgitation of facts.
In a typical engineering exam, you can bring a sheet of formulas and facts, and a programmable calculator. This is so that the exam is less about rote memorization and more about application.