Reference: Janki Method
Jack Kinsella describes an excellent method for learning any skill, disguised as a method for learning programming.
He draws on his own personal experiences using Anki (a nice learning tool which I recommend, too; I've used it to learn foreign languages) to help him learn the huge number of commands, functions, and other arcana that we all either grep from memory or Google constantly as we work. He sums everything up in eight rules which define the Janki Method.
Here's an example:
The eighth rule of Janki encourages you to use your readings of other people's code as a source of learning:
"Read code regularly. If you come across something interesting --- be that an algorithm, a hack, or an architectural decision --- create a card detailing the technique and showing the code."
In the article, you'll find solid examples of flashcards chunked down to the right bite-size.
The hardest part of the Method is to stick to it. He suggests rule 2:
The second rule of Janki encourages a commitment to daily learning:
"You must use Anki every single day- including weekends and holidays --- and commit to doing so indefinitely."
I can't say this seems realistic, even with the five- to eight-minute daily commitment he claims. I have used Anki for long stretches. Two months was my longest. It is true that it doesn't take long each time. The trouble is the same trouble you have starting any new habit. It's just hard.
I have had luck using Anki in an opposite way: one hour per day for a week. For some reason, it's easier for me to commit to than an indefinite commitment. You don't get the same benefits. The benefits are different.
And, finally, the great thing about Anki is that it is very forgiving if you do stop using it regularly. If you take a two-week break, you can start up again with very little fuss.
- Use Anki to remember Emacs keystrokes/commands
- Use Anki to learn the Vars in clojure.core
Jack manages to bring together the ideas of spaced repetition, learning by doing, and continuous self-improvement to give practical advice to make us better at what we do.