Touch Typing

Getting along without touch typing is possible. But learning touch typing is usually a big productivity boost, reduces stress and may prevent typical keyboard induced health risks. This article describes some learning approaches and optimization opportunities.

Getting Started

The first thing to learn is to place the fingers in a basic position on the keyboard, i.e. thumbs over the space bar and the other fingers on the main keys of the home row (i.e. A, S, D, F and J, K, L, ; keys with most US-like keyboards).

There are free and open source training programs for learning the set of keys each finger is supposed to hit. A good one is KTouch. Old versions even used to include lessons from the commercial Duden Tipptrainer. (This should be legal, because touch typing patterns likely don't reach the threshold of originality. Ask a lawyer if in doubt.)

The purpose of a training program is to properly build up some initial muscle memory. After that, practice in the normal environment (e.g. coding, email writing, etc.) automatically improves the muscle memory.

Besides reading the Wikipedia article on touch typing that contains some helpful descriptions and figures, there are even short books/booklets on that topic. Nowadays probably hard to get in book stores, but you may find them as an accessory of an old mechanical typewriter (cf. your grandparents' attic or a garage sale). They can be surprisingly entertaining, see for example the short manual by the Naumann Erika mechanical typewriter company (published 1930 or so, in German).

Advanced Training

When touch typing upper case characters, it makes sense to hit the shift modifier key with the other hand to avoid weird gestures, which thus increases speed and reduces strain. This can be trained with tutor software that ignores shift key events for keys from the 'wrong' keyboard half.

Even more effective would be a modified keyboard driver that implements this behaviour, all the time.

I'm not aware if anyone has implemented something like the above.

Touch typing is all about blindly typing. If you have problems with that you can remove all the key labeling with a rotary tool or something like that. There are even keyboard models without any labels.

Optimal Layout

When you are touch typing you should not/don't have to look at the keyboard. Thus, you are free to choose any keyboard layout you want. It doesn't matter what is printed on the keys.

One main design goal of the standard layouts was to prevent jams in mechanical type writers. Computer keyboards of course don't have to care about this, thus, modern layouts more optimized for faster typing (and physiology) are an alternative. For example Dvorak or Neo.

Obviously, one big disadvantage with those alternative layouts is how radically different they are. Imagine building up a lot of muscle memory and then having to type an email in an internet cafe. This is nothing compared to having to type on a German layout if you are used to - say - US layout.

Perhaps Dvorak/Neo only make a significant difference (if any) when you really have to type a lot of prose text very fast. Like transcribing tapes or something like that.

For coding, the US Layout (QWERTY) is the number one choice. The syntax of many programming languages is optimized for the US layout. That means special characters you need a lot like []{};/\: are easy to reach with the US layout.

Also, if you use a real editor like Vim, all the command sequences and shortcuts are optimized for the US layout. With Vim and a US layout you don't even have to care if your keyboard has an escape key or not. You just hit Ctrl+[ which is conveniently to type on that layout. No need to remap Caps Lock to Escape.

Compose Key

For non-US characters like Umlauts, the Compose mechanism (natively available on Linux/UNIX) is a convenient solution when using the US layout. For example, to get ü one just types Compose then Shift+" followed by U. Most keyboards don't come with a dedicated Compose key but Linux/UNIX allows to configure another key as compose - e.g. the right-alt key. One-liner for Gnome-Shell:

$ gsettings set org.gnome.desktop.input-sources xkb-options "['compose:ralt']"

(alternatively, you can use the gnome-tweaks GUI)

There are even tools that implement Compose behaviour on Windows. The opensource WinCompose works great.

Ergonomic Keyboards

The common problem with standard keyboards is that one is forced to turn the wrist joints and/or shoulder joints into a non-optimal possibly injury inducing position.

The solution: a keyboard that is divided into two halves that are placed with some space and an angle to each other such that the wrist/shoulder joints can be in a natural position.

One example of this design is the Kinesis Freestyle 2 which has the big advantage that one is very free to adjust the angle and the space between the 2 halves. Also, it isn't too expensive. Nowadays, they also have a similar model with mechanical switches (Freestyle Pro), although the switches don't necessarily make much of a difference, ergonomically wise.

Note that some ergonomic keyboards (and even non-ergonomic ones) come with a wrist rest. This feature is easy to misuse, i.e. it is intended to be used only when taking a break from typing. Always putting the wrist onto the rest during typing may induce injuries.

Concluding Remarks

If you don't already touch type, consider learning it because of the advantages. I can't recommend it enough. If you want to learn touch typing, consider learning it with the right layout from the start. It' the same effort. If you program I strongly recommend to use the US layout.