In short, I’ve been noticing something and would like a custom schedule that’s much simpler for initial learning, before then going over to SRS. I know there’s something sort of for it with the learning steps stuff, but if I’m honest, for people not deeply ingrained in Anki’s world, it’s all very convoluted and the terms are hard to follow. I found that after digging into it, it still just isn’t what I wanted, which is frustrating after how much time already sunk into just setting up a system for learning instead of just getting to the learning.
(I have something in mind, and have been thinking I’ll have to write a program from scratch that imports my Anki deck, to show cards in the preferred order. The information on custom scheduling is so sparse and difficult to figure out for somebody that doesn’t live in the Anki code, that without help it just looks easier to hack together a shoddy program from scratch. I’m writing in case I don’t have to do that, because I do not think it’s easy at all, the custom scheduler coding is just that hard to figure out for me, as the help pages redirect to a page that’s just code with little or no comments about what any of it means and it feels like trying to decode ancient tablets of a lost language. It feels like it’s not meant for people like me, and then I’m not sure if it’ll even be able to do what I’m looking for, so that’s why coding something new is where my head goes, even though just having a custom scheduler would save massive amounts of time.)
What I’ve been noticing is a lot of people try to use Anki/SRS right from the very start, which I think “works”, but SRS is not designed for that, it’s designed for long term retention. I think even for SRS there was stuff backing up the idea that learning it well to begin with helps in the numbers for retention later in (I’m not 100% sure, I just saw some charts and an overview on a youtube video, I don’t live and breathe this stuff.)
And for this initial learning (as opposed to trying to retain/remember what you’ve already learned), I’ve found the SRS algorithms not only less effective, but actively detrimental and getting in the way. It’s not that it doesn’t work or can’t work, obviously it can and does, it’s just that the idea here is optimization and it’s running counter to that for me.
No matter what settings I use in Anki, it’s determined to try to do it in some SRS way, which means it’s putting cards I’m trying to actively study off to another day or repeating the same subset overly while there’s other cards on the stack being ignored or just seen disproportionately less. The best I’ve found to deal with it is raising steps and using a filtered deck with “reschedule cards based on my answers” off and changing the numbers for Again, Hard, and Good, but it’s still not very effective. It’s still based on time, so it still “obsesses” over some cards and ignores others. Because it’s still trying to do something SRS-like, just on a smaller scale, I guess.
What I want to do is go over all the cards, and repeat the ones that were difficult more often, without delaying anything for a later time at all, and not getting hung up on a subset (not doing some of the cards at the same difficulty disproportionately). I came up with a very simple algorithm that would do what I’m looking for perfectly (I believe), but implementing it has just been too hard. Again, this isn’t a replacement for SRS and I’m not saying it’s “better” (even besides “to each their own”), this is for initial active learning before sending it to SRS for longer term retention. (I also plan to have immersion that includes the words between the two, where I think the real learning happens. This is all in support of that, with SRS being used after to retain it better.)
The algorithm I had in mind: I was thinking to set the “review sort order” to something that could be adjusted to do this (if that’s needed/works). Every card would have a value, starting at the same one (0, but it wouldn’t matter). When selecting Again/Hard/Good, it would simply add a flat amount to this value. At any given point, the next card to be shown would be the one with the lowest value (there would be a lot at equal value, and that’s ok, I don’t care which of the same value come first). It would be something like Good adds 1, hard adds 0.5, and Again adds 0.33.
So how it should play out is that on the first run, it will definitely go through EVERY card in the deck/stack. It doesn’t matter if it was marked as hard or easy, no card is ignored. Once every card has had some amount added to it, from there we see harder cards more often, but not ridiculously more often. The numbers could be adjusted, but the idea is that with 0.5 it’s just showing it twice and then its value has caught up, it’s not permanently marked in any way, from there it’s on equal ground to a card marked as Good once. The more cards are “Hard” or “Again”, the more they’ll be reviewed, but only until they catch up, and even if you hit “Again” 3 times in a row, it’s not resetting or making it more difficult, but simply moving on through the rest of the cards in the deck, not stuck on it. So we still go through all of the cards, and the difficult ones are repeated before getting to the rest again, without any cards effectively burying the others. Even if you always say it’s the hardest, we still continue through the entire deck, since no matter what difficulty is chosen, it’s ALWAYS only adding to the score/value.
This is how I originally did it with paper flashcards, and where I learned flashcards work really well for me. Going through the whole stack, and setting difficult ones aside to go over more, and then reshuffling back together to go over it all again, and see which ones are still difficult after that, to repeat (and review/refresh the rest overall). As you go, more and more become easier and need less repeating, so they are truly on equal ground and don’t need to be marked as less easy (that would be actively detrimental as you then focus on them at the cost of other cards, wasting time on frustratingly repeating easy cards just because you didn’t get it the first few times). It ends up with maybe 0 to a few cards that just aren’t sticking and those can be singled out for looking into more. I feel good about it when I can get through the whole deck and there’s only 0 or a few that are still a struggle. From there, you can go on to normal SRS to retain what you’ve learned, but I think this is better to learn it in the first place (for things where flashcards apply well).
There are other ways to do initial learning, it doesn’t have to be flashcards at all (SRS or not), and SRS can still be helpful after that. It just happens that I really like flashcards, but SRS is majorly getting in the way of that.
(I don’t want to do paper flashcards because it’s wasteful and slow to make, when there are multiple thousands of words I’ll need for 日本語 and its 漢字. And just putting up with the SRS interference would still get somebody there, just much more slowly, and it’s already such a long thing and I have other things I want to get to as well.)
So I guess my question is, can custom scheduler code do this? (Possibly with choosing a particular “review sort order” for something that can work as this value/score?) Would anyone more familiar be willing to help? There’s really little documentation on custom scheduling and what variables it can affect represent or do, and this seems on the fringe of what it’s meant for. (It’s still a different “schedule”, just not time or SRS-based.)
(Sorry if there’s some redundancy, I’m trying to be clear in case it helps, since I see literally nobody coming from this direction, which seems strange to me.)