How I Created 4000+ Flash Cards in 2020 Without Losing My Mind

I mentioned in How I Passed the CompTIA A+ that I created a desktop application to help me create flash cards. This was a good thing, because by the end of 2020 I had created 4000+ flash cards from studying Computer Security, the CompTIA A+ Core 1 and Core 2, and the CompTIA Network+.

I did not start with an application however. I started by trying to create flash cards in Anki, but it become too cumbersome for my use case. I then used a Google Form, but I eventually abandoned that form and created a desktop application.

My Use Case

I created flash cards with Anki while working through a video or chapter of a textbook. I created flash cards as I ran into information I thought I would need to remember. This would be easy enough to do in Anki, but I also wanted the card contain the source of the information, and the other relevant information (for example the CompTIA Exam Objective). Here is an example of the end result I was looking for. Everything above the white line appears on the front of the card.

Image 1: Photo of an Anki Flashcard with the following fields. A Question Field. An Answer Field. The title of where the information was sourced, and a link to that source.

However, that meant for every card in a chapter or video I had to re-write the source and relevant exam objective. This wasn’t time efficient at all, and copying and pasting wasn’t making it go. This is when I came up with the idea of the Learning Form

The Learning Form

Image 2: Photo of a Google Form.

The Learning Form, as I called it, was a quick and simple change. It meant that for a given chapter or video, I was able to create 10+ flashcards without having to re-enter the chapter or video information. This was sufficient when I watched short videos from Coursera. There was also space to summarize the chapter and what I already knew about this topic, two things I learned to do from Make It Stick.

But as I grew dissatisfied with the low-density information of Coursera material, and shifted gears to textbooks and Pluralsight, I found myself having to add many more fields to the Google Form. This was inefficient and cumbersome, and the Google Form prevented me from creating cloze deletion cards.

Enter Ceshi

To resolve my problems, in April I made my first commit to Ceshi, the desktop application I would end up programming to help me with my flash card addiction. This first commit was a test to see if I could figure out a way to make a program that would be able to generate cloze deletion cards, otherwise I didn’t think it was worth the time.

In the end, I was able to figure it out and quickly plowed ahead with programming more. By April 12, I had my first usable release of Ceshi. This first release was a minimal viable product in every sense of the word. QOL features like keyboard navigation, which text box is in focus after submitting an entry, CTRL+A text selection support, and many others only came later.

![Image 3: Ceshi’s current form, because no coder ever thought their own GUI was ugly. Note that this form is highly inspired by Make It Stick: The Science of Successful Learning

This was a concept I borrowed from extreme programming. “You aren’t gonna need it“. This is the idea that one shouldn’t add functionality until it is deemed necessary. Based on this principle, you can probably figure out what happened to result in this change.

Added safety feature to prevent data loss* should the user press export before submitting their current entry

This is my biggest personal programming project since I started programming again in 2019. I don’t plan to stop working on it, as the need arises, and who knows, with a few enhancements maybe this year I will be able to create 5000+ flash cards?

You can find Ceshi on my Gitlab here.