Hello, I'm Wojciech 👋

Practise only counts when deliberate

Published 2 months ago • 2 min read

I’ve been (re)reading The First 20 Hours book recently and there was one thing that surprised me and kept coming back.

When Josh Kaufman discusses his process of switching his keyboard layout to Colemak and he mentioned that his typing speed improved due to his schedule of deliberate practise of typing words and n-grams in the evening up to a point when he was typing fast enough for his daily work. What he did next was common sense - he stopped his practise sessions, because he’s typing the whole day anyway. This skill is bound to improve naturally due to sheer volume of practise he gets daily typing his emails, blog posts, books, etc.

Of course, the surprise here was that no improvement came on its own. His WPM scores plateaued until he went back to his deliberate practise sessions of typing nonsensical sentences and senseless n-grams. That shouldn’t be surprising for me, though. I came across the same thing when learning to touch type. I thought it’s obvious that I should be able to touch type already due to the amount of muscle memory I’ve accumulated in my fingers. It turned out that not really. Similar lesson came when I switched keyboards a year ago to a model that’s completely split in the middle and I had to stop the habit of my hands dancing all over and learn what’s the correct finger to use for each key. Also, we’ve all seen those office clerks who, despite of doing the same job for years, still type excruciatingly slowly using just two index fingers.

The reason this keeps coming back to me is how that translates from keyboards to programming skills. The same way it was “common sense” that your typing skills naturally improve, it’s “common sense” that we naturally get better at our jobs. But that’s not the case. Of course, there are some things that we train just working on projects. Whenever you come across a new challenge (your code is slow, database choice is not a good fit anymore, API architecture needs revamp) you need to jump in, learn something and use it - that’s a typical feedback loop that makes you grow. However, if you’re not challenged, that does not happen. For example, you have a way of handling API calls that worked in the past and still works for a new project - any time spent implementing it again is just repetition of a skill you have, it does not teach you anything.

If you want to get better at programming, you need to challenge yourself. Think about what’s the area you’d like to improve in, make a deliberate plan how to challenge yourself and start a focused practise session - whether it fits into your daily work, or needs to be something you do after hours.

Have a good one,


PS. I have lovingly crafted this email using only the best artisanal keystrokes. If you find come across any typos, feel free to fix them yourself and enjoy this new, unique, kintsugi version.

Hello, I'm Wojciech 👋

and that's my daily list

Subscribe to read my programming experiences, ideas, mistakes and tips I wish I'd known myself earlier. Learn how to enable high-performing teams, make an impact, grow as a software engineer and level up your career.

Share this page