
Kung Fu Typing - Keyboard Finger Movement Diagrams - movember
http://www.datapointed.net/2010/01/typing-styles-compared/
======
dmbaggett
As an aging coder, I have to inject a PSA: be very careful here. Learn to type
properly and use a good ergonomic keyboard like a Kinesis. Many of the most
productive programmers I know have had to work through RSI issues from typing
too much and/or improperly. Certain programs with hand-stretching key bindings
like Emacs are especially dangerous without a keyboard like a Kinesis that
eliminates the use of single-handed Ctrl-<Key> combinations. (The Kinesis puts
Ctrl/Alt/Meta on the thumbs so you never stretch your hand to type
<Modifier>-<Key> combinations.)

One reason I migrated away from C++ and towards Python over the last 5 years
was the verbosity of C++ -- it was killing my hands (#). It really does add
up. The absolute worst was when I was writing the rendering pipeline for Crash
Bandicoot in MIPS R3000 assembly: the sheer verbosity difference between
assembly and C was enough to destroy my hands, to the point where, in the home
stretch towards shipping Crash 2, I was typing with my fists clenched, holding
two pens and pecking a key at a time. I didn't really "get over" the RSI for
another five years. Even now, I have to _stop typing_ when I notice I'm
getting fatigued, or I will get right back into serious problems. And this is
far from unique; as I said, lots of coders my age have these issues.

 _Do not_ ignore hand/wrist pain. _Do_ learn to type properly. _Do_ invest in
an ergo keyboard. If you are a coder, your ability to type is utterly critical
to your livelihood and well-being. Don't mess around with it.

(#) C++11 makes this a lot better.

~~~
sukuriant
As a complete aside,

You worked on Crash?! That is truly awesome. It's not very often that I get to
read a story from someone that works for a company I respect very much, on a
series that has many happy moments in my childhood.

------
irahul
> The result is a compact, muscle-memorizable repertoire of just over 50
> unique motions in total.

Typing for me isn't much about speed(that's an added advantage). The muscle
memory and ability to type without looking at the keyboard alone is worth
learning it even if you experience a slowdown in the beginning compared to
your one tap, two tap or what have you.

I am a bit surprised typing isn't emphasized enough. Techie or not, if you use
computers a lot, learning to touch type is worth it, specially considering
that if you aren't a techie(i.e you don't need all the special characters), it
doesn't take much time to learn. For anyone trying to learn touch typing, I
would suggest stick with the rule 1 - concentrate on accuracy, speed will come
with time. And if you are a programmer, don't worry too much about speed. You
generally don't type code at full speed anyway.

~~~
tehwalrus
THIS. I got a Das Keyboard with no markings just to finish learning touch-
typing (I had done half a course at one point, so I sort of knew what to do..)

Speed is secondary to not breaking your focus/train of thought mid-sentence.

~~~
dkersten
_I got a Das Keyboard with no markings just to finish learning touch-typing_

Me too.

I recently also noticed that if I close my eyes while typing, my accuracy is
very very close to 100% (ie in every typing test I've taken to try it, I got
100%, but in real-life typing, I do make the occasional mistake) while with my
eyes open, its anywhere between 80% and 99%, depending on how tired I am.

------
moonboots
I can only imagine how much hairier these diagrams become if generated from
code instead of English/html. Even for the best case scenario of "The Robot"
combined with an "ergonomic" layout like dvorak or colemak, the right pinky
area would be a tangle of deep purple. If the diagrams were updated to include
backspace key usage, the mess only gets worse.

I couldn't find a typing tutor that addressed the difficulty of typing the
symbols in code, so I created a webapp called <http://typing.io>. It allows
programmers to practice typing open source code instead of English or drills.

------
Swizec
I taught himself how to type and was lucky enough to use a split keyboard for
a while - really awesome for improving technique. My technique is probably
somewhere between touch typing and "The Robot".

But the 110wpm rate is worth it. And people look funny when I blast away at
the keyboard without a screen in sight (I often type on a bluetooth keyboard
attached to either ipad or iphone)

edit: The funniest result of being a quick typist is that I use copy+paste
less than I did a few years ago. Often the context switch between typing and
selecting is too much work and it's quicker to just type things twice.

~~~
irahul
> My technique is probably somewhere between touch typing and "The Robot".

How do you learn "The Robot"?

~~~
Swizec
You touch type without moving your fingers back to home row every time.

I especially do this with my index fingers who will often jump from, say, Y to
U directly without hitting J in between. It looks very funny because they
often hover above the keyboard because of this.

But I do tend to move my wrists too much when typing.

~~~
Cthulhu_
I learned to touch type with the home row thing, but I never find my fingers
really going back to the home row, they just go to the next letter that needs
to be typed. I guess with experience comes automatism, which in my case
doesn't always involve going back to the home row after typing a letter. Or
something.

~~~
irahul
I think it's quite common. I have seen friends type. And everyone who is
commenting on this thread and touch types goes to home row only to take a
break. There is no home row between two consecutive letters unless they
involve letters on the home row.

------
entropy_
I never formally learned how to type. I had no clue what "home row" meant or
where you're supposed to keep your fingers at any point in time.

However, I do touch type -- I never look at the keyboard while typing, even
for symbols used when programming and I use almost all my fingers, except
perhaps my left thumb, it stays on the space bar but I always use my right one
for that. And I just tried an online typing test. When I strive for 100%
accuracy, ie, I go back to fix mistakes when I notice I made a typo I got
75WPM. Also, I usually type faster than I do when taking these tests because
the slowdown for me is in reading not typing because many of them have
nonsensical texts(not as bad as "Green ideas sleep furiously" but nonetheless,
probably something I wouldn't write naturally).

I also don't even remember going through a "hunt and peck" phase when typing.
I thought this was natural and all people who use the keyboard a lot evolve
into something like this naturally.

Edit: I just looked at the definitions for some of these things and which keys
you're supposed to hit with which fingers and I noticed that I usually keep
the keyboard slightly to the left side so that my right hand is at an angle,
not straight. So instead of splitting things vertically between my fingers on
the right side it's a bit different. For example I hit the "Y" key with my
middle finger and I move my entire hand down to hit the "," with my index. So
it's definitely suboptimal but it's good enough for me.

------
loup-vaillant
I'd like to see equivalent diagrams on a Dvorak (or colemak) layout. The
"touch typing" diagram would be much closer to the "robot" one, demonstrating
you don't have to be a robot to type efficiently.

Oh, and It'd be cool to have non-slanted keyboards. My hands don't both lean
on the left. <http://loup-vaillant.fr/articles/better-keyboards>

~~~
orjan
You should check out TypeMatrix[1]. I've been thinking of getting one for a
couple of years now. I guess I'm just being lazy...

[1]<http://typematrix.com/>

~~~
hailang
I wanted to buy it until I read this:
<http://a3nm.net/blog/typematrix_review.html>

Dvorak is cool, but you don't need typematrix to feel its benefits. I use
normal keyboards to type dvorak, all you have to do is to change the keyboard
layout.

~~~
orjan
Thanks for the link. When I first discovered TypeMatrix, there weren't many
reviews of it. By the sound of it, maybe I should save my money for something
else.

------
Natsu
> As for Yours Truly, teenage peer pressure kept me from riding the touch
> typing train. Per the sexist suppositions of way-back-when, before computers
> went mainstream, keyboards were for secretaries, and secretaries were
> female. Dudes just didn’t do that kind of thing.

I took the hard way out. I took "Secretarial Office Procedures" in high school
just to learn typing.

~~~
tommorris
When I was a kid, about 9 or 10, my mother taught me to type. As a teenager,
she had gone to secretarial college and had become a legal secretary typing up
documents for lawyers before getting married.

I learned on a manual typewriter. I was the weird kid who typed up school
reports on a manual typewriter before computers were widespread.

Along with basic sewing, it's one of the most useful things my mother taught
me. We should teach every schoolchild to touch type.

~~~
Natsu
It was incredibly embarrassing at the time, but I'm very grateful to have
learned touch typing.

------
kstenerud
I'm a bit scared of changing my typing style now...

I started programming at 8 years old, doing the two-finger method, which
eventually evolved into a modified 3-finger left, 2-finger right, with pinkies
for modifier keys. I took a typing course in high school and did well, but I
went right back to my old style afterwards. I've now been doing this for 30
years. My typing isn't super fast (maybe 70wpm), but I've also never had any
wrist pain, regardless of the keyboard or sitting style I've used. My
primitive typing style never allows for contortion moves, and I'm worried that
if I do move to a more proper style, I'll end up with the wrist pain that
everyone talks about...

------
Cilvic
Do I miss the explanation how they created the diagrams? Would be cool do it
for one self.

------
PeterMcCanney
After 18 years in front of a keyboard I'd hoped my typing would be better than
it is. But I'm stuck between a "Pointers with Thumbs" and a "Von Style"

Does anybody have recommendations for a good online touch type training
program? Specifically for developers.

~~~
sukuriant
Put your hands on home row and keep your eyes on the screen and just go, with
discipline... it's how I learned, sorta. A friend and I competed to learn how
to type without looking.

~~~
irahul
I won't recommend it. You sure can just go to a shallow swimming pool, flail
around and learn swimming, but re-discovering first principles is distracting
and might de-moralize you.

I don't remember which one I used when I learnt(it was about 6 years ago and I
was using windows at that time), but I would say use one which teaches basic
letters, n-grams, symbols and integration. Muscle memory is built over time
and it's hard to override. Unless you believe using wrong fingers give you
some sort of advantage, why would you want to learn the wrong fingers when you
can very well learn the right ones with the same level of effort(your comment
about y and b)?

~~~
sukuriant
I'm just giving anecdotal evidence for what worked for me; and TypeRacer puts
me at 90-110 wpm, which is far more than I'll ever need for my programming
work.

Then again, if he's actually asking for a program to help him because he
actually wants a program's help (as opposed to thinks it's the only way he can
learn), it'd be better to go with a program. What I was encouraging was that
you didn't have to have a program to help you learn how to type. Also, just
using all 10 fingers on the keyboard all the time, and having them rest on or
near home row, even when you have to look down occassionally to see which
finger should go after which key, and where that key is, is a good step toward
improving as touch-typist.

------
gprasanth
And here I am, still desperately waiting for _the perfect_ speech to text
converter that just removes need of having to type text entirely. I can see a
future where programs are narrated.

~~~
irahul

        #include <stdio.h>
    
        int main(void)
        {
            printf("Hello, World!\n");
            return 0;
        }
    

Why would I want to dictate that? "Hash include less than sign(do I mean "less
than sign" or "<") stdio.h greater than sign newline(do I mean actual newline
or to print newline?) int main open parenthesis(actual or sign)...."

And you are assuming if there is a perfect speech to text converter, it's
automatically better than typing. I don't see myself using one for most of the
tasks. Speaking is too distracting.

~~~
djisjke
Well, C is made for keyboards. In fact, every programming language I can think
of is, so the ones who write with tts must create new languages.

------
felipebueno
"Everybody was kung-fu typing | Those cats were fast as lightning | In fact it
was a little bit frightning | But they did it with expert timing..."

------
jobigoud
If you're going to touch type, you should use a layout designed for it, not a
layout designed to prevent typewriter from breaking.

Dvorak, Bépo, etc. Much easier on the fingers. Then you can do the "robot"
diagram because it's sort of built in your layout. Even for programming it's
much better.

~~~
rimantas
Placebo, at best.

