Logo spelled as T D

Slow Typist

May 21, 2024 | Thirafi Dide

This post is also available in Bahasa Indonesia

Even with 6+ years of professional programming career, I was a really slow typist. My speed was around 20-30 WPM when coding, and would get even worse when writing pure text document. I can’t touch typing, use at most 5 fingers to type, and trying to type faster just resulting in a lot of typos.

But then I built my own gaming PC at the end of 2022. As I didn’t have a keyboard before, I bought a new Keychron K3 mechanical keyboard for my PC. It’s a nice keyboard, feels solid and premium, and makes me feels that it just a waste to have this and can’t use it to type fast. So I started to train my typing, not only to type faster, but be more accurate and use the “proper” 10 fingers, touch typing posture.

It’s been more than a year and a half since I started to learn to type faster. Now I can touch type, make a lot less typos, use all of my fingers, and got around 70-ish WPM. It still not that impressive, especially for how long it took me to get here, but a miles better than my previous speed. So I just want to share some of my learning experience and some tips if you want to learn to type a little bit faster.

Do I need fast typing?

I never think my typing speed as a big problem, even for my career. In most of my experience, as software developer you do a lot more of reading, thinking, and communication than actually write code. Also as frontend developer, what I do when coding is mostly juggling between writing codes and doing something else (looking at the design reference, testing interaction, reading documentation, comparing the resulting UI, nudge some elements for several pixel and see if it fits, etc), rather than a long continuous session of only writing codes. All of that makes me never feels the urge to learn to type faster.

If you want to make your workflow faster as a software developer, I think investing by learning your tools is a lot more impactful than just faster typing. Your workflow would be a lot faster by learning your keyboard shortcut, optimising your IDE workflow with correct extensions and LSP, optimising build speed and feedback cycle, and so on. Those would allow you to prototype and validate your ideas faster than just a faster typing speed.

After getting better at typing, I think the biggest advantage of faster typing that I can feel is in the enjoyment aspect. Faster, more accurate typing just makes me enjoy and motivate me to writing more, either for codes or other documents. Faster typing also means less thinking by “just write the code and see if it works”. This helps a lot in the early stage of development, though not that much.

Re-learning muscle memories

The hardest thing for me in this entire learning experience is to learn proper 10 finger typing without ever looking to the keyboard. It’s frustrating because I need to think for every keystroke and keep fighting myself to cancel my previous muscle memories. This also hard for me because I never use my pinky fingers at all, and forcing myself to use it just feels extra uncomfortable.

To be honest, if your way of typing feels comfortable enough for you, I don’t think you need to learn this. As long as you can already type without looking at the keyboard and use at least 7 fingers to type, you will be fine. I see a lot of people like that that can type a lot faster than me. I myself feels that my old way of typing feels weird and inconsistent, and most of the time only use 2-4 fingers to type, so I decided to learn proper touch typing anyway.

From all tools and websites that I tried, my recommendation to learn touch typing is to use Keybr. It start small by introducing only a few letters to start with, and gradually add more as you type faster. I reached 30 WPM with touch typing after unlocking all the letters in Keybr.

Here are some tips for using Keybr to teach yourself touch typing.

  • Never look into your keyboard. Keybr provide you with a keyboard layout that you can see in your screen if you forgot the key location and which fingers that you need to use for that key. Always look to that instead looking below to your keyboard. This will force you to memorise the key location, and eventually you will remember the entire keyboard layout and type without even thinking.
  • Go to setting and scroll down, then untick “Stop cursor on error” and “Forgive errors”. The first key that you need to remember by muscle memory is backspace/delete key so you will be used to fix your errors and make it easier transition from Keybr to write anything for your jobs or your everyday activities.
  • Remember that it can be a lot more frustrating that you expect. Overriding muscle memories is hard, especially for typing that you usually do without thinking at all. Many tutorials for faster typing usually just mention “learn touch type” without any explanation and make it looks like an easy thing to learn. It is not. It’s fine if you frustrated. Just stop writing for a while and take your time. It is completely normal that your speed would drop to single digits for a while, but believe in yourself that you will gain your speed back and more.
  • Consistency is the key. It is better to do quick 5 to 10 minutes of training everyday than a burst 1 hour training but only once every week. Try to train daily. Set a time if you need. In Keybr you can set a daily goal to help you track this. Start with 5 minutes and add more as you grow more comfortable with typing.
  • Focus on accuracy. Don’t try to type faster yet. Accuracy is a lot more important on this stage, as trying to type faster without accuracy would just means typing wrong things faster. You will be surprised how fast can you be when intentionally slowed down a bit to get more accuracy compared to just push your typing speed and makes a lot of typos.
  • Try to touch type as much as possible outside of your training session too. Use if for work, chatting in social media, writing emails, etc. In the end you want to touch type on anything, not just when on keybr.com

It took me almost 3 months of daily 5-20 minutes of training to be able to unlock all the letters in keybr.com. After I unlocked all the letters and able to consistently type without looking into the keyboard, typing becomes a lot more enjoyable for me. Now I can see typing lessons like Keybr not as a training tools, but a minigame that I can enjoy doing daily.

Gotta go fast(er)!

So with touch typing learned, we can focus to typing faster. Again, there is a lot of tools that you can use to train yourself, but I use mainly 3 website for this:

  • I keep using Keybr but with punctuation and capital letters enabled. I used this until I am comfortable enough to train by typing actual text then transition to use Typeracer.
  • I use Monkeytype to train typing faster, using format of 10 words typing test for training my burst speed, and 1 minute typing test which many use as baseline comparison when comparing WPM to other Monkeytype users. There is also “Quote” format to learn capital letters and punctuation by writing actual quotes, similar to Typeracer.
  • Ngram type for getting comfortable to type common english grouping of characters. I don’t train much on this, but it helps a lot to train this when my accuracy drops when I’m trying to push my speed.

One thing that I feel helps with the training is to alternate between focus on speed and focus on accuracy. But other than that, I don’t have any tips on this stage. It just a matter of consistency and volume of training at this point. Some people can learn fast typing faster than the other, but don’t let it demotivate you. It took me 1 year (although not consistent) of training to push my speed from 30 to 70-ish WPM, and I believe you can do it faster.

My Monkeytype history in the last 12 months, from June 2023 to May 2024, mostly daily training except empty history on June, October, and January


One more thing. There is one big downside of learning to type fast! If you are not careful, you will soon get in touch with the bottomless rabbithole of keyboard hobby, as I already fell to it. But that is another story for another time…