Ask HN: Better way to create Anki cards?

36 points by lsferreira42 ↗ HN
Hello HN, i've been trying to use spaced repetition to help with my studies but creating cards in anki is a pain, do you have a better way to create cards? ( or an anki alternative that makes this easier? )

23 comments

[ 3.3 ms ] story [ 71.8 ms ] thread
You can create cards from a google spreadsheet. You might find that easier.
CSV import (from Excel / Google Sheets) is my go-to for this as well. Added bonus is being able to script things - I have some Python scripts that will do a lot of the hard work for me when making cards for a new language (looking up definitions and example sentences from Wiktionary, adding synonyms / antonyms, etc).
Any chance you could share the scripts?
I've put them in a Gist for you: https://gist.github.com/andmikey/4da65e0085104e514286678c431.... The script I run is wiktionary_scraper.py, it assumes you've got a vocab_main.xlsx that contains a "lookup" sheet with the first column being all the words you want to look up. Definitions and related words are put into a new file, vocab_defns.xlsx.

I will warn you - it's not very clean code and mostly based on scripts I'd found on GitHub. It's something I threw together over a summer because I needed to learn a lot of Swedish words very quickly, and my usual Anki-adding methods were too slow. Worked out well, but I do keep meaning to come back to it and make it a proper bit of software...

This is more scriptable than the alternatives, i'll look into that. Thank you!
For Japanese (I realize that's not what you're looking for, stay with me) there is a chrome plugin called Yomichan which allows you to create an anki card from any japanese word you.

I wonder based on your study environment (if it's web based) if you could find a similar plugin that's more general purpose or develop one yourself.

Depending on your studies, there may be decks of pre-made cards covering similar content. Try some searching around or search the ankiweb decks

https://ankiweb.net/shared/decks/

Though, in my experience using both Anki with pre-made and custom cards, the custom ones tend to promote better retention and cover individual knowledge gaps more thoroughly and efficiently.

If you're comfortable with Python, https://github.com/kerrickstaley/genanki is amazing. You can pull your content from any source, use templates for the question and answer format, and even add media to each card (image, audio).
Python is my daily language, i'll try that, thank you!
Another tool I've used if you have the Anki app is the Anki-Connect plugin https://github.com/FooSoft/anki-connect

It supports curl, python, javascript, etc to add cards and supports an incredible amount of actions to interact with Anki.

Example: curl localhost:8765 -X POST -d '{"action": "deckNames", "version": 6}'

I setup a crude "GUI" in Jupyter Notebook to create and manage my decks.

I love genanki. If you create your cards such that they have an ID in the first field, you can also update them over time. This is useful for pulling from online sources whose underlying data may change over time. It's also nice when you want to update the template for previously-generated cards, perhaps to format the question/answer differently.

I use this approach in my Spotify + Anki app, described here: https://www.reddit.com/r/Anki/comments/g0zgyc/spotify_anki_l...

I recently used GenAnki for the first time to make a deck in Python and it worked really well.
What's a pain about it?

If it's a matter of creating cards one by one, instead of in bulk, I would argue that's a feature rather than a bug. Consider it extra study time, especially as creating a good card makes you think about the topic more.

Otherwise, card types/templates are your friend.

I take a lot of notes in Vim (neovim) and am planning to build a connector from Neovim to Anki. Haven't looked into it deeply but I'm guessing an easy way is to run the Anki connect and execute curl from inside Neovim, passing structured note details.
Some of the other comments have good suggestions for scripts and tools. I'd like to offer a slightly different opinion.

Make your Anki cards one at a time. Quality over quantity.

It's very easy to add 10,000 words and translations/definitions into Anki using import tools and scripts. If this works for you, great! But I often see people do this and then a month later feel totally crushed by hundreds of reviews information completely out of context.

Instead, try studying and only make a card when you have an "Aha!" moment. "Oh, that's what that word means" or "Ahh, I see how the past tense works". Ideally, cards should feel a little bit too easy when you make them. It should feel like you're never going to forget the new word that came up 20 times in this chapter of your textbook. Of course, after a week or so your memory will be a bit more fuzzy and the Anki card will be a helpful reminder to prevent forgetting.

A bonus of this method is that now doing Anki reviews is like remembering all your best hits and moments you were really clever. It's the complete opposite of a grind.

I agree with this. I generally spend a bit of time creating a single card, with the front being a question that I come up with myself based on the concept I want to understand.

For example, when I was learning about DIY Bio, one of my cards might look like:

Front: "What allows plants and algae to photosynthesise sunlight, carbon dioxide and water into energy?"

Back: "chloroplasts"

My memory isn't great and I think rewording what you've read helps in the process.

I'm going to offer a balanced comment.

I agree with laurieg[0] and dustincoates[1], there is value in creating your cards one at a time, because then you initially learn the card as it goes in, and you are using the system to help retain it in the long term. Their comments should be read carefully and the points considered.

But I also use a Spaced Repetition (SR) system to memorise things, and sometimes there's value in simply dumping things in "in bulk", learning them when first presented, and trusting the system. When I first had need of a SR system I needed it quickly, and I didn't have 'net access, so I wrote my own. My usage is perhaps idiosyncratic, but I can see why one would want to install cards en masse.

Good luck with your studies.

[0] https://news.ycombinator.com/item?id=32407331, in which they say: "Make your Anki cards one at a time. Quality over quantity."

[1] https://news.ycombinator.com/item?id=32398200, in which they say: "Consider it extra study time, especially as creating a good card makes you think about the topic more."

Anki imports delimiter-separated data. Semicolon by default.

If you prepare a file which looks like this:

  front;back
  front;back
  front;back
  ...
you can just import it. Way back when, I created all my Japanese decks with some text processing over scraped data.
Actually, that pain actually helps you remember your studies, possibly even more than reviewing the cards themselves!

It's similar to how taking notes during a lecture help you remember better, even if you never review the notes again.

Fluent Forever[1] teaches an effective method for maximizing the benefits of SRS. It specifically targets foreign language learning, but the concepts can be applied to whatever you want to learn.

[1]: https://www.nateliason.com/notes/fluent-forever-gabriel-wein...