The Janki Method Shortens The Time It Takes To Learn To Code

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:

  1. Every time you learn something new create a question and answer flashcard and add this card to Anki.
  2. You must use Anki every single day- including weekends and holidays — and commit to doing so indefinitely.
  3. Learn in context. Pick a project, and learn only what you need to get it done.
  4. Only add a card to your deck after having tried to use the item of knowledge it contains.
  5. 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.
  6. 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.
  7. Delete or modify any incorrect, outdated, difficult to remember, incomplete or unnecessary cards. Update existing cards as improved understanding dawns.
  8. 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]


    I've been using this for some time and if you just stick to rule 1 you'll be fine - here's why.

    Anki automatically increases the "next revision delay" as you keep getting things right, so flashcards that you ultimately find too easy, automatically end up with very long delays and won't bother you needlessly, and beyond just "right" or "wrong" there are additional buttons like "easy" to increase the next revision delay even more.

    Also you don't need to type answers into it, just think of the answer in your head, and if you get it right, click the "i got it right button" button.

    If you skip a day (or a week) it's still there waiting, but the program limits revisions to e.g. 20 questions per subject in a single session, so you don't get overwhelmed if you take a break - but as a habit it's good to have a more or less daily habit of using it.

    You don't need to learn in context, when doing training courses of course you need to put skills to practical application to learn them but for revision, often it's just syntax, vocab, functions etc that you need to lock into long term memory.

    Don't just use anki for programming - USE IT FOR EVERYTHING, learning software, keyboard shortcuts, languages - whatever you need to remember. It's amazing how much you forget if you don't use something for a while, and anki keeps it fresh with the scientifically calculated minimum revision effort to do so.

Join the discussion!

Trending Stories Right Now