Touch Typing for a Developer?
The Whinger asks: "I've been programming in various forms for about 20 years now, and I still can't type. I keep thinking, "I must learn to touch type". Unfortunately, two finger typing, 'touch typing tutorial' into your search engine of choice throws back a minefield of hits. Of course, picking something to try does not guarantee success. Does touch typing help with programming? Do you know of any tutorials that you would recommend or avoid? I can't spend the next forty years two finger typing ;)."
When I was a little kid I used "Mavis Beacon Teaches Typing" on my Commodore 128. You should be able to master the letters in a couple of hours. After that comes the other symbols and finally comes speed. Without putting any special work into it since I was 7, I type at about 60 words per minute now.
dude, get on IRC, and get interested in some conversations, you'll start typing faster out of necessity :) that's how I learned to touch type, all those years ago...(ok, so it was like, yahoo chat, but irc is cooler, gimme a break =D, irc does the same thing anyway)
It really sounds like there's some kind of spinal disconnect going on here. Your fingers should have learned where all the keys are by now, and you should be able to hit them without even thinking about it.
I feel pretty good recommending gtypist for the tty, and tuxtype for the GUI.
I think the ability to have words come out as effortlessly via typing as via speaking is invaluable.
apt-get install tuxtype
apt-get install gtypist
Larry
I learned to type when I was ten years old, on my family's new Atari 800 with a program called MasterType. Unlike everything else I learned on that old machine (BASIC, PILOT, LIFE) I use my touch typing skills on a daily basis, and can hit upwards of 95wpm on a decent day.
;)
There are five benefits to touch typing that I personally reap as a programmer:
1. If I am copying code from a book, or a printout, or notes that I took by hand, I don't have to take my eyes off of the printed material. This is quite helpful, as it means I don't have to find my place on the page every time I look away, then back;
2. I can repeatedly bang out long, descriptive variable names in roughly the same amount of time it would take someone else to hunt-and-peck a short variable name;
3. My comments and error messages tend to be more descriptive and useful, as I don't feel the need to save time and effort by writing in short words and sentences;
4. I can easily write documentation on the fly as I code, since little effort is required to whip out a quick paragraph or two about the code I'm working on;
5. My posts to Slashdot can be made quickly enough to be read by most people, yet still be long enough to warrant an automatic "+1 Informative" from any moderator who doesn't read the whole way through.
-Dave
And for what it's worth, Dave Cutler pounded out most of the NT kernel using two fingers.
- adam
"I've been programming in various forms for about 20 years now, and I still can't type." You work for Microsoft? They've been selling product for over twenty years, still can't get it working right. Just wondering if there is a coorelation.
Everything in the Universe sucks: It's the law!
For me it was just getting my head around it. It's logical.
You have ten fingers at your disposal. I used no typing tutors or books or classes.
First, get your pointer fingers on the home keys. F, and J. You'll notice those keys have raised bumps, nubs, or generally feel different than every other key in some way. Line up the rest of your fingers on the keys next to them. Pinkys on A and ":". Rest of your fingers on the keys in between. You'll have a G and H staring back at you.
Next, get a piece of paper. Look at the keys around those "home position" keys. Figure out what keys out of the keys that are left are closest to each finger. Obviously, you'll hit G with your left pointer finger and H with your right pointer finger. Y and U with your right pointer finger and so on. There is an optimal finger for each key starting from that home position. Your pinkies end up hitting lots of keys.
Once you figure out what keys go with what finger,
Start out slow, cheating by looking and type out:
The quick brown fox jumped over the lazy red dog.
Do it again and again and again and again. At some point you'll stop looking.
After that, concentrate on making a letter appear on the screen at random. Try to hit the A without having to look. If you can't, look. Then do it again without looking. Eventually you'll be able to type like you would on a typewriter without having to look for keys. Slowly work in the rest of the keys.
Pitfalls to avoid:
Get used to using the opposite hand to hit the SHIFT key for the other hand.
Learn to use the number keys above your letters instead of the crutch that is the number pad. You'll be much faster if you don't have to move your hands from the home position to hit numbers.
Take your time and don't get discouraged. Every little victory in the form of memorizing where a new letter is without having to look keeps you going.
I'm doing about 90wpm now. A lot of that has to do with spending 10 years on IRC before finally walking away for good. IRC is a great way to get really fast at touch typing.
This is how I did it.
For every annoying gentoo user, are three even more annoying anti-gentoo crybabies. Take Yosh from #Gimp for example.
You are probably better off as you are.
I have been able to touch type for 25 years.
Now I type much faster than I can think.
Speech: Free
Beer: $699.00
This program is effective because it's fun. It has a (somewhat pathetic) tutorial mode, and the first level or so in the game is easy. It gets hard very quickly, though. If you want to continue playing, you've got to learn how to touch type, and do it quickly - if you can't type quickly, you're toast. And there's something gratifying about watching the zombies explode into green piles of goo...
If you can find the game (should be less than $20), get it. You won't regret it.
Goo goo g'joob.
If you're seriously considering retraining your typing, I strongly recommend the Dvorak layout. I typed in QWERTY for a long time, but I never really noticed any of its problems until I took the time to learn Dvorak a couple summers ago. It took me about of constant Dvorak to get back to my old speeds, but it was well worth it.
If speed is your only goal, Dvorak will certainly be worthwhile, as you'll probably be able to type faster than you would with QWERTY, but in my experience the most noticable difference is just how much more comfortable Dvorak is. That's important for me, because I've had tendonitis in my hands (from too much fast typing with QWERTY...go figure). As I said before, I never noticed that QWERTY wasn't comfortable until I learned Dvorak. It really is much better. I'd say a regular old flat keyboard with Dvorak is quite a bit better than an 'ergonomic' keyboard using the same old crappy key layout.
It might seem to some of you like this keyboard layout is a solution in search of a problem. That may be so, but only in the same way that Ogg Vorbis is (i.e. it has some definite benefits, but most people don't think it matters, since its competitor already has such a huge user base). But my point is, if you're going to do something, in this case relearning how to type, you may as well do it the best you can.
Btw, some people have said to me "well, I would learn Dvorak, but then I'd get confused by a regular keyboard." JFYI, this is wrong. I can still use a QWERTY keyboard as well as I ever could. However, I don't really enjoy having to do it :-)
There are two basic elements of touch typing. One is to learn where all the keys are - you already have this. The second is to learn to use all your fingers to type - this you lack. Just spend a few days typing, consciously focusing on keeping your pointer fingers on f & j, and you will pretty soon be touch typing.
"He who would learn astronomy, and other recondite arts, let him go elsewhere. " -- John Calvin, commenting on Genesis 1
Anything above 100 wpm would put you in about the top 2/10ths of 1% of typists. Take this test and tell us how you do.
To this end, I didn't relabel the keys themselves, I just taped a keyboard diagram below my monitor. I never look at the keyboard now, I just rely on the bumps on F and J.
When I learned to touch type, I was in 8th grade and doing computer work for our high school yearbook. The instructor in charge suggested that instead of using a computer to learn touch typing I should use a device he had. It was a simple keyboard with a little LCD display that would run through typing tutorials.
The thinking was that having a separate device avoids distractions, like wanting to check email or the web or play games. It worked for me. Just thought I would bring it up. I have no idea where you would get something like that now (I haven't checked the font of all knowledge...er, Google).
HTH.
Rapid touch typing like you are thinking can be a cause of carpel tunnel... So, if you have a choice between touch typing or cronic hand pain for the next 40 years, which one is it going to be?
However, anyone can type paragraph after paragraph of key combinations, all lowercase, with no numbers or punctuation, and get 100 wpm consistently.
Being a programmer, though, means you need to learn not only where all of the letters are and how to type them in both upper and lower case, but you need to learn how to make extensive use of the number and symbol keys. These are the least emphasized in many typing programs, which are more geared towards the letter/number/symbol ratios you would see in taking dictated correspondence.
There ought to be a "touch typing for perl programmers" type program, or a plugin or exercise set for popular programs that lets you practice symbols, newlines, indenting, commenting, etc
With that in mind, use Mavis, and stick with it. I type 90 wpm, closer to 75 when coding C++ or Perl. Spend lots of extra time on the number and symbol keys, and it will pay long dividends.
The facts have a liberal bias. --The Daily Show
That was how I learned to type. My junior year in college, I decided that I wasn't keeping pace on IRC like I would have preferred. I went to Office Max and bought a little book on typing, made I guess for new secretaries or receptionists or something, just a little plastic-ring-bound book about 25 pages long. I sat with my fingers on the home keys, made a consious effort to type each letter with the "correct" finger, and after about two months I was touch-typing about 80 WPM.
:)
To the original question-poster I say: touch typing has made my coding better, and faster, especially since I got good at getting to the []{}; keys. Making ; a force-of-habit from touch-typing rather than trying to think one character at a time, and forgetting the ; makes a world of difference to me
Only two things are infinite, the universe and human stupidity, and I'm not sure about the former. (Einstein)
The best way to learn to type is to start playing a MUD (multi-user dungeon, text based) Most are at least relatively entertaining, and many are extremely addictive. Thats how I learned to type, and right now I am typing at approximately 100 words per minute, and I have rarely used a typing tutor. Or become an IRC junky.
www.medievia.com is the game I used to play...get mudmaster.
I was in the same boat as you. My hands hurt, and I was a professional programmer. I _knew_ I needed to learn to touch type, but I couldn't stop looking at the keyboard.
So I painted my keyboard black. The first week _sucked_, but by week 3, I was at 80% of where I had been before, and that 80% was touch, no looking at all.
Over the next month, I crept up to a bit faster than I had been, and that was good. But the real benifit to my speed was that, with my hands always in the correct location, all the control-Key and alt-Key keyboard shortcuts for my editor, my shell, and my web browser became available, and even second nature to me.
It is worth it.
There are a number of businesses which sell keyboards with blank keys, for use in typing classes; you can google for them. I reference this only as a means of showing that this has worked for others.
Try it, it _will_ work. Just take the plunge, accept the reduced short term productivity, and paint the keys black.
-- Crutcher --
#include <disclaimer.h>
Yes and no. For normal text, such as you find in comments, of course.
However, the usual "formal" approach to touch-typing, based on a home row and marked keys, isn't nearly so helpful in the context of a punctuation-heavy programming language. Being able to do 85wpm is little use if you're using Perl, where 98% of the characters you type are '/'. :-)
On top of that, developers spend almost no time typing code. The vast majority of their coding time is spent thinking, planning and exploring. And of course, their coding time is a relatively small part of their working time, the majority being spent on activities such as design, debugging and documentation. Touch-typing is great for the latter, of course, so the three of you out there who actually write a sensible amount of useful documentation might find the lessons useful. ;-) For everyone else, though, touch-typing is a useful skill, but not so much for development as for other activities related to it.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
Everyone who uses a keyboard on a daily basis should be able to type at least 40 WPM without looking at the keys. Otherwise you are really impacting your productivity.
I took a typing class in High School circa 1987 on IBM electric type writers. It was only a half semester class but I was able to get up to about 60 WPM and over the years, I have increased that amount to about 80 WPM and I am happy with that speed. I can type faster when I transcribe text from a printout, magazine, or handwriting then I do when I type from my head to my fingers.
Co-workers are constantly looking over my shoulder in complete disbelief when they see me really typing fast. The funny thing is, I've witnessed people who can type 130 WPM and they are more then twice my speed. Typing really should be a required class in schools because most jobs require computer work and the keyboard is still the most important interface on a computer.
Programmers on this thread have stated that they don't think that learning touch typing is important and that the syntax of programming languages is too cryptic to type easily. While the cryptic nature of code is more difficult you will get better at it if you have a touch typing foundation and you merely practice entering code from magazines, etc.
Good programming editors have extensive keyboard commands. EMACS, ViM, Visual Studio, etc. These allow for one to quickly select options while actually typing. This keeps your hands on the home row of the keyboard. ViM is a bit better at this then EMACS but I don't want to start a flamewar. Use whatever works for you. Just know that both EMACS and ViM both use keyboard commands extensively and both will improve your productivity if you can touch type without looking.
I really cannot understand why so many refused to learn to touch type without looking. It's really not that hard, anyone can do it.
Mavis Beacon teaches typing for Windows works quite nicely, but as others have mentioned there are several Open Source tutors as well.
It's a whole lot of:
hjk lfgd lkd las lkj etc, etc, etc, till you get the home row down and then start inserting letters off the home row, then changing case and using symbols.
It is boring to learn but once you get some speed you will see the advantages. It kills me to watch someone fumble about with a keyboard or two finger it (even rapidly). All the head bobbing and finger hunting is killing your productivity. It's so much smoother when you know how to touch type the right way.
Your fingers should naturally learn over time, through repetition. Many people can't play the piano to save their lives and don't even know which keys play which note, but can still play one or two simple songs they learned when they were kids, simply because their fingers (or, more accurately, their spine) remembers how. The same thing holds true for typing -- the more you type, the more you're building up this nerve memory map of the keys, until eventually you should be typing like a maniac without ever looking at them, even if you never learned to touch type the "correct" way.
The fact that he's been typing for 20 years and still hasn't gotten any better at it tells me that there's something wrong with his nervous system. Not that I'm a doctor or anything.