Courtesy of KotlinLang.org

Reviewing and recalling your ‘links’

As I’ve tackled each koan, I’ve put in the relationship to Java as my “link” to the concept. In other words, I have a ‘fact’ (stored in declarative memory) linking to my ‘skill’ (drilled into procedural memory). Just to be clear this is nothing to do with the question posed by the koan. It’s just how I get ‘to the skill, via the fact’.

For this to work of course, I’m going to need to remember the facts. And remembering the facts is going to rely on frequent review, or spaced repetition. There are lots of theories on the best strategy for this kind of spaced repetition. I’m going to go with a very simple strategy here though.

To keep declarative memory ‘topped up’

  • After completing each chapter/section of the Koans, I’m going to test myself on the ‘link to Java’.
  • I’ll space this repetition out to 1,2 and 7, 10 days.
  • Then, I’ll write out what I can remember about each section and see how it lines up with I have originally noted.
  • I’ll review my gaps and test myself again until I get it right.

To start with I’ll set up custom reminders in my work calendar, you can pick a schedule that works for you obviously. I’ve simply made a repetition frequency and linked it to my google doc.

Using free recall

Next, I’m using the ability of google sheets to show and hide the answers column to test myself.

Hide the original answer to test my ability to recall without prompts
First attempt at using ‘free recall’

This is my way of using the ‘free recall’ technique I mentioned in the previous article. I can write out my answers and see what bits I missed.

You can get more info on that (affiliate link BTW, use coupon code of ‘jamesbowen’ for 30% off) on Listenable – see “The Science of Learning” by Benjamin Keep.

Keeping your facts up to date

Likewise, it could be that I’ve learned more since I last reviewed my ‘facts’. In that instance, my ‘free recall’ column will actually contain more info than my original “link to Java” section. In that instance, I’d obviously update the “link to Java” with this new information for future ‘top-ups’.

To keep procedural memory ‘topped up’

How to approach this one is really going to depend more on my day to day exposure to Kotlin. The more Kotlin I write in my day job, the more likely I’ll use a concept found in the koans. In turn that’s more likely to drill my procedural memory in these fundamentals.

Making the time to check these links though, that’s a judgement call for you to make. Building the foundations will help you speed up in the long run. But work have their own deadlines and pressures sadly – you can’t spend forever in ‘personal development’ even though it’s for their good as well as yours.

Perhaps as a simple strategy, you could allocate a couple of hours a week until you’ve nailed the koans. You could:

  • Start a new session on the koan, or wipe out your previous answers.
  • Go through as many Koans as you can in your 2 hour block.
  • See which ones you can easily recall ‘without thinking’.

As an example you could do a similar thing as for your ‘facts sheet’. To start with a set a reminder with a schedule:

Spaced repetition of my training – drill to skill

And then start your course again! Or maybe just one section again.

If you’ve been getting exposure at work to Kotlin concepts, I’m guessing that you will get a lot further in your two hour ‘stint’. You might need more sessions if your use of Kotlin at work is intermittent. But one way or another, eventually you’ll be drilled in these core building blocks.

As I review code at work, and write new code, I hope to be able to pull this training out of my memory without thinking about it – a true productivity gain.

Conclusion

I hope that my article was able to give you a more productive way for learning Kotlin. By giving yourself a context around your learning goals, I hope that your links to the drills will become that much stronger. If you have a goal that is relevant to you (and current) you’re more invested in recalling the facts. If the link between the facts and the drills are there, you stand a greater chance of applying your skill ‘on-demand’.

As ever, please feel free to contact me with any further questions, or use the comments section below.

Resources

Learning Python Podcast with guest Barbara Oakley

Benjamin Keep – the science of learning (use this link and a coupon of ‘jamesbowen’ for a 30% discount off a subscription)

Make it Stick – a very useful book I’ve enjoyed reading for insights on retention.

JetBrains Edutool plugin and Stepik set of Kotlin Koans.

Example ‘facts sheet‘ for my personal training.

By James