4 ms·
For deliberately practising programming problems, I keep a spreadsheet and a journal. The spreadsheet tracks the problem, the difficulty level, the time it took
by agentultra 3y ago
For deliberately practising programming problems, I keep a spreadsheet and a journal. The spreadsheet tracks the problem, the difficulty level, the time it took me to solve it, the algorithm I used to solve it, and notes. I use the journal to dive in deep by explaining my solutions to someone who has never encountered the problem before. I'll often re-test on problems I've solved before and see if I can get a better time, use a different algorithm, or something else.
I also use flash cards where I put the problem description on the card and the algorithm to solve it on the back. This is to train me to read through lengthy, puffy, problem descriptions and get straight to the point.
... but I usually only do this when I'm preparing for interviews or feel like I need to sharpen up. Deliberate practice is one of those things where you can turn up the heat for a while but you'll need to take a break at some point and let it sink in to your subconscious.
- r3trohack3r 3y ago> I also use flash cards where I put the problem description on the card and the algorithm to solve it on the back. Have you used space repetition software (SRS) before? You’re 90%+ there already. You build up a deck of cards with a “memory prompt” on the front and the “memory” on the back. The software tests you on the deck and passes your results through an SRS algorithm that estimates your “forgetting curve” that predicts when you’ll forget a memory. Then, right before you forget, it’ll reprompt you to refresh the memory. I use Anki off-and-on and love it.
- agentultra 3y agoYes, I use Anki for these for sure. It's great!