A program that schedules flashcards for review based on spaced-repitition, which allows for efficient memorization.
I use it for school and also to memorize coding syntax; I'm endorsing this because I found that it improved my grades and hope others find it similarly useful. It is a bit daunting going into it, but if you start small and experiment as you go along it can become quite a versatile tool.