Posted on December 30, 2015

I have suffered a known existential crisis this December. It was mostly due to my disappointment with my Haskell skills, not being able to represent abstractions in a sufficiently polymorphic and refactorable way (yet tightly enough to benefit from using type system).

However, it was coupled with general feel of disappointment in myself - from lack of skill in playing StarCraft, to, well, not able to type with nine-ten fingers, using only five-seven (on a good day).

This discovery correlates, yet is not caused by the fact that I have recently obtained my first mechanical keyboard. I have decided to check if I know how to type after I have followed a link from an old (classical - ?) blog-post, referenced recently on Twitter by Chris Allen, called “Teach, Don’t Tell”. The name of this article was pretty pretentious, it was called “Programming Dirtiest Little Secret”, or some such.

This blog post states, that one of the most important, or rather, fundamental skills a computer programmer can have is touch-typing. Go ahead and read it. It’s a funny little rant.

That reminds me of a recent meeting I had with one of my employees. I thanked him for the hard and productive work and said that I was fairly impressed with the pace the project develops. To what he answered something along the lines of “Well, it’s my other colleague’s effort, really. While I think about approaches to learn that some of those will never work, he tries things out with code, makes improvements and come up with solutions as good as mine, but faster.” Needless to say that that last colleague of ours has a very high MMR in DotA and amazing typing mechanics. I wonder how much of that has to do with him being amazing programmer.

So I, naturally striving for best in my life, have decided to pick touch-typing as well. For one, because I find it humiliating for a computer programmer or a businessman to be suboptimal about things (especially things they do daily). If another reason is needed, the guy with the rant-blog said that it’s going to be easy, so why not.

My initial approach, the one that I took yesterday was to spin up good old GNU Typist and start meticulously doing exercises, one by one.

I find the tutor-ish style of gtypist most friendly and fun, however I find the lack of real-world typing mode (where backspace allows you to fix a mistake) most disturbing. See, if I miss a key, especially in the beginning of studying touch-typing, that means that I have a trouble with locating this key on the keyboard because of unusual finger placement. What’s a better way to force me to learn the position of this key and which finger is responsible for pressing it except for forcing me to go back for a couple of letters in order to try to press the same letter again. If I am to fail, then again. Over and over till I learn its position.

This is why I have decided to force myself to write texts by touch-typing and this one, as you might guess, is the first one of those.

I think that by combining knowledge about the culture of typing, exercises from gtypist, and writing texts using Backspace key frequently, I will get from 30-40 WPM I have since I switched to touch-typing to the old 60-70 WPM in a week or so.

Till then, I’ll tank the damage of severely increased text-writing times, which will include not only blog posts or personal notes, but also business e-mails and such.

I’m not sad. I embrace the failure. And so should you.

Dec 30th, 2015