A command line tool for memorizing algorithms in Python by typing them. In alpha and things will change.
- Type out an algorithm based on its function signature and docstring.
- See what you did wrong or get a new algorithm.
- Repeat until bored.
- Clone this repo .
- Look at
algorithms/bisect_search.py
and its references. - Run
./drill.py practice
- Fill out the newly created
worskpace.py
to match the code inalgorithms/bisect_search.py
. Do it from memory or look back at the file. - Run
./drill.py practice
again. You'll do this a lot. Maybe make a shortcut. - If your code matches, it will be deleted and you can try again. If it's different, you'll get a diff.
- Check out other algorithms that look interesting in
algorithms/
. - If you see an algorithm you like, copy-paste its ID to
user_data/allowed.csv
. - Run
./drill.py -h
to see more features. - Keep going!
No. Memorization without understanding is bad. You should understand an algorithm well before committing it to memory.
No. They're versions the author likes.
Yes! Check out user_data/history.txt
for a nice format. Maybe keep it open in a window for motivation.
Yes! ./drills.py new_algo --help
Yes! Just two books right now. ./drills.py reference --help
Yes! Tell me how you like this tool, submit a bug report (or fix!), tell me if you have a feature idea, show your friends, or show me your own cool algorithms. You can email me at my last name at gmail.
Made with 🌮 in Tulum, Mexico