Comment by arrowsmith
1 day ago
I love Anki but it’s an archetypal example of “designed by an engineer”.
It’s powerful, with a lot of depth to its features - but it’s also hideous, clunky and unintuitive, and it takes a long time to figure out how to use it effectively.
An HN-reading tech nerd can probably figure it out, but your average Duolingomaxxing normie? No chance.
>An HN-reading tech nerd can probably figure it out, but your average Duolingomaxxing normie? No chance.
Me, the person who reversengineered obfuscated code doing weird crypto primitives and submitted patches to linux kernel can't figure it out either. Maybe I'm not HN nerd enough, so I had to do the duolingo to pass my citizenship exams.
Anki seems like it works for a lot of people with a very specific flow, but I don't know what the flow is and why it doesn't work for me. It's weird.
Reminds me of how I'm using Anki on iOS to learn German, and my phone's configured language is German, except for the Anki app, which is ironically the only app I've configured to be in English because I couldn't understand what 80% of the buttons meant.
Those reasons are why I love Anki. I'd rather have a program that exposes every mechanism of how it works and allows me to access it than a program that doesn't and the program appears to appear to work by magic. Give me visible cogs that I can tune and a good manual any day of the week.
Anki is refreshing function over form design. It's beautiful.
I think the default settings are fine for 99% of the users. I've used them to "master" a language and I've been more than fine. Actually, I'd argue I was more effective than people who didn't use SRS.
Sorry, but what's clunky about it? All buttons in reach of your thumb on the mobile app and usable keybindings on desktop?
Is there not enough useless whitespace around every button?
I have been trying to use Anki for years. Every time it is the same story: I keep it up for a few months until I miss a couple days, then due cards accumulate far beyond what can be reasonably managed, and I end up spending more time trying to fix the app than actually learning anything.
This is an area where I feel like there's scope for improvement in the SRS space. All the SRS systems I've seen essentially assume the user is a perfect robot who will do their reviews every day without fail. But most people will have off days or go on holiday for a week and not look at the app, or whatever -- and as you note, the user experience in that case is awful: you come back to a huge number of reviews which is pretty discouraging to even start, you probably get more of them wrong than usual, so you likely do fewer reviews than you normally would, and the situation tends to get worse instead of better.
An SRS system which took more account of the human failings of the user might:
- let you pick a "max daily reviews" and then keep you from putting in too many new items up front, rather than letting you accidentally give yourself a huge daily workload after a few months
- let you tell it "I'm going to be on holiday in a month's time" and have it figure out what to do with reviews and new items to minimise disruption
- when you do come back after a break, pick the most useful reviews to offer the user up to the daily limit (e.g. something whose review interval is six months can wait a few more days, something the user added very recently and has seen only once could be put back into the "new items" bucket to relearn later, so if the user is only going to do 100 of their 300 due cards, other cards are more important to review today)
8 replies →
biggest insight for me as a decade+ user: ignore the due count. just plug away at reviews when you have time. I've come back multiple times from backlogs of thousands of cards.
i really wish the UI would just hide number of cards due by default
This is one of the reasons I ended up writing my own language study system. I haven't used the FSRS thing mentioned above, but I've heard it's much better, and having looked at the algorithm, it seems like it should be better.
The other reason I wrote my own system was to integrate SRS with extensive reading. Basically, my algorithm tracks the difficulty of all the words and grammar concepts, like FSRS; but then it gives you content at the right level for learning (either fewer than 5 new concepts, or an average of 95% known material).
And among the things that fits, it balances reviewing older material and learning newer material, based on what would have the largest impact. (Reviewing something you're about to forget has a bigger impact than learning something new, because the new thing you're going to forget much more quickly. So the balance of new / review and spaced repetition falls out naturally.)
I'll give you one example. Occasionally, I come across something that needs to be not be shown anymore. I realize that the question wasn't a good one, or my template spit out something empty. Now, do I suspend card or suspend note? Every single time, I have to go search for which is the right one. (Okay, okay, maybe user error, but still.)
Another example until recently was the extremely useful image occlusion enhanced add-on. Can you easily tell the difference between overlapping and nonoverlapping? At least they renamed those settings to the much more intuitive "Hide One , Reveal All" and "Hide All, Reveal One."
First thing that comes to my mind is that it is basically impossible to make it show you both sides of all the cards you are about to see for the first time today at the same time. So that you can actually try to learn it in more effective and less frustrating way then flashing cards on you in random order.
Second thing, control over workload should not be that hard. Anki requires too much tweaking to work reasonably.
Third thing, both old and new algorithm have a notion of "you are pressing the buttons wrong". If you are pressing the buttons wrong, you will end up with absurd intervals - like 4 months interval on something you just learned.