Since I was about four years old, I have been using computers and I simply never learned to touch-type as I was growing up. Instead, I always just used the hunt and peck method. If I am honest, I have even felt embarrassed in front of people in the past because I could not touch-type.

It is something that I have wanted to do for many years. For me, learning a completely new layout was the trick that gave me the focus and desire to finally learn to touch-type. I have tried a few times to learn in the past, but I quickly got frustrated and switched back to my old ways. Having a Colemak layout meant I couldn't do that, and it forced me to stay with correct finger placement on the home row.

At the start of this journey, I typed at around 53 WPM (words per minute), which is typically above average. I can do that without looking at a keyboard, I have managed to get by with that relatively ok speed for many years. Still, I wanted to learn to touch-type and become a faster typist. I want to type at a minimum of 120 WPM, I am not there yet, this is my journey so far.

Why do I want to learn to touch-type and why now?

Typically the more senior you become as an engineer, the less time you have to write code. This is because your responsibilities change. As a junior, you are typically handed tasks and work on those tasks the entire day. As a senior (as you become more experienced), you will naturally start to write and review those tasks. This is usually the first sign that you will be writing less code. Typically you are expected to still write the same amount of code, but my point is your day to day work has already started to change.

This pattern generally continues, the more experienced you become, the more involved you will be in tasks that are not coding. You will find yourself writing process and specification documents, software documentation and breaking down tasks in tools like Jira. Spending more time in meetings talking about code rather than writing code and making notes.

You will also likely have an endless amount of emails and Slack messages to respond to. Of course, some engineers avoid this path but maintaining a constantly increasing salary usually means taking on extra responsibility, which tends to mean writing less code.

At least, this has been my personal observation. As a Principal Front End Developer, my job is more about increasing the productivity of several cross-functional squads rather than just thinking about and writing code. I still code, I still create POCs and I still engage with the codebase daily but my day to day work has shifted towards thinking, communicating and planning how we will all work together as a collective of engineers.

Typing faster will not allow me to code any quicker

I don't believe being able to type at 120 WPM will help me write code more quickly. The plan is to do all those other non-coding tasks quicker than I do today, and I think I can do that by simply by learning to type faster.

If I can increase my typing speed and accuracy as well as my ability to flow continually when typing then I can gain some additional time for writing blog posts and coding more.

QWERTY vs Dvorak vs Colemak vs Workman

I won't go into detail about these other layouts, I mention them so you can do your own research. I have always been interested in the idea of learning an alternative layout ever since I heard about Dvorak many years ago. As a programmer, I spend a lot of time moving, copying and pasting code. One of the reasons I chose Colemak is that the copy and paste functionality using Z, X, and C stays in the same location. Also, the layout is not so different to QWERTY. It is slightly optimised by moving the more common keys to the home row.

Should you switch to Colemak?

Some people on the Colemak subreddit reported losing their ability to type using QWERTY after learning the Colemak layout. I was not worried about that because I do not touch-type on a QWERTY layout. I did not believe my mind-muscle memory would be affected. If you can already type at a decent speed on QWERTY and you're worried you may lose that skill, then perhaps just practice improving your QWERTY skills.

Let the journey begin, hunt and peck at 53 WPM

At the beginning of this journey, I took a few quick tests, and my best typing speed was 53 WPM. In theory, if I can get to 120 WPM, I can do all of those other typing tasks twice as quickly.

I have seen videos (one of the things that inspired me) of people typing at 200+ WPM. This is 4 times faster than my current typing speed. Potentially, I could do 8 hours of work in 2 hours just by typing quicker, I know it is not as linear as that, but I hope you see my way of thinking.

My progress in 30 days, from 18WPM to 33 WPM

The first month was tough, I did around 30 minutes of practice each day using keybr, towards the end of the month, I added Monkey Type to my learning. Keybr was great at the beginning for learning key placement, but striking random keys felt odd.

I started to use Colemak at work by day 11, but it was not easy and felt very slow. Occasionally I would switch back to QWERTY when I needed to work quickly.

Here was my progress for the first month:

DayTop Speed (WPM)Average Speed (WPM)
124.618.6
523.017.8
1023.220.1
1528.421.0
2031.223.6
2534.228.0
3038.833.2

My first few days in Visual Studio Code

I really struggled using the new layout in a work environment. One of the tips suggested by the community when learning was to "never look down at the keyboard". I found this very hard and almost impossible, so I added an onscreen keyboard instead as a guide to help me visualise where keys were when coding.

Colemak in VSCode

After 90 days - 60 WPM using Colemak

By day 90, my daily practice had weened a little bit, I became less consistent with practice but used Colemak for most of my work day. I am now typing at a better average speed than when I started. I can still type with QWERTY using my hunt and peck method the same, which is useful when I do not have a Colemak layout available.

I completed just over 1000 tests (60s) on Monkey Type. My total typing time was 16:41:35, which is approximately 15 minutes per day. I managed to hit 60 WPM with 97% accuracy.

60 WPM

At this point, I introduced "punctuation", and you can see from the chart below that my speed dropped for a few days but then more or less returned to it's upward trajectory.

WPM over Time chart

Quick switching layouts + Keyboard Modifications

After starting to use Colemak at work, I began to modify my keyboard settings and layout. This allowed easier switching between QWERTY and Colemak and some other improvements recommended by the community.

For example, I can fast switch between both layouts. I re-mapped some keys to make deleting content more comfortable with Caps Lock instead of Backspace and I use the NEIO keys as arrow keys when holding Left CTRL.

In macOS I changed:

  • Preferences > Keyboard > Show input menu in menu bar
  • Preferences > Keyboard > Shortcuts > Select next source in input menu (Ctrl+Space)

I installed Karabiner Elements and:

  • I remapped caps_lock to delete_or_backspace
  • I remapped right_command to left_control
  • I made it so I could use left_control + NEIO as arrow keys

Download Karabiner Elements for free - "A powerful and stable keyboard customizer for macOS"

My Keychron K6 with black PBT key caps

In the first month I also purchased a Keychron K6, which is a great entry level keyboard that works well with both Mac and PC. It came with hot-swappable Gateron brown switches.

By the end of the first month I removed the stock keycaps from A-Z and replaced them with plain black double-shot PBT ones (which I found on AliExpress), I liked how it looked with the grey and red keys so I left it like that.

Keychron K6 with all-black key caps

That's a Wrap!

Whether you learn a new layout or simply become faster at typing QWERTY will be a personal choice. Personally I think increasing your typing speed is a worthwhile journey for any person who spends a significant amount of time on a keyboard each day.

Below is a list of links and resources if you are interested in learning the Colemak layout.

As always, if you have any questions feel free to drop me a comment.

Colemak Resources

Typing Practice

Keyboards Mods