Pretty OT: A few month ago I tried to marry my simple note system with anki. My goal was to be able to send simple front/backside cards to an api and it would get integrated and I can use it immediately. Ofc, when I edit cards via my notes-backend, the cards in anki should update too.
Long story short: not possible with anki. It took like an entire day for me to realize its just not possible without diving deep into ankis sqlitedb and having the client installed on my server to interact in a horrible way with decks. I wrote my own space repetition [1] backend in a week and never looked back to anki. Ill intergrate FSRS in my software.
> In Anki, templates are written in HTML, which is the language that web pages are written in. The styling section is CSS, which is the language used for styling web pages.
I did that. The consens is like, just an example, yanki-connect:
> Anki desktop app auto-launch
> Perhaps the most precarious aspect of the Anki-Connect add-on is that the Anki desktop application must be running for any of the API calls to work. Yanki Connect tries to sand down this rough edge by (optionally) automatically launching the Anki desktop app if it's not running already.
I looked into this before too. Ankiweb (the place where cards created on Anki sync to) does not provide a rest API. The service is free though. It makes sense they may not want automated clients.
There is an implementation of their sync server, which you can self host. And it has a REST API
Anki can import .csv files and if one of the column content is matching an existing item, it will update the contents of the card while keeping the repetition history.
Think of it like including a column with unique keys.
I know this is not precisely what you wanted, but yes, Anki can update card contents.
i use the python package genanki to accomplish this. I've found it to be extremely dependable -- just use the first field as a UUID and you're golden (future imports dedupe and auto update imported cards with the same first field)
I do think that Wanikani and Bunpro are kind of in a catch-22 on this compared to Anki. They've built their gamification features and UI on the idea that cards have specific buckets that they're in and something like FSRS is a lot more varied than that. Especially Wanikani, which has a system of unlocking more items based on your current items reaching a specific stage.
So I haven't integrated FSRS, and of these two, I've only used Wanikani, and have been playing with a reimplemention for Chinese hanzi: https://hanzi.bpev.me
But seeing how it's implemented, I think they could totally integrate something like FSRS to at least just replace their scheduling (how long until an item is next shown). The unlocking system can be implemented as a separate gatekeeping mechanism, and the buckets can be coded for certain step thresholds (instead of wanikani's "stage").
I dream of building a WaniKani competitor that uses FSRS. Unfortunately it's one of those projects where 10% of the work is building, and 90% of the work is marketing/community building/evangelism. (And the 10% is not trivial work either!)
YMMV though, since I haven't user-tested it in my app yet haha.
TBH though, I think for a true WaniKani competitor, need to reserve a decent % of work for building the dataset. Putting together all those mnemonics, cleaning up definitions, defining the order of introduction of characters and choosing words... is a lot of effort. There's a reason that WaniKani's so generous with pretty much their entire platform, but specifically states in their docs that the mnemonics/hints data doesn't belong to you... it's a large part of the effort.
Although, I guess could be integrated into the 90% work if you make sharing mnemonics into a community effort.
Spaced repetition has been all the rage for 20 years now.
Dozens of apps, thousands of lectures, and it turns out its not really a silver bullet.
There's nothing really wrong with it, it's just that people tend to fall off the same way they do on any other education pattern.
A couple years ago I was thinking "If Google and Apple really cared about kids they would make a spaced repetition unlock system", where by you have to make note cards every week and then have to answer correctly to get into your phone. (obviously requires some bypass system, other rules, etc)
You could probably jury rig it with a popup that comes up after you unlock, but people would never install it anyway.
The "work" is actively trying to recall the information on the card. Spaced repetition is just a more efficient way of doing this than (for example) cycling through every single card, every single day.
This is a strange comment because it shrugs off something that has been transformative and hugely useful to a lot of people because it doesn’t fix all conceivable problems.
I don't think it's a strange comment. He's mostly right (and so are you, but I think you're talking past each other). There's nothing wrong with SRS, and I agree with you that it's basically like cheat codes for memorization, but there is a limit to what most people can do. i.e. most people do tend to drop off.
I remember reading some stats from WaniKani (Japanese SRS app) a while back...
WaniKani has 60 "levels" to learn 2000+ kanji. Each level takes about a week (there's no skipping ahead), so the material takes about a year of study to complete -- that's if you're going at breakneck pace, which most people aren't.
According to the numbers I saw on the WK forums, ~8% of users reach level 30 and less than 1% reach level 60... and that's just to learn as much kanji as a 9th grader. That's to say nothing of the grammar and the 20,000+ vocab words you'll need to SRS to truly learn the language, or the thousands of hours you'll have to spend speaking/listening/reading, immersing yourself in native content, etc.
People give up very easily. The language learning community often gives year estimates to reach "near-native level" in a language based on frequency of study. In reality, the process takes a lifetime. I don't know if people truly know what they're signing up for when install those apps and begin studying. It's a lifelong commitment. It's just something you do now, every day.
You can stop at any time of course, and most people do (more than 99% of them apparently).
Learning a language as a hobby is tough. If you don't need the language to communicate and survive in your environment then you have essentially zero real motivation to learn it.
The problem with spaced repetition systems is that it doesn't supply that extra motivation. You're still just memorizing things in a vacuum. If you truly want to learn a language you need to use it to communicate. That means making friends, travelling, reading books, and consuming other media in that language.
You can also be motivated because you like to consume media in the language (relevant for English and Japanese), because you think it will be useful for a job (English) or for travel (French, Spanish, etc.), or simply because you like the language.
If you don’t have any of these reasons to motivate you, the question arises of why you’re bothering in the first place.
I started learning Mandarin on Duolingo while dating a Chinese woman. After we broke up I continued with it just because I found it fun.
Now I have several Chinese friends and I'm learning Chinese cooking. I'm motivated to continue learning about Chinese food and Chinese culture, and the important role food plays within it.
The article specifically points out WaniKani as an example of a very bad implementation of spaced repetition (see the "FSRS in practice" heading, under the paragraph "for Japanese language learning specifically...").
I would expect the flashcards produced under this regime to be utterly useless, like a flashcard with "A" and the answer is "B", or simple math problems. In other words, Goodhart's law.
This is a very big problem. Virtually all the results from research here comes from some form of simple word recall. Direct recall occupies some part of real world tasks, but IRL if you're stopped by doing something it's people not because you can't remember it (and you could look it up if you forgot).
It's just logical that memorization is useful for broad areas like vocabulary and get progressively worse the more depth is involved, e.g. vocabulary>grammar>maths. The first one doesn't require generalization, the last one most certainly does. Even though I find that SRS leads to good generalization if it is used for relatively shallow conceptual knowledge.
Spaced repetition is time-optimised, but it isn't self-discipline optimised, nor motivation-optimised. If you're limited by time, it's very efficient, but it drains motivation. If you're anywhere close to being limited by motivation (or, failing that, self-discipline), it just causes burnout and failure.
I credit Anki to my success at GCSEs and A Levels despite having a head injury, and I also credit it to me burning out so hard I took a gap year!
And I'm enjoying the gap year, but Anki made it a near necessity.
There was an interesting post here awhile back about autonomy and motivation. The gist was people's motivation is proportional to their autonomy. This is quite intuitive, you can see people are really motivated when they have autonomy (think kids with Minecraft, musicians with instruments). One terrible thing about Anki is that it probably is horrible for autonomy. Quite possibly using anki actually has a negative effect on motivation.
Motivation is some combination of real and perceived effort Vs expected reward. Shorter isn't always better. For eg. Counting every single calorie is the shorter way to lose weight, but for most people, eating approximately healthy is more optimal from an effort /motivation poi t of view.
I think both have a place. When someone is starting for the first time, they're enthusiastic, but they haven't built faith in the process yet. It's easy for them to lose confidence if they're putting in work but the results are slow or ambiguous. I think it's best to take advantage of their beginner's enthusiasm and kick them off with something higher effort that is guaranteed to show them clear results. After they build confidence they can settle in to something lower effort (aka "more sustainable") where the benefit is longer-term and you don't see dramatic results every week.
Spending half an hour mind-numbingly learning words through flashcards will teach you about as much vocabulary as an hour watching educational videos, but it'll be far less fun and you'll feel like it actually took two hours.
Keep that up every day and you'll burn out much faster with option 1 than option 2. Now, maybe you have enough motivation for that not to matter, or the self-discipline to keep going - as I did in my A levels - but don't be surprised if it kills your interest in the subject.
I‘m not super well versed in the literature but I know this has been researched, and—unless you are being hyperbolic—it completely fails the sniff test.
As OP points out, SRS is optimized for memory retention. You will almost certainly encounter many more words watching a two hour long video, but you certainly won‘t retain nearly as many words as half an hour of SRS.
Actually you can combine the two. Use the two hour long video to encounter new vocabulary in context, put the new vocabulary in your Anki deck, and review it with optimized SRS. You get the best of both worlds. As a bonus you often remember the source which will help you recall... This is actually common enough pattern that it has a name: Vocabulary mining.
I've tried it in a few situations (e.g. my driving license theory test) and yeah it's absolutely awful and I quickly stopped. My modus operandi is obsidian notes->flashcards->revision to keep my knowledge up. However, a lot of people do actually do that!
People will genuinely download top x wordlists for a language and try to learn from them. Hideous, but they do it.
> People will genuinely download top x wordlists for a language and try to learn from them.
I’ve done that, and I’ve even created a whole SRS app to learn kanji which does that by default (https://shodoku.app).
I think this is common practice for the first 1000 words, and I don’t exactly recommend against it. Unless your target language is close to another language you already know, you are going to have to learn your first 1000 words somehow, and you will not learn them by comprehensible input in any reasonable time, unless you are actually living in the language area, and cannot use other languages.
I actually bought a vocabulary book which has 1000 basic words and example sentences and puts them in categories (e.g. work, travel, food, etc.). I then downloaded an Anki deck from the book and use it. To be fair though, I first read the word in the book, and practice it with a red-sheet (albeit in reverse, i.e. from english and try to recall it in japanese).
As for my kanji learning app. I made it so the first time you see a kanji, it does not hide any information, and it shows you the strokes in order as you write it on first encounter, after that you review it normally.
Oh thanks, I didn't know there was a name for the thing I've been doing. Vocabulary mining is a nice term.
I agree with your general point too. People are correct to say SRS only helps with memorising and not with learning, but this is only a problem if you haven't developed functional learning techniques or you have to learn something you don't enjoy. Good learning essentially hinges on interest and excitement, and making the thing you're learning relatable or catchy.
If you have exams and deadlines, this can be hard. If you've no exams and no deadlines, just flashcard anything interesting that comes your way, include context and jokes, and focus on enjoying yourself. Delete flashcards with a smile if they annoy you a few repetitions down the line. Make all your own cards. Invent funny stuff, find quirky facts that stand out.
E.g., the area of Ireland is 84,421km^2 - all powers of 2. I never had a "yardstick" for big areas, now I do. Borneo is nearly nine Irelands in size.
Or another example, French Polynesia has 121 islands, 75 of which are inhabited. I found this fact shocking, so I thought I'd put it in to a flashcard. After some quick reflection, I'm sure you too could come up with ways to make those numbers stand out.
Another - the title of Wittgenstein's "Tractatus Logico Philosophicus" - where truth tables were popularised - ends in SOS. No more forgetting the title, or where truth tables are from!
In summary - learn things you like, and make it spicy for you.
Edit: It's worth noting I had a nasty head injury that was slowing me down. Optimising my learning was a necessity, and the injury meant I spent more time studying than my peers, in more optimised and less enjoyable ways, to get the same result.
> Spending half an hour mind-numbingly learning words through flashcards will teach you about as much vocabulary as an hour watching educational videos, but it'll be far less fun and you'll feel like it actually took two hours.
The first part is definitely untrue, you won't learn any vocabulary spending an hour watching an educational video, you'll be lucky if you remember one new word tomorrow. That half hour on Anki will be spread out over six months, and will teach you 20 words.
As for the second part, doing Anki is like doing through any sort of timeline that spits out random rewards and failures. I get a rush whenever I remember stuff, and I get bummed out when I forget; it's basically facebook.
I understand why one wouldn't think that with single-word vocabulary flashcards, because they are horrible to do and unhelpful. You should be running sentences, not words. Words rarely translate well, change form when they are in sentences, and often show up as part of seemingly ungrammatical set phrases.
Many things. I think HN is a bit of a bubble here, but you'll find a lot of people prefer something enjoyable but slower to something efficient and faster, even if they won't admit it.
See the popularity of Duolingo vs Anki as an example! Or Quizlet vs Anki. Or the scores of students who revise by half-watching dopamine-ified youtube videos rather than doing past papers and flashcards. If you ask people, they'll often say they care for efficiency, but their revealed preferences say otherwise.
Doing large amounts (hours) of Anki day in day out is truly miserable, particularly when the alternatives can be quite enjoyable. And if you burn out before you achieve your goal, is the "efficiency" really worth it vs going slower but eventually getting there?
Plus, a lot of people want to learn e.g. a language because they enjoy the process as well as the end result. Making the process miserable in order to get to the end result faster isn't always a good tradeoff.
Which is what it's about. It's a tradeoff. I'm a big proponent of flashcards, but I think it's important to recognise that you're trading enjoyment for speed in most cases.
Maybe an 80/20 approach where you only create flashcards for the 20% of knowledge that's most useful? E.g. for a language, you could create 1000 flashcards for the 1000 most common words which allow for basic real-world communication?
My personal approach with A levels was to strictly learn content through classes, then organise things (which teaches you a lot on its own!) and make my own flashcards. Then I used the flashcards to keep it fresh till exam season. It was crazy, during revision lessons everyone else in the class would be going "uhhh I have no clue, that was two years ago" while I'd just know it.
I have tried different approaches, including using other people's flashcards (not as good - objectively they were high quality, but you gain a lot from writing your own + tailoring to your own way of looking at things) and learning from them (for my driving theory - terrible idea!). That hybrid approach is the best I've found, and the one I intend to use for my degree.
I confess I'm interested to hear your thoughts re: the usefulness of SRS from a more holistic perspective.
Gwern writes:
>...if, over your lifetime, you will spend more than 5 minutes looking something up or will lose more than 5 minutes as a result of not knowing something, then it’s worthwhile to memorize it with spaced repetition. 5 minutes is the line that divides trivia from useful data.
My sense is that there are very few facts I will spend more than 5 minutes of my life repeatedly looking up. And even then, many of those are facts that I will naturally end up memorizing regardless of SRS, since I'm using the info so often.
I understand the utility of SRS for test takers or language learners. When Google is impractical or unavailable, memorization makes sense. But for everything else -- why not just Google it?
Honestly, I'm not sure I'm a particularly good person to ask about this. I've experimented with Anki for areas other than test taking and language learning, but it didn't stick.
I used it for some geography stuff, and that was fine I suppose, I like geography, but I stopped after a while.
I find it easy to remember things if I care about them. Ergo, if I care enough to put it in Anki, Anki is useless.
Particularly with LLMs being a thing, you don't even need to concretely know what you're looking for - just give chatgpt a vague description and let it list out suggestions until it jogs your memory.
When it comes to physics etc, you'll end up memorising everything relevant to the areas you actually use. In areas like "What is the star type of a star with a temperature of 6000K" - something that I memorised using Anki, and which took me a while - if I actually worked in that area of astrophysics I'd obviously learn that quite quickly.
I suppose it could be useful for maintaining knowledge. Had I not been burnt out I would have kept up my flashcards through my gap year, which would've presumably been quite useful - I'm currently going through the slog of relearning how to integrate so I'm not totally embarrassed at uni!
> Many things. I think HN is a bit of a bubble here, but you'll find a lot of people prefer something enjoyable but slower to something efficient and faster, even if they won't admit it.
This is so well known that it was covered extensively in the book Make It Stick[1], that you might as well call it the "student fallacy." (And they might have; ironically, I've forgotten if they do or not!)
Mastery by George Leonard touches on some of this; learners can fall into 3 categories during the learning process: Dabblers, Obsessives, and Hackers. Each one has strengths and weaknesses, but the core philosophy is that "mastery takes time". After 2-3 years of practice, you know all the moves in a school of martial arts, or all the chord progressions for an instrument. But its the "after" where you either continue to refine or move on to the next skill.
Anything advertising that you can learn X in Y days isn't addressing that "after" period. Once you've learned the skill, you need motivation toward applying it, which in turn refines your skills. Conversely, becoming hyper fixated can be detrimental to overall skill. "Jack of all trades, master of none" HOWEVER the rest of the quote goes "but often times better than a master of one"
Sometimes you gotta slog through the boring bits to progress.
I would say the implementations are time optimized, over the others. I’m building a language learning application, and have put in a lot of effort to make sure that the Spaced Repeition is motivation-optimized.
It’s centered around your performance and review times, to make sure you aren’t struggling to much; no due dates to avoid Anki slogs; gamified with some internal mechanics; dopaminergically influenced with aspects of randomness.
Spaced Repetition is just an equation (SM2 is laughable simple), but a lot of applications just slap a UI on it and call it a day, but that’s not the only way to use it!
IMO, the most limiting feature is that spaced repetition is a method for memorization, but memorization is only one part of learning and it's very often not the most prevalent part.
But when memorization applies, gamification is a really good way to avoiding burnout (as long as you don't overexpose yourself to it). There are many spaced repetition games for children, I don't know why people make so few of them for adults. (But then, fearing the duolingo owl is a popular meme nowadays.)
>I also credit it to me burning out so hard I took a gap year!
Do you think targeting a sub-90% difficulty could help reduce burnout? My experience is that working to recall something I'm on the verge of forgetting can be very effortful.
I experimented with this, actually. The default was 0.85 iirc, and I tried pushing it up over time to 0.91, but I ended up reducing it to 0.83. It isn't that many more cards, and it makes it far less laborious.
Fellow longtime Anki user, I can say letting myself drop from 0.9 to 0.85 was like letting myself experience the taste of clover honey for the first time. Accepting a slightly worse hit rato in exchange for 2/3rds the workload made life considerably more pleasant.
I have downloaded 3 card decks for learning Spanish.
The main deck I use for verb conjugations expects me to use it for maybe half an hour per day or the list just build up (I have no idea if this is standard behaviour, but I don't seem to get the same build up on the other decks that I use less frequently).
While it end up being a bit of a chore some days, I appreciate that it does force me to use it every day, which is good for my discipline.
There's some UX problems of SRS (that I'm working on) that makes it high friction
1) Time taken to create cards
2) Need for self marking
3) Creates a one to one mapping of prompt-answer
4) If you're an autodidact, you have to teach yourself first (alternatively called understanding, scaffolding, etc)
More fundamentally, SRS isn't a superpower because it's just very specific to creating a direct prompt retrieval. Generalization is poor. Even creating a graph of knowledge, is a chain of edges between bits of knowledge, isn't done very well here.
And I suspect there's a very deep, fundamental difference between recollection knowledge and logical-modeling knowledge. Recollection seems very similar to a dictionary access, and if you recorded the time to recall in humans I suspect they'd all be constant. But learning the knowledge of a logical model, like of a mathematical concept, appears to be vastly different and have very different time to compute.
Proponents of SRS will point out logical models need facts as well, like formulas, lemmas, etc. Which is true. But if you already grasped it before you'd grasp it faster the second time. So the practical use of SRS is a significant step above having a very well sorted and labeled notebook, but still way below becoming a genius.
Poor generalization (overtraining on prompts) and loss of context over time are the biggest issues I've found with them. Slow card creation workflows and needing to rate your own reviews are merely UX issues -- losing context and losing generalization make SRS actively harmful when used for some topics.
There's 2 solutions I've thought of but haven't tried implementing:
1. A free-recall based approach. Free recall allows you to operate at a higher level of organization and connect concepts at lower levels. However, how you would schedule SRS with free recall is not clear.
2. Have an LLM generate questions on-the-fly so that you don't overtrain on prompts. You might also instruct the LLM to create questions that connect multiple concepts together. The problem with this approach is that LLMs are still not so good at creating good test questions.
I implemented free recall into FSRS pretty easily. Granted, it’s only for language learning, and I have it set up to work in a free recall friendly way (you don’t learn cards, you learn actual words and morphemes) but it’s been working for a few weeks now. I’m working on a product video atm, but once that’s done my next task (sometime this week) is to clean up the UI and merge it to master.
I almost never see someone talk about free recall so I was too excited to see it mentioned not to comment
How are you handling scheduling with FSRS? The challenge that I quickly saw was that it was difficult to figure out when you should advance a segment of information. If you get 80% of the info right, should it be advanced? What happens to the 20% you missed? How do you prevent yourself from missing the same 20% every time it comes around?
If you don’t mention an item, it is skipped (no grade). If you can’t remember an item, but you recall learning it, you describe it and it will be marked as fail. At the end there is a screen with all the words and you can change any from skip to fail if you truly forgot it.
Any skipped items are then prioritized in the flashcards/cloze completion/shadowing modalities.
AFAIK free recall is not very high signal as to which words you know and which ones you don’t. Skipped words I just as often forget about cards because they’re so easy as I do because they’re so hard. It is however an incredibly effective exercise to cement your recall (and in my apps case, a good way to skip a good portion of your reviews in a day)
> Dozens of apps, thousands of lectures, and it turns out its not really a silver bullet.
I mean, you say that, but I did mandarin for maybe 6 months, I did reviews for maybe a year or two on and off, I haven't done a review of mandarin for 8, 9 years now and I can still recall quite a bit of it. So for me it's worked quite well.
Basic undergrad statistics. This doesn't make me better at doing statistics, but now I can understand things I read. Whereas prior to SR, I had learned the material three separate times - always forgot because of lack of use. SR made it stick.
Algorithms and data structures.
Basics of HTML/CSS/JS. I'm not a frontend developer, but this was enough for me to (mostly) understand colleagues' JS code. And often I would inform him of one of the newer JS features he didn't know of (e.g. null coalescing operator). Does it make me a JS developer? No. But it ensures I'm not useless at it.
Python 3.x new features. Simple things like "Stop using os.walk and use scandir instead".
A whole lot of Emacs keybindings. I was a heavy Emacs user before SR, but this really helped take it to the next level (I now mostly rely on hydras, so I no longer memorize keystrokes, cut I can't deny its effectiveness).
Some amount of elisp.
Probably a whole lot more random miscellany I can't recall right now.
Basically, what it does is let you retain information without usage. Prior to this, I would mostly retain only things I use (or had used) often.
I was in university for over a decade. Took lots of notes. But they're useless if you don't review them. Some years after leaving university I stopped trying to learn anything technical unless I was putting it to immediate use. Why bother if you're going to forget?
I can understand using SR for languages or I suppose geography or history trivia.
However, how do you use for skills/domains where you have to actively think?
Like in your Python example, knowing about os.scandir() would be a tiny bit helpful before Pathlib.
Let's say I put pathlib.Path().iterdir() in my Anki card, what would be the point of that for someone who is happily using glob or rglob?
What I mean is that for many domains it seems the challenge is what to put on these Anki cards.
Let's go with another example. Let's say you create Anki card Recall = TP / (TP + FN) for your statistics 101. However knowing why and when recall is important would be crucial instead of knowing bare formula.
As I said, they won't make you better at applying statistics (or programming) - just at recall.
Disciplines like programming, math, and well any technical discipline require both memory and analytical abilities. SR takes care of only the former. The barrier I kept running up against was forgetting definitions and theorems in math - especially if it had been a year or longer since I last used them. This helps mitigate that problem.
> Let's say I put pathlib.Path().iterdir() in my Anki card, what would be the point of that for someone who is happily using glob or rglob?
That's for you to answer - if you prefer doing it with glob/rglob, that's fine. For me, the card was "What is a better way to traverse directories/files than os.walk?".
The next time I reach for os.walk, I'm reminded there is a better way.
OK, let's be real. It doesn't always work. Perhaps only 30% of such cards lead to actual behavior change. In a typical scenario (70% of the time), I'll get the card right, but using os.walk won't trigger the part of my brain that says "Oh, there's a better way". Still, it's a very low price to get that 30%. And the bonus is if I see someone else's code where he uses scandir, I'll immediately know what it is for.
> However knowing why and when recall is important would be crucial instead of knowing bare formula.
Obviously. You'd have to find a way to embed that into a different card.
You say that but it's completely revolutionized the way medical students study.
IIRC the effect was so profound they had to modify the structure of some tests or something to that effect.
And polyglots have been using SRS for years.
As always, the real problem when people fail to do something that works is psychological, not technical. I'd say anyone who made an Ozempic for motivation would make a killing, but I believe it's already a scheduled substance. Maybe one without potential for addiction or abuse. Or maybe an Ozempic for conscientiousness.
I'm not so sure. My brother's medical school had to tell students they had to study the actual material rather than Anki decks because so many students were failing tests.
Doing anki cards with words two hours every day, and not doing any reading of material is very detrimental for me.
I do not study medicin, but for language I have to actually be able to use what I memorize. Knowing how to use words is harder than it sounds, you need context. A common mistake when constructing sentences is getting the tone wrong and choosing the wrong synonyms.
Not really. They're just stimulants. Anyway, I'm very skeptical of this use.
I'd guess uni students are buying methamphetamines them because they have gotten themselves into a situation that they cannot handle - too many non-academic scheduled activities, not enough time management skills, possibly a heavy courseload combined with several weeks of avoidance of things they found difficult, poor sleep habits, etc. They need to stay awake and work. I don't think that's all you're talking about, though.
I wouldn't discount the idea that some have an undiagnosed attention deficit problem.
One thing that bothers me about SRS is that it doesn't get enough attention from people who understand the difference between memorization and language acquisition. It gets a ton of attention from people who are doing test prep or who get intrinsic reward from their memorization accomplishments.
Memorization is not my goal — I want to get better at reading Spanish and French — but I find that drilling on vocabulary and example sentences helps a lot. I compare it to using scaffolding in construction. Scaffolding is not a building. Scaffolding doesn't serve any of the purposes a building does. But if you need to build, expand, or refurbish a building, sometimes building scaffolding in and around it can speed things up a hell of a lot.
I wish there were better guidance for using memorization to assist in language learning, but the world seems to be split between people who are satisfied with memorization as their goal (for test prep or intrinsic satisfaction) and people who dismiss memorization entirely because it isn't their goal.
If I weren't already busy enough using Anki to accomplish my own goals, I would almost certainly look into deeply integrating LLM calls into it so that we could e.g. practice writing and speaking with it in a way that is much closer to the kind of immediate feedback loop you get with a tutor.
For now, I make do by having Gemini Flash 2.5 open in a separate window and checking my short answer writing responses with that.
It's a silver bullet for learning facts. You still have to actually do the learning. Nobody was claiming it would download knowledge into your brain Matrix-style.
You'd probably say silver bullets aren't a silver bullet because you still have to load the gun and shoot it.
I’ve been using Anki for about a decade now, and as far as I’m concerned, the only real improvements needed are design/UI based. It is functionally irrelevant if the algorithm is optimized or not when the actual user interface seems boring to potential users. While I do like that Anki has power user options, it’s also very unintuitive to the average person just looking into it.
Which is really a shame, as the spacing effect itself is such an underrated aspect of human learning that it almost feels like cheating.
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.
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."
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)
>- 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
Anki allows you to do that. It's in the deck preset options under deck limits. Nowadays you can also set weekday workloads, to reduce workload eg. during the weekend.
Looking at the manual, Anki seems to let you manually set a new card limit, and also to set a review limit (after which it won't show more reviews even if they exist), but I didn't see anything for "given that I want a daily workload of this many reviews, limit my new cards automatically to try to not exceed that in future".
It is not a human failing. A human who has huge amount of free time on Sunday, but comes home from work super tired on Monday did not failed anything. And from the other side, there wont be any difference between you revising a card after 89, 90 or even 95 days.
A human who had a lot of time to learn during January, because his job workload was easy is not failing anything if his job related workload becomes high in March and April. But, all that January effort will be punished by super high workloads in March and April in Anki.
You seem to be reading more into the phrase "human failing" than I intended by it. All I meant was the ordinary variations in human behaviour where we sometimes fall a little short of what we hoped we would or could do.
We seem to agree on the substance: that the SRS system should be able to work more humanely with and for the kind of entirely normal situations you describe, by for instance being able to adjust to variations in available time and picking the "best" cards to review rather than assuming the user will get through the whole lot, and in suggesting to them when they should do fewer new items to avoid difficulties in a month or two.
I feel like from a habit-forming perspective Anki would benefit from a fixed-time mode instead of varying the number of reviews. The default daily maximum is 200 reviews per deck, I think, but it's hard to tell whether that's too little or way too much until you've hit that level.
If you could set a study time of say 30 minutes, then when you skip a day, you could just do your usual 30 minutes and maybe only get through 50% of the scheduled cards, but you could slowly catch up over the next few days. And if on the contrary you run out of reviews for today, you could carry on with some scheduled for tomorrow until you've hit your target time.
FSRS can handle off-schedule reviews just fine, I think, so it should be able to accommodate such a rhythm where you don't always review cards on exactly the optimal day.
> All the SRS systems I've seen essentially assume the user is a perfect robot who will do their reviews every day without fail.
This reminds me of GTO (game theory optimal) play in poker.
There’s a perfect way to do things, so we should just try to do something as close to that as possible, right? The reality is that you can’t actually do things in this perfect way. In GTO’s case it’s that it’s too complex for a human to have memorized and in SRS many (not all) people will fail to follow the algorithm for one reason or another.
The problem is these strategies aren’t very resilient. If you miss the implementation by a bit, it can cause big losses. An algorithm that’s less theoretically optimal but more attainable by actual humans can end up much stronger in the real world.
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.)
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.
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.
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.
>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.
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.
Compared to i.e Duolingo, the app is quite boring. I still have been using it for years. But I sometimes wonder if adding a bit of gamification may help. For instance, streaks, sound effects, etc. Obviously, those should be optional
I used to be something of an Anki evangelist and recommended it to anyone that would listen. But the minute I showed it to someone that isn’t already technically-minded, their eyes glazed over and they lost interest immediately.
I think it just needs a fresh minimal design, a tutorial, and some premade decks that aren’t just the half-baked free ones.
I've quit Duolingo because of the gamification. It's far, far too much, and it puts me in the wrong mindset for learning. Instead of concentrating on the knowledge, I'm gaming the system to improve my score the most. There were times I would stop learning because I knew if I saved it for later, I could use a multiplier for a higher score.
And the daily emotion-tugging streak reminders started to actually piss me off.
On top of that, at one point they were changing the icon regularly and made it really ugly. Despite a ton of complaints, they left it that way for a long time.
So I canceled my subscription and I'm done with them. I'll find another way to study that I like (I've already tried Anki and it works, but I don't like it) and isn't mentally abusive.
> On top of that, at one point they were changing the icon regularly and made it really ugly. Despite a ton of complaints, they left it that way for a long time.
My kids loved it. I did not cared. So, the likely explanation is that many people like that icon changes or dont mind it.
I'm of two minds about it. Duolingo is off-putting for me, not because of gamification as a concept, but rather because of their particular implementation - with tons of clearly user-abusive bullshit with gems and chests and watching ads and shit.
I used to not care for gamification because I knew that my brain is resistant to it in activities that aren't otherwise rewarding on their own. Like, I quickly realize I'm just tricking myself, and then it stops working. But somewhere over the years, I must have burned out of my dopamine reserves or something, because apps like Anki feel now actively off-putting, in the sense that I lose all energy just looking at them. Memorizing cards gets tricky when your eyes just glaze over them and nothing is loaded even to short-term memory, much less long-term. So at this point I'd appreciate even a little bit of immediate feedback and some progress tracker that evokes ever so slightly positive feelings.
>But somewhere over the years, I must have burned out of my dopamine reserves or something, because apps like Anki feel now actively off-putting, in the sense that I lose all energy just looking at them
This resonated with me. I think the decline in excitement towards learning, that we used to do without thinking about it, happens naturally with aging.
Evolution doesn't reward older humans that much for learning so most of us don't feel that same excitement. Compare this to when we're young and need to learn fast, so the dopamine rewards are off the charts.
Consider all of the retirees who spend hours at slot machines (or virtual ones like Candy Crush) to get that dopamine fix as easily as possible.
Maybe a more tasteful gamification balance can be found.
There's an excellent heat map addon that helps with that. Some people have tried the "dopamine effect" style things (confetti when you answer a question etc), and it didn't work for me, but there are addons for it if you'd like to try it.
Language learning is the classic use case, but I also use it from everything from historical facts to encyclopedia entries on a subject I’m trying to master.
Probably the simplest use case to get started is improving your English vocabulary. (Assuming English is your first language.) I try to add a card for any word I come across that I don’t know the meaning of, and it works very well.
Try to learn a different writing system, alphabet or not. Arabic, Cyrillic, Hangul, whatever. It has finite number of cards and you don't need large context to understand them.
AnkiDroid maintainer here: we're actively working on a new design for the reviewer (currently available in the Developer Options in the production app).
I don't think any of us are satisfied with how most things look, but we're severely under-resourced.
Feel free to email me if you'd be interested in getting involved with the Android side of things.
it'd be nice to have a better UI. but the reason people don't use Anki isn't because it's hard to use. it's because the time to value is high, and the value really only comes from long term discipline and motivation.
people that are motivated and will succeed with Anki regardless of design will power through an annoying UI. so with better design, you'll increase top of funnel but radically decrease conversion.
My biggest gripe with it is how clunky the editor window is. That’s the main part that’s due for a redesign in my opinion.
It has other oddities too though, like the tab bar in the main window that doesn’t act like a tab bar. It should also really have two button mode (Again and Good only) for the review screen as a built in option, too — the addon that adds this is very popular and it’d be dead simple to implement.
Ah i've been curious about what improvements folks would like to see most in SRS learning and this thread is gold! It does seem as though Anki’s core is undeniably solid, yet its power can also feel like a hurdle for non power users. Additionally, i'm not sure "boring" is necessarily bad, as i've heard and to agree that learning may be best when it feels like a strenuous workout.
Mine has all sorts of shit in it. Mac keyboard shortcuts. Nautical terms. Cyrillic characters. Credit card verification codes. Phone numbers. Airport codes. Ionic component names. Names of my friends’ kids. A surprising amount of Z Specification. Anything I think it would be useful to remember.
How do you manage the data? Multiple decks or just one with everything? Do you directly use the app to add new phrases, or do you have some sort of automation / tooling on your phone or laptop?
Multiple decks, although honestly I could probably get away with just one and tags. Almost always just use the app although I’ve used CSV import once or twice, and I grab the occasional pre-made deck too.
Anything you wanna the retain the knowledge of. Basic usage is remebering shortcuts, names of people, apis, you name it. More advanced usage is you can break down complex concepts into atomic cards, which helps you remember how things work.
I'm using it to memorize all of the Paris métro stops and study for the French drivers license test. It was also a huge boon when I prepared for my citizenship interview.
I tried it for a while with my eldest child (then aged 3) to help her remember numbers, letters, etc. She didn't find it very fun past the first couple of times, so I figured I wasn't going to hoist it on her.
The advice with gendered languages is to always learn the word alongside some context that includes its gender, e.g. "Der Tisch" (The masculine table) rather than merely "Tisch->Table".
It's surprising how much easier to translate a foreign when it's given in a sentence. Also helps when there are multiple translations for a word depending on context.
I’ve been meaning to build a unix shell deck for a while. There are so many tools that are so powerful but I just don’t use them regularly enough to remember how they work when I need them.
HamStudy.org is exactly this, an SRS site/app that already has the questions and some explanations to go with it (the site is free, but they also have an app which is a couple bucks and almost the same but in my opinion slightly better). I used that a couple months ago I studied for the technician class license and got a perfect score when I took the test. Then I studied the general class license and got one wrong (34 out of 35 = 97%. You only need 26/35 = 74% to pass.) I could probably go for the third one next but maybe it would be more useful if I actually go get a radio and start using it first.
Used to use it in university (CS) for cramming before tests, mostly when there were lots of definitions to memorize. Also summarizing stuff and writing your own cards for it helps already with learning itself.
I'm sorry, I didn't read the article but I thought my experience would be a good anecdote.
I've used Anki for multiple years and learned around 18'000 Japanese words. It's difficult to say but I'd say I've learned how to read around 5'000 kanji. When I studied in Japan, my kanji reading—don't mix that up with comprehension!—was way above everyone else's. And most of my classmates were either Korean or Chinese.
That's what 10 minutes of free time—I did that during my daily train rides—can get you! Keep practicing. Being ignorant is the first step towards becoming more knowledgeable.
There's a surprising gulf between word recognition and overall sentence comprehension. I'm learning Farsi with a combination of Anki and Youtube videos and sometimes I find myself in the weird state where I recognize every word in a sentence, but yet cannot assemble its overall meaning.
Yeah there’s a few different levels. 1) not knowing the words 2) knowing all the words but not what they mean together 3) not being able to keep up with the speed at which the sentence is spoken…
Not buying at all that you learned 18000 words and 5000 kanji in ten minutes per day. Thats 60 hours a year for say five year, or 300 hours. Thats leaves you with about 70 words and/or kanji per hour or less than a minute per word/kanji. A rate which far surpasses native speakers.
Anki works, it doesnt need these unrealistic takes.
Sure, but I didn't read it as 10 minutes a day. The comment says ten minutes of free time. So could be 4 train rides, 10 mins after you finish your sandwich at lunch, 10 mins with your coffee in the morning, etc etc.
That isn't terribly far off. I used Anki throughout my A levels, spending about 250 hours on it in total according to its statistics, and had something like 10k cards that I reviewed 50k times.
Now, those cards weren't alone - they were reinforcing content that I'd learnt in lessons. But if they were doing it for 10 minutes a day a few times a day, it seems quite plausible to me.
Actually, it took me 20 minutes of time per day to do my reviews + new words. I had, on average, 200 cards to go through daily (180 review + 20 new cards).[1] Going through 18'000 words took me around 5 years. 5×365×20=36'500
> A rate which far surpasses native speakers.
Are you comparing me to babies? It took me 2 weekends to learn all kana, but it takes years for a toddler to learn just hiragana. It's not a fair comparison.
> Anki works, it doesnt need these unrealistic takes.
I wonder why you think it's unrealistic. It's not like I'm a genius or anything.[2]
[1] Two cards is one word; one for English -> Japanese, one for Japanese -> English.
[2] Some teachers definitely thought I was a genius because of my memory, but it was all thanks to Anki. And proof is that I was absolutely bad at text comprehension. Anki doesn't make you practice that.
I learned 17.5k words comprised of ~3k kanji in around 2 years at about an hour a day of review time. That's reviews + new cards, not including time immersing in order to find the daily quota of new vocab which itself was 2 to 3 hours of study.
So, by my calculations for just the Anki time alone it's about 17.5k words split across 730 hours, which comes out to about 23 words and hour or one word every 2.5 minutes.
I've seen a pretty wide variety of people do Anki, and I can say there's a distribution in length of time per card for basically the exact same types of cards among people. The slowest people average around 3x slower than the fastest.
This resonates with me. I feel like I'm on the slower end. A lot of people on the internet love sentence cards for vocabulary but they take me so much longer than just word/definition cards...
Sentence cards are great and necessary for learning grammar (during which you will learn some vocab too). After that can just focus on pure vocab.
I did the exact same Korean deck as my wife at the exact same time. It was wild comparing our stats in real-time. It would take me 10 ~ 12 seconds to do the same sentences that it would take her 30 ~ 35 seconds.
We spend hours a day browsing the web, so I made a browser extension[0] that translates sentences at your knowledge level into the language you're learning, so that you're always learning a little through immersion.
I also used the same "10 minutes a day on Anki" strategy with my A levels, and it made the revision process so so much nicer because stuff I'd learnt two years ago was as fresh as if I'd learnt it a couple of months ago, rather than years.
Looks not bad but a) billing/prices should imho be prominent and not hidden behind trial or get started. And b) not sure if 5/12/20 per month is not too much? The About section is nice. (I use two other paid language services, thus no need/interest in another)
I looked a bit more in detail and I'm impressed. I found:
- "with translation costs being the majority of Nuenki's subscription price." Thus my price critic was not very appropriate
- https://nuenki.app/blog/llm_translation_comparison (Which LLMs are best at low-latency translation?) Cool table!
I've tried to get into anki a bunch of times but never stick with it. It's an on-and-off thing for me that I end up looking into again every few years, which I've gone through about 5 times now. Here's how it usually goes:
* Get interested in memorizing something / multiple things
* Find that the decks available to me are actually not so great
* Get reading online, people say that the real way to benefit from it is to make your own deck (which ups the time commitment significantly)
* Read online about how to get the most out of anki, find out that everyone universally agrees that the default settings are terrible but nobody quite agrees on how to set it for best results
* Try to hit a happy medium, but find that the overhead of 'rating' the difficulty of recall for cards (and how it interacts with the complex settings that I still don't have complete confidence in) adds an incredibly (to me) distracting amount of overhead and never get used to it
* Miss a few days, get overwhelmed with the amount of cards stacked up, don't feel good about my settings (which have implications for what cards show up like, a year + down the line)
* Ultimately fizzle out
I'm probably going to start the cycle over again soon. I really do want it to work out for me. Any tips to avoid this issue? I'm planning to actually pay for some decks this time to see if that gets me to the quality I want, and going to skip the whole 'trying to make my own deck' thing for now
* Make your own cards (unless there's an automated workflow [Japanese, sentence mining], really good shared decks, or you're studying for a standardized exam [USMLE])
* Deck Settings (scheduling): Enable FSRS. Press 'Optimize', then press optimize once per month.
* Deck Settings (workload): Wait 2 weeks before gradually increasing new cards per day (if you want to study for longer). Decrease it immediately if you feel you're getting overwhelmed.
* Deck Settings (backlog): Set max reviews/day to 9999
* App Settings: Disable 'Show next review time above answer buttons'
* Recommended: Press 'sync', and create an AnkiWeb account. In app settings, set Anki to auto-sync on open/close. This is a free backup.
* Optional: Use a mobile client (AnkiDroid is free on Android, AnkiWeb is free on iOS)
You'll feel like you completed the first day far too quickly, and will want to do more. Avoid overstudying until you build intuition for how it impacts your daily workload.
Thank you, the pass / fail addon will help a lot I think, in addition to the FSRS features included in the article. I'll come back to this comment for setting up my settings before starting up again with Anki.
If I'm planning to learn several topics at once (I'm never preparing for anything I will be tested on or hit a deadline for, this is not for a school, work, or travel program), is it better to treat the decks as one big combined review do you think?
I think this is great advice. I have some friends that used Anki that told me "oh yeah I just study once per week" and I just had PTSD of when I forgot to do one day. Sometimes I would miss a day due to traveling and timezone difference and I would instantly panic when I would see 400+ cards to review.
If you don't do it daily, Anki doesn't make any sense to me. My recommendation—to that friend and everyone else—is to study a little bit every day. It's much better for building a strong foundation, especially for languages.
Yeah, ignore the "defaults are terrible" people. Turn on FSRS, if it isn't on by default (I think it is), and forget about it.
I have seen this opinion offered hundreds of times and each and every time I reflect upon the irony that not one of these commenters having trouble navigating the UI, etc to their liking doesn't just ... Make Anki cards about Anki.
If that sounds silly, it shouldn't. I've made flashcards out of all kinds of other programs, from vim to shell shortcuts to Photoshop. Nobody ever expects an interface built for professionals to be something they can just waltz in on and understand perfectly on day 1.
The current version of the supermemo algorithm is SM-18. The author thinks SRS has gotten way better since the author was previously using an out of date version of the algorithm, SM-2.
SM-17 is linked from the benchmark repo: https://github.com/open-spaced-repetition/fsrs-vs-sm17, though I get the impression those numbers come with a dash of subjectivity. It seems fair to compare to older versions of the algorithm though because SM-17 is only used in the SuperMemo software (and Anki) and isn't widespread.
I'd say it's confirmation bias. In my personal circle, not a lot of people are interested in the Japanese language, but I know a few who took at least a few lessons on Mandarin or Spanish.
I've learned Japanese and part of the reason is that I thought kanji were attractive. I remember watching anime on TV when I was a kid and seeing the opening credits with Japanese characters looked soo cool.
For me, it's about the media. I'm interested in Japanese anime and manga, and now light novels.
I'm not at all interested in anything I've seen in other non-English languages, except possibly Korean now, since they seem to be producing a lot of stuff.
However, almost everything that I'd enjoy gets translated to English for both Japanese and Korean now, so there's a lot less incentive to learn them.
When I was a kid, most of the foreign culture I was exposed from came from the US, and then Japan followed with a small amount.
No wonder my second language was English and third language Japanese.
Never heard a single word of Mandarin in any media I was exposed to. I can understand Spanish very well but I do not count it as a learned language as it is too close to Portuguese (my first language).
Japanese media is quite popular, and many fans want to watch/read their favourite thing in its original language. This is probably the reason most people learn a language, and a huge reason why so many kids around the world speak English. Chinese culture doesn't have the same impact, yet. As to Spanish, most kids who want to learn Spanish can do so at school so there is no need to go above and beyond to learn Spanish on your own.
> Chinese culture doesn't have the same impact, yet.
At this rate if 2/3rds of their popular media(manhua, games, animation) continues being cultivation fantasy featuring the exact same power system, tropes, character archetypes, often even setting(murim) and content, it never will.
Animanga were always poised to make it big, because for all their shortcomings, they have interesting, exotic(to us) themes/tropes/vibes, and go really hard on hyping scenes up.
1. Generally people using such systems to learn language only need to do so if they aren't immersed in the country where it is being spoken. I stopped using Anki for German after a while of living here, even though I'm still learning. Therefore, most language learners are doing so not because they want to live in the country but because they want to consume media written in that language
2. Japanese is becoming one of the most popular languages for foreign media, probably even surpassing English at this point. Anime is really huge now, particularly in the US. It has shifted from being a nerd thing to being of interest for the "cool kids" (if there is even such a thing now). Japan also had a huge and very interesting media industry in the 80s and 90s including some very novel video game concepts, most of which has not been translated
You learn Japanese for the media and culture; Mandarin for the financial opportunities; Russian for the reverse-engineering community; Spanish, French or Arabic to be able to speak with large diverse groups of people, typically for travel; Klingon, Na'vi, Esperanto or Elvish to fit in certain communities
Accordingly, the stereotypical CS major is attracted to Japanese and Klingon, the stereotypical Business major to Chinese. Even though few follow through because of the amount of work and perseverance required
I find with spaced repetition that it works really well for some well-known things like vocabulary (EDIT: well-known meant as "spaced repetition is well-known to work for this use-case, not well-known as "the subject is well understood"), medical etc. but for everything else it becomes a struggle for a long time.
I have been trying for years to fined a way to use it for mathematics and physics - with the former being more of a focus and didn't really get anywhere. For definitions it works, but it's quite hard to write proofs in a way where there is a short obvious memorization based answer. Either you spend far too much time on a card or the card gives you too much information so you don't really test the knowledge.
I also tried it for computer shortcuts - it seems to me that they are really useful only when part of the muscle memory - so practicing them works better then memorization.
i've learned entire math topics calc 1, calc2, calc3, statistics, linear algebra with anki. It's really easy. Just add the parctice problems at the end of the chapter to the front and the answer on the back.
It's someone I wondered, what is the point of memorizing a proof if it only ever proves something you already know. The answer is you hope it generalises. There is a possible way you can do it in SRS, being inspired by RL training. Instead of cards you'd show options within a game or simulation. But this would need a lot of expert knowledge for a single concept.
Math Academy provided a self-service learning system with a novel spaced repetition algorithm which could take the hierarchical body of math into account.
Anki is a good piece of software. But I couldn't come up with a worse scheduling algorithm if I tried (old and new one). It's like "here's the thing you just added one second ago. Here it's again immediately after. Ok you got it, you'll see it once again in a month or so lol".
It makes it unusable and every time I tried I went back to my own self written program that just lets me set/adjust the intervals myself.
When was the last time you tried? Anki used a static algorithm (SuperMemo 2) before the new FSRS - which is dramatically different.
In the short term (first day), I think it's still better to set your own intervals (typicall 1 minute, then 5, then 10). But after that, the algorithm optimizes for reminding you just before forgetting. Highly recommend giving it a try.
I try Anki every couple of years because it has an app and can sync. I also tried fsrs and rage quitted after a few tests. These people can get high and mighty on their algos and research. If they'd just add a manual interval mode they'd contribute a lot more to humanity.
What I find interesting about spaced repetition is the underlying thesis that raw memorization, in certain contexts, is playing a more important role for learning than what some modern education ideas would make you assume. In mathematics or programming, for instance, there is this idea that understanding a concept is better than memorizing algorithms or recipes (derivation methods for instance). But spaced repetition challenges that, in a sense.
If you zoom out and look and the shift in educational systems from pre-industrial revolution to modernity, memorization is a key topic. Basically educational reformers wanted a switch from memorization-heavy classics-based education with lots of Latin and Greek – to one with less emphasis on memorizing and more technical focus, more “understanding” and so on.
Like other big cultural shifts from the time, the correction was necessary but also probably went too far in the opposite direction.
Which is a long way of saying that memorization is underrated and it mostly has a bad reputation from anti-Victorian reformers.
Most modern programming lives by the idea that you don't need to remember something as long as you remember where to look it up. Of course that's only true for some things: I can look up an API call, but I need a reasonably complete working knowledge of the concepts offered by my chosen programming language and its idiomatic design patterns. In most cases this is maintained through application (practice is unstructured spaced repetition), but if I wanted to get into say C++-based driver development then spaced repetition would definitely help build and maintain the necessary knowledge
I think the difference in recall- knowledgeable and logical-model-knowledge will be really interesting. LLMs appear to strongly be the first. But this is very hopeless on mathematics.
>But spaced repetition challenges that, in a sense.
Common sense challenges this honestly. Education systems that traditionally have put a strong focus on repetition, memorization and what you could call neuromuscular training (e.g China, the USSR, France) in particluar in STEM far outperform anyone else. Vietnam outperforms most rich countries.
In programming circles it's a cultural cliche because our profession is full of people who go by: "I am a genius, I work smart, not hard", probably the most damaging idea ever uttered in education, and in the humanities it's seen as culturally unsophisticated.
In reality, 95% of everything is mechanics. Starcraft, math, even literature and acting. Creative freedom is enabled only by a large body of effortless recollection.
It makes sense to memorize elementary operations that are reused frequently because that frees your mind to focus on the "higher level of abstraction" of learning. You probably learned the multiplication tables by heart before you were asked to do more complicated multiplication problems for example.
Are there any algorithms/plugins that are optimized for an on-/off-review style (ie, potentially months-long gaps between sessions)? I know that the ideal would be to do reviews every day, but I'm doing this for pleasure and I'd rather tweak the algorithm to what works for me than the other way round.
You're free to choose not to memorise things, but please don't be an arsehole about people who do want to do so for whatever reason. Having said that, you seem to misunderstand the point of spaced repetition, which is that you don't memorise the same thing over and over again; instead, you memorise it enough times to learn it, and not many more.
Reality check incoming. Yes you are an asshole. Your word choice matters, and you picked a large number of insulting terms.
"not ... smart", "[only use is to] win stupid games.", "[you will spend] your life doing jobs you hate for money".
My dude, I'm learning Japanese vocabulary, which has helped me to start reading light novels for fun. By your argument: I'm not smart, wasting my time, and hate my life, or soon will?
Thing is I would fully agree with you that memorizing != comprehension, but that doesn't mean than memorizing is without it's use. Do yourself a favor and learn to not be so rude. It is literally the first item in the site guidelines:
Triggered? Nah, I was merely answering your question. It's clear at this point that any more time I spend here would only be feeding a troll, so rather than address any of that nonsense I think I'll do something more productive instead. Maybe I'll do some flashcards.
I wrote "Why Anki Doesn't Work for Me" (https://medium.com/@iandanforth/why-anki-doesnt-work-for-me-...) six years ago, which means it was before the new algorithm was implemented. While Anki likely still suffers from all the other issues I mentioned, this directly addresses my point (3). I'm going to have to give it another try and see if the other points are still too much friction, or if the frustration caused by the algorithm was a majority of my pain.
I switched to FSRS via the extension partway through my A levels. I also used the little google collab notebook to custom fit it to my learning patterns - I'm not sure if that's in the version that was merged into the main version.
It about halved the amount of reviews I needed to do, and they didn't come up in bursts, so they were a lot more pleasant. I didn't quite believe it at first, and worried that it would be less effective, but it worked just as well if not better.
I’m doing my A-levels at the moment with economics and geography still to go, do you have any tips or advice for leveraging FSRS / tailoring it to my learning style that is more specific to A-levels, based on your experience?
I personally used Anki the whole time, so if you're currently doing your exams some of my advice might not be super useful. I did maths, physics, and computer science. I didn't use flashcards much for maths - just for the irritating stats equations - but used it extensively for physics, and a little for compsci (I barely studied for compsci).
During my GCSEs I extensively used them for history, which is probably the closest analogue to the wordy questions you'll get in geography. I used it for facts, order of events, etc. I found that the process of organising history into a well-organised Obsidian database, then distilling it into flashcards, was as useful as the flashcard reviews itself. I recommend separating your rough working during class (e.g. the short essays you write at the end of a lesson) and your organised notes, which I split into separate, interlinked concepts with flashcards at the bottom of the file synced with Anki via an extension.
I suppose the advice I'd have is
- Cloze cards are excellent, and you should use them
- You can't flashcard your way to mental models. Absolutely don't rely on them alone, and you need to do practice questions for every separate question type you'll get until you're confident with the mental model itself.
- That said, it's easy to get into the trap of remembering the answers to flashcards as words. While this lets you "learn" quicker, and speed up reviews, I found that I had much better real-world results when I tried to actually "load in" the mental model into my head. So for example, if I had a flashcard about refraction behaviour, I'd not just answer the question, I'd also visualise a laser going from air into water and how the behaviour of the light changed as the angle changed.
For history, it's been a while, but if I had a question about one factor in a broader crisis (e.g. the Berlin Airlift) I'd try to think about the broader context of the question - not in my internal monologue, but just vaguely considering the various factors involved, the period of history, personally I instinctively visualise a map, etc, for a second or two before clicking for the answer.
Edit: Oh, and the heatmap extension is great. It gives you streaks and a heat map that you really don't want to break!
> I also used the little google collab notebook to custom fit it to my learning patterns - I'm not sure if that's in the version that was merged into the main version.
It was! There's a little "Optimize" button in the deck settings that you're supposed to click once a month or so, which does what the old colab would do for you.
WaniKani has the best UI for any SRS software I've ever seen, but they suffer from the old algorithm. They're guilty of all of your points and the article's fourth heading concern:
> And the idea that you’ll literally never see a card again after the last interval is terrifying, as it means you’re constantly losing knowledge.
I had similar issues... anki would drill me hard while stuff was still in short term memory (single session) then push it back weeks or months before I had any retention. I'd get to it again and it'd be completely gone, queue re-learning it from scratch.
I brought it up around the time I tried it and got shouted down. Pretty much every spaced repetition app was treating anki like a holy emissary, so I gave up on spaced repetition entirely.
I had a similar experience. In retrospect I felt like I was wasting my time trying to use it. I somehow ended up with memorization sessions that were too easy and impossibly hard and there seemed to be no way to kind of bridge the gap.
There is definitely an aspect of online language learning communities where certain sanctioned methods are treated as gifts from the gods, while other methods brand you as a no-good heretic who doesn’t really want to learn the language.
I like WaniKani because it forces me to type the right answer. When I tried Anki, it was too easy for me to "cheat" and press space for something I "kinda" remembered.
I do agree with the author's phrase of "...a daily ritual of feeling bad about what you’ve forgotten..." though, and would like to try the new algorithm. Is there a way to configure Anki to force you to type the correct answer?
My personal peeve about Anki: I don’t like its data model. It seems to me that there ought to be collections of notes (which might be things one would download or generate with an LLM or make yourself or share with friends or students). On top of one or more collections of notes are the sets of cards to want to learn, and they can derive from the notes. This includes, roughly, templates plus some concept of which cards are enabled. On top of that is the spaced repetition history and model. There also ought to be a way to constrain what cards should be studied in a given session. (For example, if learning Chinese or Japanese, one might want to have a pencil and paper when practicing writing but not reading. When practicing without paper, one might want to skip the writing cards.)
Anki doesn’t seem to separate these layers at all. Everything is a monolithic database. Import is unpleasant. Export is unpleasant. Sharing is unpleasant. Doing anything other than practicing and editing in the UI is unpleasant. And, every time I try Anki, I get stuck when I can’t manipulate my own data outside Anki.
Is there any system out there that doesn’t have this issue?
For that I buy a vocabulary book, or a phrase book. As I read through it, and if I don‘t know a word or understand a sentence, I try to learn it using various methods, and create an Anki card to keep it in memory. Anki is just to retain the word.
On a plus side, you can buy specialized vocab/phrase books, I have one just for onomonopias. Also my beginner vocab books come with recordings from actual native speaker voice actors, which I add to the deck. Much better quality than anything an LLM or speech synthesizers can give you.
What are you talking about? Anki explicitly has the concept of 'notes' from which one or more 'cards' are derived. You can absolutely easily make custom decks that only have certain card types.
> there ought to be collections of notes (which might be things one would download or generate with an LLM or make yourself or share with friends or students). On top of one or more collections of notes are the sets of cards to want to learn
Is that not what anki does? You have a collection of cards, each card can be in one or more decks derived from the cards.
> There also ought to be a way to constrain what cards should be studied in a given session
That's also decks. You can have your 'Japanese' deck, and then the 'Japanese::writing' subdeck for the subset which require you to have your writing materials handy.
You can also use "Better Tags" to tag cards, and then create a sub-deck with an ad-hoc tag query to only study a subset if you want.
Does creating more decks and then studying the subset you want to in a session not work for what you want?
> Anki doesn’t seem to separate these layers at all. Everything is a monolithic database.
Decks are separate files which can be shared, edited, created, studied, and reasoned about independently.
The "spaced repetition model" in anki is obviously separate from the fact that there are multiple (FSRS and the old one).
> Export is unpleasant. Sharing is unpleasant
It's just files (zip files really). What's unpleasant about it?
> And, every time I try Anki, I get stuck when I can’t manipulate my own data outside Anki.
There's libraries to manipulate anki decks outside of anki for practically every programming languages. There are literally dozens of tools that can generate and import anki cards, such as the large family of japanese "mining" tools which create anki cards from media, dictionary entries, etc etc.
It's open source, and the code has clean library abstractions you can work with, so it's trivial to nab any of the data out of it.
> Is there any system out there that doesn’t have this issue?
Every issue you described is something that I experienced in other software, but which anki solved for me, so for me "anki" is that system.
> Is that not what anki does? You have a collection of cards, each card can be in one or more decks derived from the cards.
Kind of? As far as I can tell (and I haven't spent enormous amounts of time digging in), there are decks, and a deck contains the notes, the templates (and the cards, which may or may not have any sort of independent existence outside the notes and templates that generate them?), and a deck also contains the scheduling information.
One can export the textual and markup contents of decks, but not the media, into a text file, and one can re-import it, supposedly losslessly. One can also export a deck minus scheduling information for sharing purposes. I'm not sure that one can re-import it.
Then there is a collection, which is the whole world: decks along with their scheduling info.
> That's also decks. You can have your 'Japanese' deck, and then the 'Japanese::writing' subdeck for the subset which require you to have your writing materials handy.
I'm guessing that, if I start by importing a Japanese deck from some other source (because, for example, there's a source with high-quality notes), and then I split it into a writing subdeck, and then the original source adds new notes for new words or makes changes or whatever, that merging the results is basically unsupported.
> > Anki doesn’t seem to separate these layers at all. Everything is a monolithic database.
> Decks are separate files which can be shared, edited, created, studied, and reasoned about independently.
Yes, but only as monoliths (again, as far as I can tell). I can export an "Anki Deck Package (.apkg)", but checking that into git would result in a bit of nonsense. I can't export my scheduling information and templates separately from the underlying notes (or, if I can, I failed to find this option).
>> Export is unpleasant. Sharing is unpleasant
> It's just files (zip files really). What's unpleasant about it?
Excel and OpenDocument sheet files are also zip files. But the respective tools are less limiting and don't expect the users to unzip those zip files. (And their merging and text import/export facilities are also weak, and that's unfortunate.)
I could be wrong about most of this. But Anki doesn't seem friendly to a decomposed workflow in the way that modern programming lanuages are.
Maybe I misunderstood something, but I can't find anything in your comments that identifies a flaw with the underlying data model of Anki. It seems your issues are mostly about Anki's data management?
So I would strongly suggest your check out anki-connect (https://git.sr.ht/~foosoft/anki-connect) which provides a REST API for CRUD operations on Anki notes, cards, decks, and media attachments.
Or maybe if you can share in a little more detail on what you are studying, the format of the data, and the exact way that your attempted workflow is breaking down with Anki, I'd be surprised if no one had suggestions for making it work.
Edit: also, to answer a question in your initial post, is there a better SRS tool out there? I've never found anything. For all its warts and flaws, Anki is good where it matters, extensible enough to support pretty much all use cases, and has excellent data portability.
The last time I tried to use Anki for real, I wanted to set up some Chinese character cards, to be used by 2-3 different people. I found a couple apparently high-quality decks online and downloaded them, and they had lots of characters, including (mostly) ones that I didn't want to include for the users in question. Removing content from the decks seemed wrong. Trying to make an actual practicable system with just the specific templates I wanted seemed unnecessarily complex (these decks had lots of fields in the notes, which is great, but I didn't want to use all of them). And actually getting the result to work for multiple users seemed like an exercise in poor maintainability -- I wanted to maintain and curate the set of notes and be able to update what each user was studying as needed.
As the very most basic failure, Anki barely separates the concept of a "deck" in the sense of a set of notes from a "deck" in the sense of that which a particular person is studying. And I found that to be quite limiting.
What I think I wanted was a collection of notes, where each note would perhaps have an id and a bunch of fields and their associated media. That collection should be copyable and ideally version controlled. And I wanted to create study sets that would reference the notes, select a subset of them and a subset of the possible templated cards, and track the study statistics.
@jaredklewis I’d love to know if you have a way to fix the pain points amluto described. I’ve had some of the same struggles with this, in particular when making a deck that I wanted my kids to each be able to use individually, but also be able to keep updating. It seemed like a lot of work every time I wanted to make any change to the deck. This was a few years ago and I don’t remember the details, but it’d be great to know if there’s some streamlined way to keep editing a deck and have the updates show up for multiple users, kind of like they are subscribed to it. I bet there is a way to do this, and I just didn’t figure it out.
I see. Unfortunately I don't know much about the area of using anki in a classroom setting or in case like yours where you want to manage the cards of other students, as I have only ever used it for self study. However, I know that using it in a teacher/student setup is not unusual, so there may be good information out there. Edit: Maybe checkout https://www.ankicollab.com/
In terms of updating decks, I think the way it works is pretty intuitive: you have one static field (like in your Chinese example, maybe a particular character or word). When re-importing into a deck, as long as that one static identifying field is the same, all the other fields will be updated. If you want to even be able to change the character/word/whatever, you could make that static field an ID or such.
Also, it is a pretty common pattern for shared decks to come with gobs of cards. You then suspend all of them (sometimes they all come pre-suspended) and then unsuspend the ones you want to study, usually using tags. For example you download the 20k JLPT (Japanese Language Proficiency Test) Vocab deck, suspend them all, then unsuspend only the levels you want to study (say level 1 or whatever) or those tagged as being very common, or whatever. So imagine what you want to accomplish is probably possible with suspension and tags. Like assigning a tag for each student name or such.
Anki is definitely a power tool, like Photoshop or Neovim. It is generally confusing to use and requires some investment. And there is plenty about it I don't like (media management stands out). But like I said in my previous post, I've never found another tool that even comes close.
It is a hard problem with too many solutions. Excel most certainly is limiting since it is a scary format for sharing data. Sharing highly structured info is a hard problem, sharing collections of the same is even harder.
Programming has a similar issue code, docs, resources, discussions and issue tracking are not handled easily.
> I'm guessing that, if I start by importing a Japanese deck from some other source (because, for example, there's a source with high-quality notes), and then I split it into a writing subdeck, and then the original source adds new notes for new words or makes changes or whatever, that merging the results is basically unsupported.
Splitting a deck in subdecks can be done through tags, and every card has a unique ID field (usually the front, but you or the creator of a deck can define another one). Assuming tags is the only field you change, when you re-import an updated deck into your collection, Anki will match the IDs and you can define it's behavior when it comes to new or already existent cards.
It’s amazing how every single point you’ve made here is wrong as the other commenter already dove into. On top of that Anki is one of the best documented pieces of open-source software I’ve messed with. If you’re able to program, ChatGPT can basically handle any task you want it too, I data mine the sqllite database regularly for my own insights.
I’m not using LLMs but I scrape open dictionary data to generate (massive) cards for learning kanji. I publish these in a specialized kanji learning app (rather than anki proper). My db just lives temporarily on my local machine, before I publish. Maybe sometime I will streamline the publishing process and create a github action for it.
btw. I didn’t use LLMs to write the app, it was still pretty straight forward.
This is probably my biggest gripe. It’s so much information to digest at first, it’s a tough ask. And there’s so many rookie mistakes.
I made the mistake of just jumping in and I would say I spent the first 6 months using Anki “wrong” in the sense I would make bad cards, try to make mc questions, not enabling or optimizing FSRS, capping reviews, doing Anki before I knew the material, etc.
I’m someone who loves to learn from scratch/figure it out myself. I would never recommend watching a YouTube tutorial or following a guide for something you can figure out yourself, but I have to make an exception for Anki. Anki is one of those rare things where it’s simply just better to just copy what someone else is doing and figure out adjustments for your own workflow over time.
My personal workflow with memorizing with Anki using LLMs is as follows: Read textbook material first. It's important that you understand what you are learning.You cannot just breakdown information into atoms and expect to understand how it works together (for example: you can learn that there are monounsaturated fats, polyunsaturated fats,
saturated fats and trans fats. But without reading beforehand about them from a textbook or other source, you will not understand how they differ (in chemical structure, biological function etc). After I understand the material, I feed LLM the documents (textbooks etc) and give it the following prompt:
>I want to generate flashcards from the provided textbook document using the attached PDF. Each flashcard should contain a question and a corresponding answer formatted as pairs in plaintext code block. The structure should be: "Question","Answer"
>Extract key concepts, definitions, and explanations from the textbook. If in the text imperial unit system is used, convert it to metric. For mathematical symbols and equations, format them using inline MathJax syntax because I will be importing the copied text to Anki. Ensure questions are clear and concise while answers provide a direct yet comprehensive response.
After the text is generated, I check out the accuracy (in 95% of cases the cards are accurate) and I import them into my decks. The rest is good old school Anki memorizing.
I remember trying that a few months back but I was not convinced by the quality of the cards. It's also hard to convey what I think a good card is, I guess there's something about not getting lost in the details while missing the big picture.
You only commented on accuracy, but what's your experience on relevance and how useful LLM-generated flashcards are?
To be clear I've already found myself deleting some flashcards I made myself while reviewing them when I realized they were bad, so I guess one can do that for LLM-generated questions as well, as long as the irrelevance rate is somewhat similar.
Well I can give you an output example. This was generated based on chapter from textbook about Vitamin (Vitamin D in this example)
"Which nutrient can be synthesized by the body using sunlight?","Vitamin D"
"What is the primary role of vitamin D in calcium regulation?","Raises blood calcium by enhancing absorption, mobilizing bone stores, and reducing kidney excretion"
"How does vitamin D affect bones?","Supports bone mineralization and integrity"
"What form does vitamin D take before activation?","Inactive precursor synthesized in the skin or consumed in diet"
"Which organs activate vitamin D?","Liver and kidneys"
"What are signs of vitamin D deficiency in children?","Bowed legs and bone deformities (rickets)"
"What is osteomalacia?","Soft, weak bones in adults due to vitamin D deficiency"
"What disease is caused by long-term vitamin D deficiency in adults?","Osteoporosis"
"How does vitamin D deficiency affect older people?","Increases risk of fractures and joint pain"
"What is the toxic effect of too much vitamin D?","Calcification of soft tissues"
You get the idea. How would you rate it's usefulness is subjective but it gets the job done.
Yes I use tags and then I display the tag using CSS at the bottom of each question. You can find out how to do this from anki manual. EDIT: this is useful because sometimes different chapters will contain similar questions but with the focus on different answer (for example: when studying trigonometry and when studying derivative of a function, similar questions will be present so you will need tags to guide you towards the answer).
Actually, every point was right and the data model is terrible. I've been using it for years. The other commenter just mentioned a list of things that the software does do and basically said "isn't that good enough for you" a bunch of times. No, it's not. Anki's concepts of flashcards, and how it stores and manipulates them, are horrible.
It's hard to do many, many things in Anki that should be trivial, impossible to do many, many things that should be possible, and the things you can do involve the types of queries being run over your entire collection that causes the app to slow to a crawl after you add about a dozen decks. And in general: I can adjust far too many things that I don't even care to adjust and probably shouldn't be adjusting, and things that should be trivial to do are impossible.
It's bad. Ankidroid is a little better, but they're also stuck with the data model.
That’s because the default model is designed for the general user. If you sat down and really worked with the documentation, you would realize you shouldn’t be using decks or collections for management you should be using tags. Decks and collections are a different abstraction for different purposes.
I’m in medical school which has basically mastered Anki. The AnKing deck, used by over a million medical students, has over 35,000 cards, cross-tagged by numerous study resources that exists on a single “deck” which receives regular updates. I regularly run basically instant queries on over 40,000+ cards.
Medical school Anki has basically mastered this workflow and the original commenters complaints are completely wrong/come from a misunderstanding of Anki’s data model.
To be put simply, ignoring subdecks, filtered decks, cards vs notes, etc.: cards can only belong to one deck, but can have multiple tags. What exactly do you want to see differently in the data model?
Out of curiosity: How does the individual student select the cards they want to study? Using existing tags or their own custom tags I suppose? If they create custom tags, how do they keep their local version of the deck in sync with upstream?
The deck used to just be shared on reddit & such. But for all your questions, there is now a central "upstream" entity called AnkiHub that organizes and maintains updates to cards, syncs, etc. It's a $5/month subscription, but a lot of my friends just subscribe for a month each year to get the updates then unsubscribe.
All cards start suspended by default, and you unsuspend cards usually by tag. For example, lets say you watched a a popular third-party exam prep video from Boards & Beyond on Insulin. You would find the corresponding video has its own tag "tag:#AK\_Step1\_v12::#B&B::08\_Endocrinology::03\_Pancreas::03\_Insulin" which you would unsuspend all the cards for. That's the basic flow, but everyone does things a little differently.
Some people don't watch videos just do review questions from UWorld which are also tagged. Some people manage cards using a mix of tags and decks. Some people search and manually unsuspend cards individually. Some schools cross-tag cards with their lecture. Personally, I use an AI search to unsuspend cards by cross-referencing against a PDF of lecture for the day.
Sorry, but your landing page is really awful. I’m not allowed to learn about your app because I’m on a tablet? And I have to give you my e-mail address, even though I know nothing about your app so far?
Suggestion: Allow me to browse your site and learn about your application, and I’ll decide if it’s interesting enough for me to open it on my desktop later.
You're right about the data model. I built my own flashcard app [1], so I've had to understand the database schema that Anki uses and a lot of it seems very inelegant, but on the other hand, I can see how it was purpose-built and probably grew over time and things were tacked on. (For instance, there's one table that has a single row, where several fields are simply JSON dictionaries.)
On the other hand, how templates work and how cloze deletions work are really nice. With the flashcard app I built, I didn't have templates, but did have a very basic cloze deletion system where you could mark text to be "hidden" on the front. It was very limited in that you'd only ever get one front/back combination. You could hide multiple bits of text, but they'd all be hidden at the same time. With Anki, you can create multiple groups of hidden text, so that you end up with multiple flashcards from the same note (i.e. you hid three separate groups of text, so you now have three different cards to test with).
I've been working on an update to my app to incorporate templates and cloze deletions like how Anki does it, so now I appreciate that aspect to it.
For my own database, at least in the new version I'm working on, I've ended up creating a schema where the individual attributes for each card are thrown into their own tables, but this is mostly because I needed to support updating individual attributes separately since I use a very simple journaling system to sync across devices. With Anki's schema, I can see why sync was complicated (at least in earlier versions) since it wasn't really built for it.
I wonder how it compares with the current SuperMemo.
I experimented with SuperMemo around 18 months ago, and it made me fall in love with SRS again. The main reason being the algorithm is less punishing when I skip a day. Maybe it has better defaults?
I once skipped a whole week and could get back on track in the next week, in Anki that feels unbearable.
Another thing I really liked about it is that you can edit a card as you are studying without having to open a separate window, helps me stay in the flow when studying.
But… With a better algorithm I might give it a try in the future… Being FOSS is the real advantage here.
Given users were self-selected SuperMemo users who needed to use GitHub to upload exported stats, it feels a low (FSRS benchmarks average ~70k per user, filtered to a random selection of users with > 10k reps).
I wasn't involved in the benchmark, and don't know whether `SM16-v-SM17.csv` is a full export. Didn't see any reviews before 2020, and it may only be an export of a subset of reviews.
I really wish there was a FOSS equivalent to SuperMemo. Spaced Repetition is cool and all, but Incremental Reading that uses principles similar to SRS to augment learning novel content and then retain pieces of it through more standard spaced repetition is really next level.
I was working on a product which has FSRS implemented, and is heavily inspired by anki. The change we made was that rather than rate yourself, you have to type your answer and its graded by an LLM. It also has a button to explain the concept to you as if you are 5 (eli5) and you get feedback on your answer.
You can also create the flashcards by uploading a pdf and then generate them from it.
I've stopped working on it and am now building something highly similar aimed towards high school students, but any feedback is welcome. This version was built for uni students
mimair.com - I never got around to adding any payment option so its completely free
This seems impossible to me. In anki, there's "hard", "good", and "easy" which are all for "I got this right".
For my usage, "hard" is "I got it right, but I was only like 60% sure", "good" is "I had to actively think", and "easy" is "effortlessly correct, no real thought required".
There's no way for an AI to tell if my identical input is the result of a 50/50 guess, or a little thought, or effortless recall. "delay to answer" also isn't a good approximation, I have a habit of alt-tabbing and chatting with a friend on random cards of any difficulty.
I find distinguishing those levels of easy for totally identical answers ends up making SRS more effective, and AI just can't know my inner thoughts. Maybe once we have brain implants.
Yes, this is also something I have been thinking about, can an LLM really know how well I know something. There is the issue with the grading with again, hard, good and easy that I can cut myself some slack and say "I knew that" even when I didn't(and I have a strong memory of having done this myself). And there is the possibility of bullshitting the LLM and just all you know about the subject rather than the exact definition of the flashcard. I'm leaning towards any knowledge rather than specifying that the exact answer should be graded. Whats your take?
Bullshitting the AI maliciously doesn't matter, if you don't want to study effectively, you won't study effectively, and that's not a problem for the app.
> any knowledge rather than specifying that the exact answer should be graded
I don't understand what you mean. The important thing is to feed back into the SRS algorithm "How much does this card need to be studied", and if you mean "any knowledge means we can study it less often", then I doubt the SRS will be able to be effective.
What are you suggesting to feed back into SRS? How will you ensure cards the user knows very well quickly get pushed way back (so the user isn't overwhelmed with a boring slog), and cards they only sorta know bubble up more quickly to start to cement the knowledge?
My understanding of what is important to feedback into the SRS is, was I able to retrieve the memory, and does the representation in my memory align with what I recalled.
As an example Term: "What is the capital of France and how many inhabitants does it have?" Correct definition: "Paris, which has 2 000 000 inhabitants."
For me there is a difference in not having the answer at all, which falls into "again". But what about if I'm able to retrieve that Paris is the capital, but I remember that the population is 1 500 000. This is where the gray zone begins
If you want to remember the population correctly, then that isn't a gray zone, that's an "again". That's entirely unambiguous to me, and if you let yourself slide on that, you're hurting yourself.
There's a lot more room for gray zones in language learning, where you might have the french card "doubler" and answer it as "to pass", and then see the actual answer is "1. to overtake, 2. to double", in which case you have to read your heart and decide whether missing the second definition was careless because it's so obvious, or if it merits an "again"
An AI also can't really know, btw, if your answer of "to pass" was "to pass (overtake)" (correct), or "to pass (like a note in class)" (incorrect).
That's not the best example, but there are a ton of ambiguous english words, and you only know in your own heart which meaning you meant.
One way it could grade you automatically is by the speed of flipping the card (or entering the correct answer). If it took less than a second to confirm then evidently it was easy.
But conversely, if I alt-tabbed to chat with a friend, or paused studying because the person sitting next to me asked a question, or I took a sip from my coffee mug, that doesn't mean it's hard necessarily. Even though all of those take at least as much time as answering a hard card un-interrupted would.
The AI cannot read my mind, there is no approximation that will work reasonably accurately here for "how confident was I in my answer", unless I input that myself.
I would argue that it's harder for me to decide how easily I recalled a word and decide between a few loosely defined levels as to which one I should choose than to apply a simple algorithm.
If the window loses focus it would be able to pause automatically. If you are distracted another way, no big deal you will see that word again soon and unlikely to keep getting distracted on the same word. The benefits would outweigh the odd misfire.
It should definitely be added as a variable within the calculation, but the current FSRS predicts how likely you are to access the memory (if it's sufficiently available which is defined by its retrieval strength) and speed of retrieval isn't really a factor in this version. The different grades are more to define how well all parts of the memory is retrieved.
Not to say that how quickly you can access it doesn't play a role in real life.
Whenever I try to use anki I can't figure what those four buttons actually mean, so I end up with 40 cards that I still can't recall and then the thing happily drops another 10 on top and I just delete the deck or the app. Haven't learned the thing I was trying to learn with it ever.
Either I don't understand the algorithm or it doesn't understand me.
My tip is to map the 1-4 difficulties as "wrong, or <60% confidence", "60-80% confidence, thought required", "90%+ confidence, thought required", and "90%+ confidence, no serious thought".
Depending on what you're learning, you might vary those. For language learning, that works well imo.
Also, make sure to switch to FSRS. The old algorithm defaulted to "again" resetting a card to 0, while "again" in FSRS does show it again, but doesn't reset it back to being effectively new.
The four buttons is apparently a contentious topic in the community. It's gotten more serious because in FSRS misusing "hard" to mean "I didn't get it, but I felt close" is really bad and throws off the algorithm.
I like the design suggestions proposed at [1] and [2] for this particular problem. [2] in particular gives tooltips which are supposed to guide you toward exactly what the buttons mean:
- Again: "My answer was completely incorrect"
- Hard: "My answer was correct, but I hesitated a lot"
- Good: "My answer was correct, and I hesitated a little"
- Easy: "My answer was correct, and I didn't hesitate"
That said, you can also just reduce it to a two-button system: only ever use Again and Good. There is some evidence this works better, especially with FSRS which is doing enough machine-learning behind the scenes anyway that it doesn't need the extra signal from Hard vs. Good vs. Easy.
Me too. I made a specialized Kanji learning app. My different approach is in the cards. I used free dictionary data to create a card for each kanji with all the relevant data in a single card. So a common kanji might have dozens (and even hundreds) of words (each word with 0-2 example sentences) to help you remember.
I like the anki way of self rating, so I kept it. I want to be able to say: “hey, I know I screwed up the stroke order this time, but it won‘t happen again, promise” and hit “Good”.
Rating yourself is an important trait of SRS, it forces you to think how you are doing, what is good enough and what not, what is more or less important, etc.
1) The time it takes to make cards. RemNote allows you to take Notion-style block notes and quickly turn bullet points into flashcards using symbols. For example, you might be in class and make a bullet point in the format
- The quick brown fox jumps over >> the lazy dog
which you can later review as a flashcard that is automatically separated front/back by the >>.
2) The old and unintuitive UI - again, basically just Notion with flashcards. You can easily view all your notes in a bullet hierarchy and then switch over to SR flashcard practice. Even has rich code blocks, image occlusion, tables etc. A much better implementation of Anki's notes/cards metaphor in my opinion.
I am not sponsored by RemNote, just a university student who has bounced off Anki and really likes the app.
As a longtime Anki user I just want to say THANK YOU! Just downloaded RemNote for the first time and gave it a spin. I’ve been using Anki for years for language learning (Ukrainian and Russian and Arabic), but also for poetry memorization. Weird coincidence: a few days ago I was looking for an AI-powered flashcard creator: I get regular emails from curated sources that have lots of useful information, but I am too lazy to create the cards to remember the points. I just downloaded RemNote and tried the AI-generation feature: fed it an article from UkrainianLessons.com and I was amazed at how it gave me a list of useful flashcards instantly. This is a game changer. The ability to study and create “in context” is also amazing since not all information needs to be a flashcard. The Notion-like/Workflowy/Roam interface also looks like a joy to work with. Really hope this is not a fly-by-night startup, as I am really looking forward to a decade of learning with this thing after a previous decade with Anki.
RemNote founder here - been building RemNote for the past 8 years (4 in private for myself, 4 in public), and we're not going anywhere! SRS is the future.
While I have you, I wanted to share with you an idea that I've had for years to improve SRS systems, that is SRS -> Email Inbox Zero as a brain hack. I tried to build a plugin for Anki but could not make it work. Not sure if it can be done with RemNote or I can build a plugin to do this.
The basic idea: SRS is great, but it can be hard to get motivated to start studying your cards every day. On the other hand, most people have a habit/addiction to check their email or social media multiple times a day. The idea is to intersperse random card studying into my email or Telegram inbox, reducing the time to study a single card to a few seconds interspersed across a busy day. So I want to get a few random emails (or texts) with a due flashcard question, and have the ability to answer the flashcard directly in one click from the message. The hard part is that last part: getting the software to work so that I can answer the flashcard in a single click from the email, so that I don't need to open the whole app just to start studying.
Would really help to keep up with my studying even on busy days and hack the brain's addiction to email/social media to do something useful.
I do like this idea of integrating SRS into doom-scrolling streams! I've wanted to prototype something similar, but built completely around your SRS cards.
For email, I think you're right it would need to be frictionless. There are some new email technologies that let you embed dynamic interactions in your email - we might play with that at some point.
So this is probably hard to do as a plugin tbh, but I'd love to explore eventually as a feature.
This is something I’ve been tackling myself in the language app I’m making https://store.steampowered.com/app/3220820/Bilingual_Crosswo.... Right now, I’ve added a set of front loaded intervals: 2M, 5M, 10M, 20M, 40M, 2H, 6H, 1D, 2D, 4D, 8D, and so on eventually stretching to a full year.
I’ve always felt this setup was a bit arbitrary and considered it a temporary solution. Thanks for saving me some time on research!
537 comments
[ 3.5 ms ] story [ 240 ms ] threadLong story short: not possible with anki. It took like an entire day for me to realize its just not possible without diving deep into ankis sqlitedb and having the client installed on my server to interact in a horrible way with decks. I wrote my own space repetition [1] backend in a week and never looked back to anki. Ill intergrate FSRS in my software.
1: https://github.com/entropie/ha2itat/tree/main/plugins/entrom...
https://docs.ankiweb.net/templates/intro.html
----
But you'd want AnkiConnect, or a Python-based addon for your workflow
> Anki desktop app auto-launch > Perhaps the most precarious aspect of the Anki-Connect add-on is that the Anki desktop application must be running for any of the API calls to work. Yanki Connect tries to sand down this rough edge by (optionally) automatically launching the Anki desktop app if it's not running already.
There is an implementation of their sync server, which you can self host. And it has a REST API
https://github.com/dsnopek/anki-sync-server
I think I ran into a blocker with it not supporting something I needed last time I tried to use it though.
https://www.stephenmwangi.com/obsidian-spaced-repetition/
https://ankiweb.net/shared/info/2055492159
I know this is not precisely what you wanted, but yes, Anki can update card contents.
But seeing how it's implemented, I think they could totally integrate something like FSRS to at least just replace their scheduling (how long until an item is next shown). The unlocking system can be implemented as a separate gatekeeping mechanism, and the buckets can be coded for certain step thresholds (instead of wanikani's "stage").
Basically, this is their entire srs system: https://docs.api.wanikani.com/20170710/#spaced-repetition-sy...
https://github.com/inro-digital/simple-tools/tree/main/packa...
YMMV though, since I haven't user-tested it in my app yet haha.
TBH though, I think for a true WaniKani competitor, need to reserve a decent % of work for building the dataset. Putting together all those mnemonics, cleaning up definitions, defining the order of introduction of characters and choosing words... is a lot of effort. There's a reason that WaniKani's so generous with pretty much their entire platform, but specifically states in their docs that the mnemonics/hints data doesn't belong to you... it's a large part of the effort.
Although, I guess could be integrated into the 90% work if you make sharing mnemonics into a community effort.
Dozens of apps, thousands of lectures, and it turns out its not really a silver bullet.
There's nothing really wrong with it, it's just that people tend to fall off the same way they do on any other education pattern.
A couple years ago I was thinking "If Google and Apple really cared about kids they would make a spaced repetition unlock system", where by you have to make note cards every week and then have to answer correctly to get into your phone. (obviously requires some bypass system, other rules, etc)
You could probably jury rig it with a popup that comes up after you unlock, but people would never install it anyway.
You still have to do the work.
It's a lever or a pulley, nothing more.
Spaced repetition is doing the work.
And a gigantic amount right with it.
This is a strange comment because it shrugs off something that has been transformative and hugely useful to a lot of people because it doesn’t fix all conceivable problems.
I remember reading some stats from WaniKani (Japanese SRS app) a while back...
WaniKani has 60 "levels" to learn 2000+ kanji. Each level takes about a week (there's no skipping ahead), so the material takes about a year of study to complete -- that's if you're going at breakneck pace, which most people aren't.
According to the numbers I saw on the WK forums, ~8% of users reach level 30 and less than 1% reach level 60... and that's just to learn as much kanji as a 9th grader. That's to say nothing of the grammar and the 20,000+ vocab words you'll need to SRS to truly learn the language, or the thousands of hours you'll have to spend speaking/listening/reading, immersing yourself in native content, etc.
People give up very easily. The language learning community often gives year estimates to reach "near-native level" in a language based on frequency of study. In reality, the process takes a lifetime. I don't know if people truly know what they're signing up for when install those apps and begin studying. It's a lifelong commitment. It's just something you do now, every day.
You can stop at any time of course, and most people do (more than 99% of them apparently).
The problem with spaced repetition systems is that it doesn't supply that extra motivation. You're still just memorizing things in a vacuum. If you truly want to learn a language you need to use it to communicate. That means making friends, travelling, reading books, and consuming other media in that language.
If you don’t have any of these reasons to motivate you, the question arises of why you’re bothering in the first place.
Now I have several Chinese friends and I'm learning Chinese cooking. I'm motivated to continue learning about Chinese food and Chinese culture, and the important role food plays within it.
I credit Anki to my success at GCSEs and A Levels despite having a head injury, and I also credit it to me burning out so hard I took a gap year!
And I'm enjoying the gap year, but Anki made it a near necessity.
Keep that up every day and you'll burn out much faster with option 1 than option 2. Now, maybe you have enough motivation for that not to matter, or the self-discipline to keep going - as I did in my A levels - but don't be surprised if it kills your interest in the subject.
As OP points out, SRS is optimized for memory retention. You will almost certainly encounter many more words watching a two hour long video, but you certainly won‘t retain nearly as many words as half an hour of SRS.
Actually you can combine the two. Use the two hour long video to encounter new vocabulary in context, put the new vocabulary in your Anki deck, and review it with optimized SRS. You get the best of both worlds. As a bonus you often remember the source which will help you recall... This is actually common enough pattern that it has a name: Vocabulary mining.
Wait, you're putting yourself in a situation where the first time you see a card, you have no idea what it is?
People will genuinely download top x wordlists for a language and try to learn from them. Hideous, but they do it.
I’ve done that, and I’ve even created a whole SRS app to learn kanji which does that by default (https://shodoku.app).
I think this is common practice for the first 1000 words, and I don’t exactly recommend against it. Unless your target language is close to another language you already know, you are going to have to learn your first 1000 words somehow, and you will not learn them by comprehensible input in any reasonable time, unless you are actually living in the language area, and cannot use other languages.
I actually bought a vocabulary book which has 1000 basic words and example sentences and puts them in categories (e.g. work, travel, food, etc.). I then downloaded an Anki deck from the book and use it. To be fair though, I first read the word in the book, and practice it with a red-sheet (albeit in reverse, i.e. from english and try to recall it in japanese).
As for my kanji learning app. I made it so the first time you see a kanji, it does not hide any information, and it shows you the strokes in order as you write it on first encounter, after that you review it normally.
I agree with your general point too. People are correct to say SRS only helps with memorising and not with learning, but this is only a problem if you haven't developed functional learning techniques or you have to learn something you don't enjoy. Good learning essentially hinges on interest and excitement, and making the thing you're learning relatable or catchy.
If you have exams and deadlines, this can be hard. If you've no exams and no deadlines, just flashcard anything interesting that comes your way, include context and jokes, and focus on enjoying yourself. Delete flashcards with a smile if they annoy you a few repetitions down the line. Make all your own cards. Invent funny stuff, find quirky facts that stand out.
E.g., the area of Ireland is 84,421km^2 - all powers of 2. I never had a "yardstick" for big areas, now I do. Borneo is nearly nine Irelands in size.
Or another example, French Polynesia has 121 islands, 75 of which are inhabited. I found this fact shocking, so I thought I'd put it in to a flashcard. After some quick reflection, I'm sure you too could come up with ways to make those numbers stand out.
Another - the title of Wittgenstein's "Tractatus Logico Philosophicus" - where truth tables were popularised - ends in SOS. No more forgetting the title, or where truth tables are from!
In summary - learn things you like, and make it spicy for you.
Edit: It's worth noting I had a nasty head injury that was slowing me down. Optimising my learning was a necessity, and the injury meant I spent more time studying than my peers, in more optimised and less enjoyable ways, to get the same result.
The first part is definitely untrue, you won't learn any vocabulary spending an hour watching an educational video, you'll be lucky if you remember one new word tomorrow. That half hour on Anki will be spread out over six months, and will teach you 20 words.
As for the second part, doing Anki is like doing through any sort of timeline that spits out random rewards and failures. I get a rush whenever I remember stuff, and I get bummed out when I forget; it's basically facebook.
I understand why one wouldn't think that with single-word vocabulary flashcards, because they are horrible to do and unhelpful. You should be running sentences, not words. Words rarely translate well, change form when they are in sentences, and often show up as part of seemingly ungrammatical set phrases.
Boredom?
Feeling like what you're doing is low-quality or superficial?
Doing something artificial for purely external reasons like grades or exams?
Can't speak for anyone else, but for me I would take slower progress over any of these... which makes spaced repetition a hard sell.
Many things. I think HN is a bit of a bubble here, but you'll find a lot of people prefer something enjoyable but slower to something efficient and faster, even if they won't admit it.
See the popularity of Duolingo vs Anki as an example! Or Quizlet vs Anki. Or the scores of students who revise by half-watching dopamine-ified youtube videos rather than doing past papers and flashcards. If you ask people, they'll often say they care for efficiency, but their revealed preferences say otherwise.
Doing large amounts (hours) of Anki day in day out is truly miserable, particularly when the alternatives can be quite enjoyable. And if you burn out before you achieve your goal, is the "efficiency" really worth it vs going slower but eventually getting there?
Plus, a lot of people want to learn e.g. a language because they enjoy the process as well as the end result. Making the process miserable in order to get to the end result faster isn't always a good tradeoff.
Which is what it's about. It's a tradeoff. I'm a big proponent of flashcards, but I think it's important to recognise that you're trading enjoyment for speed in most cases.
I have tried different approaches, including using other people's flashcards (not as good - objectively they were high quality, but you gain a lot from writing your own + tailoring to your own way of looking at things) and learning from them (for my driving theory - terrible idea!). That hybrid approach is the best I've found, and the one I intend to use for my degree.
I confess I'm interested to hear your thoughts re: the usefulness of SRS from a more holistic perspective.
Gwern writes:
>...if, over your lifetime, you will spend more than 5 minutes looking something up or will lose more than 5 minutes as a result of not knowing something, then it’s worthwhile to memorize it with spaced repetition. 5 minutes is the line that divides trivia from useful data.
https://gwern.net/spaced-repetition
My sense is that there are very few facts I will spend more than 5 minutes of my life repeatedly looking up. And even then, many of those are facts that I will naturally end up memorizing regardless of SRS, since I'm using the info so often.
I understand the utility of SRS for test takers or language learners. When Google is impractical or unavailable, memorization makes sense. But for everything else -- why not just Google it?
I used it for some geography stuff, and that was fine I suppose, I like geography, but I stopped after a while.
I find it easy to remember things if I care about them. Ergo, if I care enough to put it in Anki, Anki is useless.
Particularly with LLMs being a thing, you don't even need to concretely know what you're looking for - just give chatgpt a vague description and let it list out suggestions until it jogs your memory.
When it comes to physics etc, you'll end up memorising everything relevant to the areas you actually use. In areas like "What is the star type of a star with a temperature of 6000K" - something that I memorised using Anki, and which took me a while - if I actually worked in that area of astrophysics I'd obviously learn that quite quickly.
I suppose it could be useful for maintaining knowledge. Had I not been burnt out I would have kept up my flashcards through my gap year, which would've presumably been quite useful - I'm currently going through the slog of relearning how to integrate so I'm not totally embarrassed at uni!
This is so well known that it was covered extensively in the book Make It Stick[1], that you might as well call it the "student fallacy." (And they might have; ironically, I've forgotten if they do or not!)
[1]: https://www.amazon.com/Make-Stick-Science-Successful-Learnin...
Anything advertising that you can learn X in Y days isn't addressing that "after" period. Once you've learned the skill, you need motivation toward applying it, which in turn refines your skills. Conversely, becoming hyper fixated can be detrimental to overall skill. "Jack of all trades, master of none" HOWEVER the rest of the quote goes "but often times better than a master of one"
Sometimes you gotta slog through the boring bits to progress.
It’s centered around your performance and review times, to make sure you aren’t struggling to much; no due dates to avoid Anki slogs; gamified with some internal mechanics; dopaminergically influenced with aspects of randomness.
Spaced Repetition is just an equation (SM2 is laughable simple), but a lot of applications just slap a UI on it and call it a day, but that’s not the only way to use it!
But when memorization applies, gamification is a really good way to avoiding burnout (as long as you don't overexpose yourself to it). There are many spaced repetition games for children, I don't know why people make so few of them for adults. (But then, fearing the duolingo owl is a popular meme nowadays.)
Do you think targeting a sub-90% difficulty could help reduce burnout? My experience is that working to recall something I'm on the verge of forgetting can be very effortful.
The main deck I use for verb conjugations expects me to use it for maybe half an hour per day or the list just build up (I have no idea if this is standard behaviour, but I don't seem to get the same build up on the other decks that I use less frequently).
While it end up being a bit of a chore some days, I appreciate that it does force me to use it every day, which is good for my discipline.
More fundamentally, SRS isn't a superpower because it's just very specific to creating a direct prompt retrieval. Generalization is poor. Even creating a graph of knowledge, is a chain of edges between bits of knowledge, isn't done very well here.
And I suspect there's a very deep, fundamental difference between recollection knowledge and logical-modeling knowledge. Recollection seems very similar to a dictionary access, and if you recorded the time to recall in humans I suspect they'd all be constant. But learning the knowledge of a logical model, like of a mathematical concept, appears to be vastly different and have very different time to compute.
Proponents of SRS will point out logical models need facts as well, like formulas, lemmas, etc. Which is true. But if you already grasped it before you'd grasp it faster the second time. So the practical use of SRS is a significant step above having a very well sorted and labeled notebook, but still way below becoming a genius.
There's 2 solutions I've thought of but haven't tried implementing:
1. A free-recall based approach. Free recall allows you to operate at a higher level of organization and connect concepts at lower levels. However, how you would schedule SRS with free recall is not clear.
2. Have an LLM generate questions on-the-fly so that you don't overtrain on prompts. You might also instruct the LLM to create questions that connect multiple concepts together. The problem with this approach is that LLMs are still not so good at creating good test questions.
I almost never see someone talk about free recall so I was too excited to see it mentioned not to comment
Any skipped items are then prioritized in the flashcards/cloze completion/shadowing modalities.
AFAIK free recall is not very high signal as to which words you know and which ones you don’t. Skipped words I just as often forget about cards because they’re so easy as I do because they’re so hard. It is however an incredibly effective exercise to cement your recall (and in my apps case, a good way to skip a good portion of your reviews in a day)
I mean, you say that, but I did mandarin for maybe 6 months, I did reviews for maybe a year or two on and off, I haven't done a review of mandarin for 8, 9 years now and I can still recall quite a bit of it. So for me it's worked quite well.
Easy statement to make when you're not defining the silver bullet. Kind of like saying dieting turns out not to be a silver bullet.
I've used spaced repairing for over 6 years. It's been transformative for me.
Algorithms and data structures.
Basics of HTML/CSS/JS. I'm not a frontend developer, but this was enough for me to (mostly) understand colleagues' JS code. And often I would inform him of one of the newer JS features he didn't know of (e.g. null coalescing operator). Does it make me a JS developer? No. But it ensures I'm not useless at it.
Python 3.x new features. Simple things like "Stop using os.walk and use scandir instead".
A whole lot of Emacs keybindings. I was a heavy Emacs user before SR, but this really helped take it to the next level (I now mostly rely on hydras, so I no longer memorize keystrokes, cut I can't deny its effectiveness).
Some amount of elisp.
Probably a whole lot more random miscellany I can't recall right now.
Basically, what it does is let you retain information without usage. Prior to this, I would mostly retain only things I use (or had used) often.
I was in university for over a decade. Took lots of notes. But they're useless if you don't review them. Some years after leaving university I stopped trying to learn anything technical unless I was putting it to immediate use. Why bother if you're going to forget?
SR is what let me get back to studying for fun.
However, how do you use for skills/domains where you have to actively think?
Like in your Python example, knowing about os.scandir() would be a tiny bit helpful before Pathlib.
Let's say I put pathlib.Path().iterdir() in my Anki card, what would be the point of that for someone who is happily using glob or rglob?
What I mean is that for many domains it seems the challenge is what to put on these Anki cards.
Let's go with another example. Let's say you create Anki card Recall = TP / (TP + FN) for your statistics 101. However knowing why and when recall is important would be crucial instead of knowing bare formula.
Disciplines like programming, math, and well any technical discipline require both memory and analytical abilities. SR takes care of only the former. The barrier I kept running up against was forgetting definitions and theorems in math - especially if it had been a year or longer since I last used them. This helps mitigate that problem.
> Let's say I put pathlib.Path().iterdir() in my Anki card, what would be the point of that for someone who is happily using glob or rglob?
That's for you to answer - if you prefer doing it with glob/rglob, that's fine. For me, the card was "What is a better way to traverse directories/files than os.walk?".
The next time I reach for os.walk, I'm reminded there is a better way.
OK, let's be real. It doesn't always work. Perhaps only 30% of such cards lead to actual behavior change. In a typical scenario (70% of the time), I'll get the card right, but using os.walk won't trigger the part of my brain that says "Oh, there's a better way". Still, it's a very low price to get that 30%. And the bonus is if I see someone else's code where he uses scandir, I'll immediately know what it is for.
> However knowing why and when recall is important would be crucial instead of knowing bare formula.
Obviously. You'd have to find a way to embed that into a different card.
how do you frame these cards? I've always assumed something like this would be too information dense to be useful
I will note that some cards are basic: A simple recall. Other cards ask for me to reproduce the whole algorithm (a violation of SR methodology).
All cards that take a long time to answer are stored in a separate deck, which I go through only when I know I have the time to dedicate.
That made me laugh ;)
IIRC the effect was so profound they had to modify the structure of some tests or something to that effect.
And polyglots have been using SRS for years.
As always, the real problem when people fail to do something that works is psychological, not technical. I'd say anyone who made an Ozempic for motivation would make a killing, but I believe it's already a scheduled substance. Maybe one without potential for addiction or abuse. Or maybe an Ozempic for conscientiousness.
Perhaps they were relying on LLMs to generate decks?
I do not study medicin, but for language I have to actually be able to use what I memorize. Knowing how to use words is harder than it sounds, you need context. A common mistake when constructing sentences is getting the tone wrong and choosing the wrong synonyms.
This is just ADHD meds right? That's why the uni students spend so much buying them.
Not really. They're just stimulants. Anyway, I'm very skeptical of this use.
I'd guess uni students are buying methamphetamines them because they have gotten themselves into a situation that they cannot handle - too many non-academic scheduled activities, not enough time management skills, possibly a heavy courseload combined with several weeks of avoidance of things they found difficult, poor sleep habits, etc. They need to stay awake and work. I don't think that's all you're talking about, though.
I wouldn't discount the idea that some have an undiagnosed attention deficit problem.
One thing that bothers me about SRS is that it doesn't get enough attention from people who understand the difference between memorization and language acquisition. It gets a ton of attention from people who are doing test prep or who get intrinsic reward from their memorization accomplishments.
Memorization is not my goal — I want to get better at reading Spanish and French — but I find that drilling on vocabulary and example sentences helps a lot. I compare it to using scaffolding in construction. Scaffolding is not a building. Scaffolding doesn't serve any of the purposes a building does. But if you need to build, expand, or refurbish a building, sometimes building scaffolding in and around it can speed things up a hell of a lot.
I wish there were better guidance for using memorization to assist in language learning, but the world seems to be split between people who are satisfied with memorization as their goal (for test prep or intrinsic satisfaction) and people who dismiss memorization entirely because it isn't their goal.
For now, I make do by having Gemini Flash 2.5 open in a separate window and checking my short answer writing responses with that.
You'd probably say silver bullets aren't a silver bullet because you still have to load the gun and shoot it.
Which is really a shame, as the spacing effect itself is such an underrated aspect of human learning that it almost feels like cheating.
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.
Is there not enough useless whitespace around every button?
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."
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)
Anki allows you to do that. It's in the deck preset options under deck limits. Nowadays you can also set weekday workloads, to reduce workload eg. during the weekend.
A human who had a lot of time to learn during January, because his job workload was easy is not failing anything if his job related workload becomes high in March and April. But, all that January effort will be punished by super high workloads in March and April in Anki.
Source: https://docs.ankiweb.net/deck-options.html?highlight=easy%20...
We seem to agree on the substance: that the SRS system should be able to work more humanely with and for the kind of entirely normal situations you describe, by for instance being able to adjust to variations in available time and picking the "best" cards to review rather than assuming the user will get through the whole lot, and in suggesting to them when they should do fewer new items to avoid difficulties in a month or two.
If you could set a study time of say 30 minutes, then when you skip a day, you could just do your usual 30 minutes and maybe only get through 50% of the scheduled cards, but you could slowly catch up over the next few days. And if on the contrary you run out of reviews for today, you could carry on with some scheduled for tomorrow until you've hit your target time.
FSRS can handle off-schedule reviews just fine, I think, so it should be able to accommodate such a rhythm where you don't always review cards on exactly the optimal day.
This reminds me of GTO (game theory optimal) play in poker.
There’s a perfect way to do things, so we should just try to do something as close to that as possible, right? The reality is that you can’t actually do things in this perfect way. In GTO’s case it’s that it’s too complex for a human to have memorized and in SRS many (not all) people will fail to follow the algorithm for one reason or another.
The problem is these strategies aren’t very resilient. If you miss the implementation by a bit, it can cause big losses. An algorithm that’s less theoretically optimal but more attainable by actual humans can end up much stronger in the real world.
i really wish the UI would just hide number of cards due by default
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.)
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.
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.
Anki is refreshing function over form design. It's beautiful.
I think it just needs a fresh minimal design, a tutorial, and some premade decks that aren’t just the half-baked free ones.
And the daily emotion-tugging streak reminders started to actually piss me off.
On top of that, at one point they were changing the icon regularly and made it really ugly. Despite a ton of complaints, they left it that way for a long time.
So I canceled my subscription and I'm done with them. I'll find another way to study that I like (I've already tried Anki and it works, but I don't like it) and isn't mentally abusive.
My kids loved it. I did not cared. So, the likely explanation is that many people like that icon changes or dont mind it.
I used to not care for gamification because I knew that my brain is resistant to it in activities that aren't otherwise rewarding on their own. Like, I quickly realize I'm just tricking myself, and then it stops working. But somewhere over the years, I must have burned out of my dopamine reserves or something, because apps like Anki feel now actively off-putting, in the sense that I lose all energy just looking at them. Memorizing cards gets tricky when your eyes just glaze over them and nothing is loaded even to short-term memory, much less long-term. So at this point I'd appreciate even a little bit of immediate feedback and some progress tracker that evokes ever so slightly positive feelings.
This resonated with me. I think the decline in excitement towards learning, that we used to do without thinking about it, happens naturally with aging.
Evolution doesn't reward older humans that much for learning so most of us don't feel that same excitement. Compare this to when we're young and need to learn fast, so the dopamine rewards are off the charts.
Consider all of the retirees who spend hours at slot machines (or virtual ones like Candy Crush) to get that dopamine fix as easily as possible.
Maybe a more tasteful gamification balance can be found.
Does it show you ads in the language you're learning? Because if so, that could be an asset...
You do anki because you feel like you must and you have very little control over it.
For example review heatmap will give you a streak.
I wonder if there are any good recommendations for something to try it on?
Probably the simplest use case to get started is improving your English vocabulary. (Assuming English is your first language.) I try to add a card for any word I come across that I don’t know the meaning of, and it works very well.
I don't think any of us are satisfied with how most things look, but we're severely under-resourced.
Feel free to email me if you'd be interested in getting involved with the Android side of things.
people that are motivated and will succeed with Anki regardless of design will power through an annoying UI. so with better design, you'll increase top of funnel but radically decrease conversion.
It has other oddities too though, like the tab bar in the main window that doesn’t act like a tab bar. It should also really have two button mode (Again and Good only) for the review screen as a built in option, too — the addon that adds this is very popular and it’d be dead simple to implement.
I've been exploring some of these questions in my personal foray in design. If anyone’s interested, I posted an early experiment here: https://dribbble.com/shots/25737616-Descartes-Design-Flashca...
I just don't use an app. I will challenge myself to remember things or practice things manually.
It's probably sub optimal compared to structured spaced repetition, but it works well enough for me.
Every time i did repetition, i've made a shorter note about the subject.
Then next repetition cycle, i'm reading the note, and making shorter note based on it. and so on.
once few cycles i'm re-reading the main starting note i made.
I tried it for a while with my eldest child (then aged 3) to help her remember numbers, letters, etc. She didn't find it very fun past the first couple of times, so I figured I wasn't going to hoist it on her.
• Memorizing Geoguessr metas. Made it to Master I rank this way.
• Memorizing new words. When I come across a word I don't know, I make a new flashcard for it.
• Memorizing things about people. My wife's favorite ice cream flavors, which spices each of my children dislikes, etc.
Anything I want to memorize but wouldn't be exposed to frequently enough in my day to day life. Flashcard review takes only a few minutes each day.
I got introduced to this idea a few years ago from AJATT [1] and my personal experience is that it works very well.
[1] https://web.archive.org/web/20100406173634/http://www.alljap...
I downloaded an existing deck and modified it so that only the correct answer is shown instead of multiple choices.
I still can remember some of the content even though I deleted the deck short after receiving my license.
- Population of Tokyo / Tokyo metro area / Japan (where I live)
- Japan emergency numbers (like 911/411 in the US)
- kg <-> lb and km <-> mi conversion ratios
- My Japanese phone number (and my wife's)
- Number of neurons / synapses in a typical human brain
- Number of parameters in SOTA language models
- How many people work in my office
- Last 4 digits of a couple important credit cards, so I can identify them when UIs present me a choice of pre-saved CCs.
I've used Anki for multiple years and learned around 18'000 Japanese words. It's difficult to say but I'd say I've learned how to read around 5'000 kanji. When I studied in Japan, my kanji reading—don't mix that up with comprehension!—was way above everyone else's. And most of my classmates were either Korean or Chinese.
That's what 10 minutes of free time—I did that during my daily train rides—can get you! Keep practicing. Being ignorant is the first step towards becoming more knowledgeable.
Anki works, it doesnt need these unrealistic takes.
...Maybe the poster meant "«10 minutes» per ride"? («That's what 10 minutes of free time - I did that during my daily train rides»)
Now, those cards weren't alone - they were reinforcing content that I'd learnt in lessons. But if they were doing it for 10 minutes a day a few times a day, it seems quite plausible to me.
Actually, it took me 20 minutes of time per day to do my reviews + new words. I had, on average, 200 cards to go through daily (180 review + 20 new cards).[1] Going through 18'000 words took me around 5 years. 5×365×20=36'500
> A rate which far surpasses native speakers.
Are you comparing me to babies? It took me 2 weekends to learn all kana, but it takes years for a toddler to learn just hiragana. It's not a fair comparison.
> Anki works, it doesnt need these unrealistic takes.
I wonder why you think it's unrealistic. It's not like I'm a genius or anything.[2]
[1] Two cards is one word; one for English -> Japanese, one for Japanese -> English.
[2] Some teachers definitely thought I was a genius because of my memory, but it was all thanks to Anki. And proof is that I was absolutely bad at text comprehension. Anki doesn't make you practice that.
So, by my calculations for just the Anki time alone it's about 17.5k words split across 730 hours, which comes out to about 23 words and hour or one word every 2.5 minutes.
I've seen a pretty wide variety of people do Anki, and I can say there's a distribution in length of time per card for basically the exact same types of cards among people. The slowest people average around 3x slower than the fastest.
I did the exact same Korean deck as my wife at the exact same time. It was wild comparing our stats in real-time. It would take me 10 ~ 12 seconds to do the same sentences that it would take her 30 ~ 35 seconds.
We spend hours a day browsing the web, so I made a browser extension[0] that translates sentences at your knowledge level into the language you're learning, so that you're always learning a little through immersion.
I also used the same "10 minutes a day on Anki" strategy with my A levels, and it made the revision process so so much nicer because stuff I'd learnt two years ago was as fresh as if I'd learnt it a couple of months ago, rather than years.
[0] https://nuenki.app
* Get interested in memorizing something / multiple things
* Find that the decks available to me are actually not so great
* Get reading online, people say that the real way to benefit from it is to make your own deck (which ups the time commitment significantly)
* Read online about how to get the most out of anki, find out that everyone universally agrees that the default settings are terrible but nobody quite agrees on how to set it for best results
* Try to hit a happy medium, but find that the overhead of 'rating' the difficulty of recall for cards (and how it interacts with the complex settings that I still don't have complete confidence in) adds an incredibly (to me) distracting amount of overhead and never get used to it
* Miss a few days, get overwhelmed with the amount of cards stacked up, don't feel good about my settings (which have implications for what cards show up like, a year + down the line)
* Ultimately fizzle out
I'm probably going to start the cycle over again soon. I really do want it to work out for me. Any tips to avoid this issue? I'm planning to actually pay for some decks this time to see if that gets me to the quality I want, and going to skip the whole 'trying to make my own deck' thing for now
* Make your own cards (unless there's an automated workflow [Japanese, sentence mining], really good shared decks, or you're studying for a standardized exam [USMLE])
* Deck Settings (scheduling): Enable FSRS. Press 'Optimize', then press optimize once per month.
* Deck Settings (workload): Wait 2 weeks before gradually increasing new cards per day (if you want to study for longer). Decrease it immediately if you feel you're getting overwhelmed.
* Deck Settings (backlog): Set max reviews/day to 9999
* App Settings: Disable 'Show next review time above answer buttons'
* Addons: https://ankiweb.net/shared/info/876946123 (you seem to have a problem with answer button selection)
* Recommended: Press 'sync', and create an AnkiWeb account. In app settings, set Anki to auto-sync on open/close. This is a free backup.
* Optional: Use a mobile client (AnkiDroid is free on Android, AnkiWeb is free on iOS)
You'll feel like you completed the first day far too quickly, and will want to do more. Avoid overstudying until you build intuition for how it impacts your daily workload.
Use Anki every day
If I'm planning to learn several topics at once (I'm never preparing for anything I will be tested on or hit a deadline for, this is not for a school, work, or travel program), is it better to treat the decks as one big combined review do you think?
Ideally one deck, but add a tag when creating the note, so you can separate things out later if you want to pause learning something/split them out.
I think this is great advice. I have some friends that used Anki that told me "oh yeah I just study once per week" and I just had PTSD of when I forgot to do one day. Sometimes I would miss a day due to traveling and timezone difference and I would instantly panic when I would see 400+ cards to review.
If you don't do it daily, Anki doesn't make any sense to me. My recommendation—to that friend and everyone else—is to study a little bit every day. It's much better for building a strong foundation, especially for languages.
I have seen this opinion offered hundreds of times and each and every time I reflect upon the irony that not one of these commenters having trouble navigating the UI, etc to their liking doesn't just ... Make Anki cards about Anki.
If that sounds silly, it shouldn't. I've made flashcards out of all kinds of other programs, from vim to shell shortcuts to Photoshop. Nobody ever expects an interface built for professionals to be something they can just waltz in on and understand perfectly on day 1.
I've learned Japanese and part of the reason is that I thought kanji were attractive. I remember watching anime on TV when I was a kid and seeing the opening credits with Japanese characters looked soo cool.
I'm not at all interested in anything I've seen in other non-English languages, except possibly Korean now, since they seem to be producing a lot of stuff.
However, almost everything that I'd enjoy gets translated to English for both Japanese and Korean now, so there's a lot less incentive to learn them.
No wonder my second language was English and third language Japanese.
Never heard a single word of Mandarin in any media I was exposed to. I can understand Spanish very well but I do not count it as a learned language as it is too close to Portuguese (my first language).
At this rate if 2/3rds of their popular media(manhua, games, animation) continues being cultivation fantasy featuring the exact same power system, tropes, character archetypes, often even setting(murim) and content, it never will.
Animanga were always poised to make it big, because for all their shortcomings, they have interesting, exotic(to us) themes/tropes/vibes, and go really hard on hyping scenes up.
Chinese evil. Communist. Bad. Bad Chinese. Bad bad. Cheap products.
Japanese. exotic. mystical. Samurai. Ninja. Anime. Good. Sony. Good. Good cars. Zen. Good.
Me good. Me learn Japanese. Me exotic and mystical. Super power. Me good. Me smart. Me learned Japanse. Me great.
Me me me. Me me me. Me me me.
2. Japanese is becoming one of the most popular languages for foreign media, probably even surpassing English at this point. Anime is really huge now, particularly in the US. It has shifted from being a nerd thing to being of interest for the "cool kids" (if there is even such a thing now). Japan also had a huge and very interesting media industry in the 80s and 90s including some very novel video game concepts, most of which has not been translated
Accordingly, the stereotypical CS major is attracted to Japanese and Klingon, the stereotypical Business major to Chinese. Even though few follow through because of the amount of work and perseverance required
https://gwern.net/spaced-repetition
I have been trying for years to fined a way to use it for mathematics and physics - with the former being more of a focus and didn't really get anywhere. For definitions it works, but it's quite hard to write proofs in a way where there is a short obvious memorization based answer. Either you spend far too much time on a card or the card gives you too much information so you don't really test the knowledge.
I also tried it for computer shortcuts - it seems to me that they are really useful only when part of the muscle memory - so practicing them works better then memorization.
It's the next best thing to getting an infinite stream of new problems of a type of problem.
And mathematics and physics, which are (at undergraduate level) even more well-understood than vocabulary.
In general, math is not a subject where memorization is going to get you ahead. The "why" matters much more than the "what".
It makes it unusable and every time I tried I went back to my own self written program that just lets me set/adjust the intervals myself.
In the short term (first day), I think it's still better to set your own intervals (typicall 1 minute, then 5, then 10). But after that, the algorithm optimizes for reminding you just before forgetting. Highly recommend giving it a try.
Like other big cultural shifts from the time, the correction was necessary but also probably went too far in the opposite direction.
Which is a long way of saying that memorization is underrated and it mostly has a bad reputation from anti-Victorian reformers.
Common sense challenges this honestly. Education systems that traditionally have put a strong focus on repetition, memorization and what you could call neuromuscular training (e.g China, the USSR, France) in particluar in STEM far outperform anyone else. Vietnam outperforms most rich countries.
In programming circles it's a cultural cliche because our profession is full of people who go by: "I am a genius, I work smart, not hard", probably the most damaging idea ever uttered in education, and in the humanities it's seen as culturally unsophisticated.
In reality, 95% of everything is mechanics. Starcraft, math, even literature and acting. Creative freedom is enabled only by a large body of effortless recollection.
https://ourworldindata.org/grapher/average-harmonized-learni...
You can't understand something you can't remember.
"not ... smart", "[only use is to] win stupid games.", "[you will spend] your life doing jobs you hate for money".
My dude, I'm learning Japanese vocabulary, which has helped me to start reading light novels for fun. By your argument: I'm not smart, wasting my time, and hate my life, or soon will?
Thing is I would fully agree with you that memorizing != comprehension, but that doesn't mean than memorizing is without it's use. Do yourself a favor and learn to not be so rude. It is literally the first item in the site guidelines:
> Be kind. Don't be snarky.
You also said reading stuff in English give you less satisfaction than reading in Japanese.
You might want to reflect on why that is the case.
It about halved the amount of reviews I needed to do, and they didn't come up in bursts, so they were a lot more pleasant. I didn't quite believe it at first, and worried that it would be less effective, but it worked just as well if not better.
I really recommend giving it another try!
I personally used Anki the whole time, so if you're currently doing your exams some of my advice might not be super useful. I did maths, physics, and computer science. I didn't use flashcards much for maths - just for the irritating stats equations - but used it extensively for physics, and a little for compsci (I barely studied for compsci).
During my GCSEs I extensively used them for history, which is probably the closest analogue to the wordy questions you'll get in geography. I used it for facts, order of events, etc. I found that the process of organising history into a well-organised Obsidian database, then distilling it into flashcards, was as useful as the flashcard reviews itself. I recommend separating your rough working during class (e.g. the short essays you write at the end of a lesson) and your organised notes, which I split into separate, interlinked concepts with flashcards at the bottom of the file synced with Anki via an extension.
I suppose the advice I'd have is
- Cloze cards are excellent, and you should use them
- You can't flashcard your way to mental models. Absolutely don't rely on them alone, and you need to do practice questions for every separate question type you'll get until you're confident with the mental model itself.
- That said, it's easy to get into the trap of remembering the answers to flashcards as words. While this lets you "learn" quicker, and speed up reviews, I found that I had much better real-world results when I tried to actually "load in" the mental model into my head. So for example, if I had a flashcard about refraction behaviour, I'd not just answer the question, I'd also visualise a laser going from air into water and how the behaviour of the light changed as the angle changed.
For history, it's been a while, but if I had a question about one factor in a broader crisis (e.g. the Berlin Airlift) I'd try to think about the broader context of the question - not in my internal monologue, but just vaguely considering the various factors involved, the period of history, personally I instinctively visualise a map, etc, for a second or two before clicking for the answer.
Edit: Oh, and the heatmap extension is great. It gives you streaks and a heat map that you really don't want to break!
It was! There's a little "Optimize" button in the deck settings that you're supposed to click once a month or so, which does what the old colab would do for you.
> And the idea that you’ll literally never see a card again after the last interval is terrifying, as it means you’re constantly losing knowledge.
I brought it up around the time I tried it and got shouted down. Pretty much every spaced repetition app was treating anki like a holy emissary, so I gave up on spaced repetition entirely.
I do agree with the author's phrase of "...a daily ritual of feeling bad about what you’ve forgotten..." though, and would like to try the new algorithm. Is there a way to configure Anki to force you to type the correct answer?
20 second video: https://www.youtube.com/watch?v=mxEqRe1Pp1w
It's possible to batch convert your cards to this format using Anki's "Card Templates" feature.
https://docs.ankiweb.net/templates/fields.html#checking-your...
Anki doesn’t seem to separate these layers at all. Everything is a monolithic database. Import is unpleasant. Export is unpleasant. Sharing is unpleasant. Doing anything other than practicing and editing in the UI is unpleasant. And, every time I try Anki, I get stuck when I can’t manipulate my own data outside Anki.
Is there any system out there that doesn’t have this issue?
On a plus side, you can buy specialized vocab/phrase books, I have one just for onomonopias. Also my beginner vocab books come with recordings from actual native speaker voice actors, which I add to the deck. Much better quality than anything an LLM or speech synthesizers can give you.
Sprinkle in AI and you'd be a shoe-in.
Is that not what anki does? You have a collection of cards, each card can be in one or more decks derived from the cards.
> There also ought to be a way to constrain what cards should be studied in a given session
That's also decks. You can have your 'Japanese' deck, and then the 'Japanese::writing' subdeck for the subset which require you to have your writing materials handy.
You can also use "Better Tags" to tag cards, and then create a sub-deck with an ad-hoc tag query to only study a subset if you want.
Does creating more decks and then studying the subset you want to in a session not work for what you want?
> Anki doesn’t seem to separate these layers at all. Everything is a monolithic database.
Decks are separate files which can be shared, edited, created, studied, and reasoned about independently.
The "spaced repetition model" in anki is obviously separate from the fact that there are multiple (FSRS and the old one).
> Export is unpleasant. Sharing is unpleasant
It's just files (zip files really). What's unpleasant about it?
> And, every time I try Anki, I get stuck when I can’t manipulate my own data outside Anki.
There's libraries to manipulate anki decks outside of anki for practically every programming languages. There are literally dozens of tools that can generate and import anki cards, such as the large family of japanese "mining" tools which create anki cards from media, dictionary entries, etc etc.
It's open source, and the code has clean library abstractions you can work with, so it's trivial to nab any of the data out of it.
> Is there any system out there that doesn’t have this issue?
Every issue you described is something that I experienced in other software, but which anki solved for me, so for me "anki" is that system.
Kind of? As far as I can tell (and I haven't spent enormous amounts of time digging in), there are decks, and a deck contains the notes, the templates (and the cards, which may or may not have any sort of independent existence outside the notes and templates that generate them?), and a deck also contains the scheduling information.
One can export the textual and markup contents of decks, but not the media, into a text file, and one can re-import it, supposedly losslessly. One can also export a deck minus scheduling information for sharing purposes. I'm not sure that one can re-import it.
Then there is a collection, which is the whole world: decks along with their scheduling info.
> That's also decks. You can have your 'Japanese' deck, and then the 'Japanese::writing' subdeck for the subset which require you to have your writing materials handy.
I'm guessing that, if I start by importing a Japanese deck from some other source (because, for example, there's a source with high-quality notes), and then I split it into a writing subdeck, and then the original source adds new notes for new words or makes changes or whatever, that merging the results is basically unsupported.
> > Anki doesn’t seem to separate these layers at all. Everything is a monolithic database.
> Decks are separate files which can be shared, edited, created, studied, and reasoned about independently.
Yes, but only as monoliths (again, as far as I can tell). I can export an "Anki Deck Package (.apkg)", but checking that into git would result in a bit of nonsense. I can't export my scheduling information and templates separately from the underlying notes (or, if I can, I failed to find this option).
>> Export is unpleasant. Sharing is unpleasant
> It's just files (zip files really). What's unpleasant about it?
Excel and OpenDocument sheet files are also zip files. But the respective tools are less limiting and don't expect the users to unzip those zip files. (And their merging and text import/export facilities are also weak, and that's unfortunate.)
I could be wrong about most of this. But Anki doesn't seem friendly to a decomposed workflow in the way that modern programming lanuages are.
So I would strongly suggest your check out anki-connect (https://git.sr.ht/~foosoft/anki-connect) which provides a REST API for CRUD operations on Anki notes, cards, decks, and media attachments.
Or maybe if you can share in a little more detail on what you are studying, the format of the data, and the exact way that your attempted workflow is breaking down with Anki, I'd be surprised if no one had suggestions for making it work.
Edit: also, to answer a question in your initial post, is there a better SRS tool out there? I've never found anything. For all its warts and flaws, Anki is good where it matters, extensible enough to support pretty much all use cases, and has excellent data portability.
The last time I tried to use Anki for real, I wanted to set up some Chinese character cards, to be used by 2-3 different people. I found a couple apparently high-quality decks online and downloaded them, and they had lots of characters, including (mostly) ones that I didn't want to include for the users in question. Removing content from the decks seemed wrong. Trying to make an actual practicable system with just the specific templates I wanted seemed unnecessarily complex (these decks had lots of fields in the notes, which is great, but I didn't want to use all of them). And actually getting the result to work for multiple users seemed like an exercise in poor maintainability -- I wanted to maintain and curate the set of notes and be able to update what each user was studying as needed.
As the very most basic failure, Anki barely separates the concept of a "deck" in the sense of a set of notes from a "deck" in the sense of that which a particular person is studying. And I found that to be quite limiting.
What I think I wanted was a collection of notes, where each note would perhaps have an id and a bunch of fields and their associated media. That collection should be copyable and ideally version controlled. And I wanted to create study sets that would reference the notes, select a subset of them and a subset of the possible templated cards, and track the study statistics.
Never used it, as I've only ever used anki for self study, but it seems like it might be good for your use case?
In terms of updating decks, I think the way it works is pretty intuitive: you have one static field (like in your Chinese example, maybe a particular character or word). When re-importing into a deck, as long as that one static identifying field is the same, all the other fields will be updated. If you want to even be able to change the character/word/whatever, you could make that static field an ID or such.
Also, it is a pretty common pattern for shared decks to come with gobs of cards. You then suspend all of them (sometimes they all come pre-suspended) and then unsuspend the ones you want to study, usually using tags. For example you download the 20k JLPT (Japanese Language Proficiency Test) Vocab deck, suspend them all, then unsuspend only the levels you want to study (say level 1 or whatever) or those tagged as being very common, or whatever. So imagine what you want to accomplish is probably possible with suspension and tags. Like assigning a tag for each student name or such.
Anki is definitely a power tool, like Photoshop or Neovim. It is generally confusing to use and requires some investment. And there is plenty about it I don't like (media management stands out). But like I said in my previous post, I've never found another tool that even comes close.
Programming has a similar issue code, docs, resources, discussions and issue tracking are not handled easily.
Splitting a deck in subdecks can be done through tags, and every card has a unique ID field (usually the front, but you or the creator of a deck can define another one). Assuming tags is the only field you change, when you re-import an updated deck into your collection, Anki will match the IDs and you can define it's behavior when it comes to new or already existent cards.
btw. I didn’t use LLMs to write the app, it was still pretty straight forward.
https://github.com/runarberg/shodoku/tree/main/scripts
https://www.encona.com/posts/custom-statistics-for-anki-flas...
I made the mistake of just jumping in and I would say I spent the first 6 months using Anki “wrong” in the sense I would make bad cards, try to make mc questions, not enabling or optimizing FSRS, capping reviews, doing Anki before I knew the material, etc.
I’m someone who loves to learn from scratch/figure it out myself. I would never recommend watching a YouTube tutorial or following a guide for something you can figure out yourself, but I have to make an exception for Anki. Anki is one of those rare things where it’s simply just better to just copy what someone else is doing and figure out adjustments for your own workflow over time.
After the text is generated, I check out the accuracy (in 95% of cases the cards are accurate) and I import them into my decks. The rest is good old school Anki memorizing.
You only commented on accuracy, but what's your experience on relevance and how useful LLM-generated flashcards are?
To be clear I've already found myself deleting some flashcards I made myself while reviewing them when I realized they were bad, so I guess one can do that for LLM-generated questions as well, as long as the irrelevance rate is somewhat similar.
"Which nutrient can be synthesized by the body using sunlight?","Vitamin D" "What is the primary role of vitamin D in calcium regulation?","Raises blood calcium by enhancing absorption, mobilizing bone stores, and reducing kidney excretion" "How does vitamin D affect bones?","Supports bone mineralization and integrity" "What form does vitamin D take before activation?","Inactive precursor synthesized in the skin or consumed in diet" "Which organs activate vitamin D?","Liver and kidneys" "What are signs of vitamin D deficiency in children?","Bowed legs and bone deformities (rickets)" "What is osteomalacia?","Soft, weak bones in adults due to vitamin D deficiency" "What disease is caused by long-term vitamin D deficiency in adults?","Osteoporosis" "How does vitamin D deficiency affect older people?","Increases risk of fractures and joint pain" "What is the toxic effect of too much vitamin D?","Calcification of soft tissues"
You get the idea. How would you rate it's usefulness is subjective but it gets the job done.
Which LLM do you use?
Do you do anything special to structure the deck by chapter or section?
It's hard to do many, many things in Anki that should be trivial, impossible to do many, many things that should be possible, and the things you can do involve the types of queries being run over your entire collection that causes the app to slow to a crawl after you add about a dozen decks. And in general: I can adjust far too many things that I don't even care to adjust and probably shouldn't be adjusting, and things that should be trivial to do are impossible.
It's bad. Ankidroid is a little better, but they're also stuck with the data model.
I’m in medical school which has basically mastered Anki. The AnKing deck, used by over a million medical students, has over 35,000 cards, cross-tagged by numerous study resources that exists on a single “deck” which receives regular updates. I regularly run basically instant queries on over 40,000+ cards.
Medical school Anki has basically mastered this workflow and the original commenters complaints are completely wrong/come from a misunderstanding of Anki’s data model.
To be put simply, ignoring subdecks, filtered decks, cards vs notes, etc.: cards can only belong to one deck, but can have multiple tags. What exactly do you want to see differently in the data model?
Out of curiosity: How does the individual student select the cards they want to study? Using existing tags or their own custom tags I suppose? If they create custom tags, how do they keep their local version of the deck in sync with upstream?
All cards start suspended by default, and you unsuspend cards usually by tag. For example, lets say you watched a a popular third-party exam prep video from Boards & Beyond on Insulin. You would find the corresponding video has its own tag "tag:#AK\_Step1\_v12::#B&B::08\_Endocrinology::03\_Pancreas::03\_Insulin" which you would unsuspend all the cards for. That's the basic flow, but everyone does things a little differently.
Some people don't watch videos just do review questions from UWorld which are also tagged. Some people manage cards using a mix of tags and decks. Some people search and manually unsuspend cards individually. Some schools cross-tag cards with their lecture. Personally, I use an AI search to unsuspend cards by cross-referencing against a PDF of lecture for the day.
Custom tags can be protected when syncing from upstream: https://community.ankihub.net/t/protecting-fields-and-tags/1...
Suggestion: Allow me to browse your site and learn about your application, and I’ll decide if it’s interesting enough for me to open it on my desktop later.
On the other hand, how templates work and how cloze deletions work are really nice. With the flashcard app I built, I didn't have templates, but did have a very basic cloze deletion system where you could mark text to be "hidden" on the front. It was very limited in that you'd only ever get one front/back combination. You could hide multiple bits of text, but they'd all be hidden at the same time. With Anki, you can create multiple groups of hidden text, so that you end up with multiple flashcards from the same note (i.e. you hid three separate groups of text, so you now have three different cards to test with).
I've been working on an update to my app to incorporate templates and cloze deletions like how Anki does it, so now I appreciate that aspect to it.
For my own database, at least in the new version I'm working on, I've ended up creating a schema where the individual attributes for each card are thrown into their own tables, but this is mostly because I needed to support updating individual attributes separately since I use a very simple journaling system to sync across devices. With Anki's schema, I can see why sync was complicated (at least in earlier versions) since it wasn't really built for it.
[1] https://www.freshcardsapp.com/
I experimented with SuperMemo around 18 months ago, and it made me fall in love with SRS again. The main reason being the algorithm is less punishing when I skip a day. Maybe it has better defaults?
I once skipped a whole week and could get back on track in the next week, in Anki that feels unbearable.
Another thing I really liked about it is that you can edit a card as you are studying without having to open a separate window, helps me stay in the flow when studying.
But… With a better algorithm I might give it a try in the future… Being FOSS is the real advantage here.
Q&A/discussion: https://supermemopedia.com/wiki/SuperMemo_dethroned_by_FSRS
Repo: https://github.com/open-spaced-repetition/fsrs-vs-sm17
Discussion: https://discord.gg/qjzcRTx => https://discord.com/channels/368267295601983490/136895216717...
I wasn't involved in the benchmark, and don't know whether `SM16-v-SM17.csv` is a full export. Didn't see any reviews before 2020, and it may only be an export of a subset of reviews.
https://github.com/open-spaced-repetition/srs-benchmark/#dat...
I've stopped working on it and am now building something highly similar aimed towards high school students, but any feedback is welcome. This version was built for uni students
mimair.com - I never got around to adding any payment option so its completely free
This seems impossible to me. In anki, there's "hard", "good", and "easy" which are all for "I got this right".
For my usage, "hard" is "I got it right, but I was only like 60% sure", "good" is "I had to actively think", and "easy" is "effortlessly correct, no real thought required".
There's no way for an AI to tell if my identical input is the result of a 50/50 guess, or a little thought, or effortless recall. "delay to answer" also isn't a good approximation, I have a habit of alt-tabbing and chatting with a friend on random cards of any difficulty.
I find distinguishing those levels of easy for totally identical answers ends up making SRS more effective, and AI just can't know my inner thoughts. Maybe once we have brain implants.
> any knowledge rather than specifying that the exact answer should be graded
I don't understand what you mean. The important thing is to feed back into the SRS algorithm "How much does this card need to be studied", and if you mean "any knowledge means we can study it less often", then I doubt the SRS will be able to be effective.
What are you suggesting to feed back into SRS? How will you ensure cards the user knows very well quickly get pushed way back (so the user isn't overwhelmed with a boring slog), and cards they only sorta know bubble up more quickly to start to cement the knowledge?
As an example Term: "What is the capital of France and how many inhabitants does it have?" Correct definition: "Paris, which has 2 000 000 inhabitants."
For me there is a difference in not having the answer at all, which falls into "again". But what about if I'm able to retrieve that Paris is the capital, but I remember that the population is 1 500 000. This is where the gray zone begins
There's a lot more room for gray zones in language learning, where you might have the french card "doubler" and answer it as "to pass", and then see the actual answer is "1. to overtake, 2. to double", in which case you have to read your heart and decide whether missing the second definition was careless because it's so obvious, or if it merits an "again"
An AI also can't really know, btw, if your answer of "to pass" was "to pass (overtake)" (correct), or "to pass (like a note in class)" (incorrect).
That's not the best example, but there are a ton of ambiguous english words, and you only know in your own heart which meaning you meant.
The AI cannot read my mind, there is no approximation that will work reasonably accurately here for "how confident was I in my answer", unless I input that myself.
If the window loses focus it would be able to pause automatically. If you are distracted another way, no big deal you will see that word again soon and unlikely to keep getting distracted on the same word. The benefits would outweigh the odd misfire.
Not to say that how quickly you can access it doesn't play a role in real life.
Either I don't understand the algorithm or it doesn't understand me.
Depending on what you're learning, you might vary those. For language learning, that works well imo.
Also, make sure to switch to FSRS. The old algorithm defaulted to "again" resetting a card to 0, while "again" in FSRS does show it again, but doesn't reset it back to being effectively new.
If you want to understand the algorithm, read this: https://github.com/open-spaced-repetition/fsrs4anki/wiki/ABC...
I like the design suggestions proposed at [1] and [2] for this particular problem. [2] in particular gives tooltips which are supposed to guide you toward exactly what the buttons mean:
- Again: "My answer was completely incorrect"
- Hard: "My answer was correct, but I hesitated a lot"
- Good: "My answer was correct, and I hesitated a little"
- Easy: "My answer was correct, and I didn't hesitate"
That said, you can also just reduce it to a two-button system: only ever use Again and Good. There is some evidence this works better, especially with FSRS which is doing enough machine-learning behind the scenes anyway that it doesn't need the extra signal from Hard vs. Good vs. Easy.
[1]: https://forums.ankiweb.net/t/how-to-prevent-users-from-misus... [2]: https://forums.ankiweb.net/t/how-to-prevent-users-from-misus...
I like the anki way of self rating, so I kept it. I want to be able to say: “hey, I know I screwed up the stroke order this time, but it won‘t happen again, promise” and hit “Good”.
https://github.com/runarberg/shodoku
https://shodoku.app/
1) The time it takes to make cards. RemNote allows you to take Notion-style block notes and quickly turn bullet points into flashcards using symbols. For example, you might be in class and make a bullet point in the format
- The quick brown fox jumps over >> the lazy dog
which you can later review as a flashcard that is automatically separated front/back by the >>.
2) The old and unintuitive UI - again, basically just Notion with flashcards. You can easily view all your notes in a bullet hierarchy and then switch over to SR flashcard practice. Even has rich code blocks, image occlusion, tables etc. A much better implementation of Anki's notes/cards metaphor in my opinion.
I am not sponsored by RemNote, just a university student who has bounced off Anki and really likes the app.
The basic idea: SRS is great, but it can be hard to get motivated to start studying your cards every day. On the other hand, most people have a habit/addiction to check their email or social media multiple times a day. The idea is to intersperse random card studying into my email or Telegram inbox, reducing the time to study a single card to a few seconds interspersed across a busy day. So I want to get a few random emails (or texts) with a due flashcard question, and have the ability to answer the flashcard directly in one click from the message. The hard part is that last part: getting the software to work so that I can answer the flashcard in a single click from the email, so that I don't need to open the whole app just to start studying.
Would really help to keep up with my studying even on busy days and hack the brain's addiction to email/social media to do something useful.
For email, I think you're right it would need to be frictionless. There are some new email technologies that let you embed dynamic interactions in your email - we might play with that at some point.
So this is probably hard to do as a plugin tbh, but I'd love to explore eventually as a feature.
I’ve always felt this setup was a bit arbitrary and considered it a temporary solution. Thanks for saving me some time on research!
As a quick hack, increase the factor to 2.5 once you reach 1 day. That's what Anki's SM-2 used to use (if only pressing 'good')