Wednesday, July 7, 2010

Learn To Type Week!

(posts for the week:
)

As I've traveled around and programmed with a lot of different people, I've noticed a really frightening thing: in general, programmers don't type correctly. I'm not sure why this is, but it makes me sad. Most of the people I meet that don't touch type still can bang away a lot of words a minute, but if you watch their heads, it is like a bobbing robin, constantly looking down to see where their hands are. What a waste of motion and context switching.

Typing is a fundamental skill for programmers. We spend our days manipulating text, so it makes sense that you should have it mastered. In a way, it would be like hiring a carpenter and seeing them flailing around with the screwdriver, missing the screw sometimes, maybe poking their finger. What would you think? That's how it looks when you are hunt-and-pecking. Embarrassing!

So, I thought I would put a challenge out there: Learn To Touch Type! For the most part, you know where the keys are, it is just a matter of quieting your hands down and learning the home row position. I wager that, for most people, it would take about a week of daily 30-minute practices. A Pomodoro! That's all.

In fact, why not do it next week, July 12th - July 18th. I declare next week to be "Learn To Type Correctly" week (hashtag: #learn2typewk)! If we do it as a community, supporting each other, then it is more likely that we'll shed the baggage of bad typing skills. Come on, you can do it! Blog about it, twitter about it, get the word out. Everyone will feel better, and imagine your pride when you sit down at a keyboard and don't ever have to look at your hands.

But, Corey, you say, I thought typing wasn't the bottleneck. No, it isn't, but ineffective typing can be. Having to look down at your hands disrupts your flow. When you can just let the words come out without thinking, you will be much more effective.

There are plenty of online typing courses that you can use. Here's a couple I checked out:

This one is very structured, using extreme repetition to push the positions into your head. Try it out.


This is one of my favorites. I'm not sure about the actual lessons, but the games are a lot of fun (I like Keyboard Revolution).


This is a step-by-step lesson plan. You have to register, but it keeps rankings and lets you print out certificates.

This is a fantastic site where you get into 'car races' against other online opponents. Think of the old horse-racing games at the carnival with the balls that you throw into holes to make your horse go. Now, instead of horses, think cars, instead of balls, think your keystrokes. (BTW: I'm Corey Haines or coreyhaines or coreyhaines@gmail.com on typeracer.com, if you want to friend me)

This is just a short list. If you don't like them, feel free to use another.

14 comments:

  1. Great idea! I'm pretty good at typing text but i'm hopeless at the symbol keys and always have to look. I will spend the week consciously learning to touch type numbers and symbols. I will also spread the word! :D

    ReplyDelete
  2. I tell everyone that the most important lessons in my entire career was 10th grade typing.

    Typing isn't the bottleneck (1)


    (1) if you can type fast/well enough.

    ReplyDelete
  3. Good idea, Aimee. We can always get a little better at the fundamentals. Let us know how it goes!

    ReplyDelete
  4. Yeah, Mark, I remember my 10th grade typing class. I was a hunt-and-pecker before that, and, while fast (around 60 wpm), everything became so much smoother when I learned to type from the home row.

    ReplyDelete
  5. Good idea, Corey. I too am amazed at the number of non-home-row typing programmers. I truly think the only practically useful high school classes that I took were Typing I and Typing II!

    ReplyDelete
  6. While on the subject of typing: a lot of us programmers or other computer types spend well upwards of a thousand hours a year typing, but somehow end up doing it on a $13 bargain-basement keyboard. Mechanics and tradespeople think nothing of spending thousands of dollars on high-quality tools because they need them to get their work done effectively. We should take the same tact, especially with things like keyboards that we use all day, every day.

    I use a Kinesis Advantage, and it's done wonders for both my comfort and typing speed. A lot of folks like the Happy Hacking keyboards, the TypeMatrix, the good ol' Model M, or its modern-day cousin.

    http://www.kinesis-ergo.com/advantage.htm
    http://en.wikipedia.org/wiki/Happy_Hacking_Keyboard
    http://www.typematrix.com/
    http://en.wikipedia.org/wiki/Model_M_keyboard
    http://www.daskeyboard.com/

    ReplyDelete
  7. Rick,

    Good point on the keyboard. I carry my own keyboard around, as I've grown accustomed to its awesomeness.

    ReplyDelete
  8. I learned to type well with Dvorak. For large chunks of human language text it kicks Qwerty's ass.

    But for programming it sucks. Programming requires more Shift-Ctrl-Key than actual typing, and I couldn't learn the mapping between expected key, and whats printed on the keyboard properly it slowed me down a lot. And with pair programming it can be a real pain in the ass to switch back and forth.

    So I ended up switching back to qwerty, and doing the 3 finger thing. Doesn't seem to slow me down developing, but it does slow me down when writing emails and blogs.

    ReplyDelete
  9. And if you can already type, learn colemak* :)
    I've got a daskeyboard, with no blank keys. That sorts out any kinks you've got pretty quick!

    * http://colemak.com/

    ReplyDelete
  10. Great post :) It boggles my mind to see people who have spent 8+ hrs a day in front of a keyboard for years and years without teaching themselves proper typing technique. Its hard to not draw the conclusion that if a person can't type properly, they're probably not a very good developer either.

    Once they've learnt touch typing, the next move should be to start eliminating mouse to keyboard context switching by learning keyboard shortcuts.

    Chad Myers R# ninja video, where he codes the FizzBuzz kata with his mouse disabled, shows what great keyboard skills can do for you: http://www.viddler.com/explore/Lostechies/videos/1/

    ReplyDelete
  11. thanks corey, you're awesome.

    for touch typists who want to improve, I recommend typeracer.com's "instant death" mode -- the idea being that our worst enemy is the backspace key. http://play.typeracer.com/?universe=accuracy

    even their "normal" race mode is fun, tracks your progress over time, and supports multiple keyboards (I'm working on my french typing this way)

    ReplyDelete
  12. And learn programmer Dvorak while your at it:
    http://www.kaufmann.no/roland/dvorak/

    ReplyDelete
  13. Corey, I used to have this spiffy keyboard that even had a scroll wheel to the left, and two dozen programmable keys, and all the bells and whistles any geek would kill for. Turns out I could no longer work or type on those "normal" keyboards.

    Since then I dropped the keyboard, picked up vim and now I can type on any keyboard I please, even those dreaded netbook ones.

    :)

    ReplyDelete
  14. Touch typing. The next frontier for me in my craft. Thanks for posting this, I can't wait to do these exercises regularly and finally be able to type without having to bob my head :)

    ReplyDelete

Please don't post anonymously; I won't use your name/url for anything insidious.
Comments by Anonymous are not guaranteed to make it through moderation.
Constructive comments are always appreciated.