When we were 16 years old my friend and I spray-painted our keyboards in camouflage colors. We had just seen Hackers, wanted to copy what we saw, and – yes, 16 years old – didn’t think much further than (1) get spray paint (2) spray-paint the keyboard. Only after the paint dried did we realise we can’t read the letters on the keys anymore and, well, guess we’ll have to now type blind.
Up until then I had been typing with two to five fingers and was reasonably fast, but I still had to peek at the keyboard when typing numbers or special characters. Now, with a camouflaged keyboard, I not only was able to type undetected in the woods should such a need arise but also learned to type without a lot of looking down. Well, mostly. Sometimes I still had to tilt my head and squint and try to make out a letter beneath the camouflage. The spray paint also slowly came off, but not on the upper rows, where I needed the letters on the keys the most.
For the next eight years that’s how I typed and it was actually pretty fast. I’m pretty sure I could reach 100 words per minute, sometimes more. Then, two things happened.
First: I used a MacBook for the first time. My wife’s – back then my girlfriend – all-white MacBook from maybe 2008, or 2009. Beautiful computer (I’ll never forget the “breathing” LED when it slept.) I was very confused by the location of the ctrl
and alt
(wait, option
?!) keys. Not only because I hadn’t grasped yet that everything revolves around cmd
instead of ctrl
on a Mac, but also because on a German keyboard layout you have to use alt
and shift
and alt gr
(nowhere to be seen on the MacBook layout) quite a lot.
On a MacBook keyboard things seemed even harder. Here, tell me how to type {}/\@
on this:
Exactly.
I can’t remember whether I tweeted it out or whether I mentioned it in conversation, but Robin told me that most programmers use an English layout on their MacBooks. Wait, what? I couldn’t believe it, never hard of such a thing. An English layout? How would you type umlauts? How do you type Motörhead or Käsenüdelchen or “heute trinken wir Maß”? So many questions and so much fascination: using a special keyboard layout because you’re a programmer? I had to look into this.
When I then used an US English layout for the first time I had one of those moments in which I saw it all laid out before me: why the world is the way it is and how it became that way. A lightbulb moment and in its afterglow I put all the pieces together: so this is why it’s http://
or why email addresses have an @
in them or why it’s C:/Programs
or the ~
for the home directory or why there are so many curly braces in programming languages – because it’s easy to type on a US English layout!
On a US English layout a {
is a shift-[
and not a opt-8
, a @
is a shift-2
and not a opt-l
, a backtick is right there, and a \
is not a pain in the hand to type. And turns out that umlauts are easy too on a Mac, you can just use the option key.
Not a year later I bought my first MacBook – a 2011 MacBook Air, great machine – and ordered it with a US English layout.
The second thing that changed my two-to-five finger typing was an avalanche of small things that lead me to re-learn typing completely.
First small thing: Robin and I were working in a coworking space and a guy sitting next to us said “have you ever realised you only type with 2 fingers on one hand and 3 on the other?” Huh, I guess I did, but I never felt this weird about it.
Then I got really into Vim, even started using vim-hardmode, and wanted to get really good at it. I also watched a lot of Destroy All Software in which Gary Bernhardt types really fast, with high accuracy.
It wasn’t that I wasn’t fast typing the way I did, but the lack of accuracy frustrated me. Every time I had to type a lot of special characters things went off the rails. Not great when you want to get really fast at using Vim and writing code.
Time to learn to type properly. 10 fingers, no peeking, correct technique for all characters. Cue the training montage music.
First I bought Keys.app and started practing with it every morning before work. 30min every day. Just mindlessly typing what the app told me to type. Wax on, wax off. Shift left, shift right. At work I still sometimes fell back to my old system, but less and less as the weeks went by.
Then – this is the part in the training montage where the sax or guitar solo starts – I started using typing.io to really practice writing code using all 10 fingers. Yes, I actually sat down every day and typed out parts of the Linux kernel or Redis, just to practice typing.
Big finale of the montage (sax/guitar are still soloing in background, but whole band came back in): I started using 10fastfingers to get the speed up. I did this all day long – in the mornings before work, while at work and waiting for tests to run, in the evening to relax.
The end result of all that – unchanged for the last 10 years – is that I can now touch-type pretty much perfectly (yes, I alternate hands when using the shift
key, depending on which other key needs to be hit), don’t have accuracy problems with special characters anymore, and easily reach 130 WPM right after waking up – should the need arise.
Fav post so far!
I was shocked Dvorak didn’t make it into this story! Have you ever considered it? Absolutely life changing for me and relieved a lot of wrist pain.
I also assume you remapped caps lock to Ctrl, right?