Full mastery of coding takes time, but any method to speed up the process is welcome. Developer Jack Kinsella came up with a method to learn to code faster so you can actually start making those apps you've always wanted to make.
Kinsella's approach is called the Janki method, and he designed it to hasten the learning process through a repetitious flashcard system called Anki. It works by following these eight rules:
- Every time you learn something new create a question and answer flashcard and add this card to Anki.
- You must use Anki every single day- including weekends and holidays — and commit to doing so indefinitely.
- Learn in context. Pick a project, and learn only what you need to get it done.
- Only add a card to your deck after having tried to use the item of knowledge it contains.
- Every time you make a mistake carry out a post-mortem and try to figure out the lessons in the experience. Think about what you would need to know to prevent that mistake from occurring again, and turn this insight into new flashcards.
- At the end of every project ask yourself what lessons you learned and what you would do differently if you were to repeat the project with the benefit of hindsight.
- Delete or modify any incorrect, outdated, difficult to remember, incomplete or unnecessary cards. Update existing cards as improved understanding dawns.
- 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.
It works because you end up being able to recall code in an instant:
Knowing thousands of commands saves time otherwise spent looking up reference materials. You instantly recall previous solutions when faced with a problem, and dozens of possibilities spring to mind when architecting a system. You will read other people's code rapidly, confident in your understanding. The closest analogy is fluency in a natural language. You will speak code.
Even though you're inexperienced, you can still perform at a higher level because of that knowledge. Additionally, using this method provides you with a searchable database of everything you know.
It's a clever and novel approach to the somewhat daunting task of learning to code. If you're planning to pick up a programming language, you might want to give it a try. Kinsella goes into great detail about the system on his blog, and you can pick up your first few coding lessons from us.
Janki Method [Jack Kinsella]