views:

1539

answers:

19

When I was taught keyboarding in school, much emphasis was made on keeping your fingers centered on the 'home row', with your left hand on ASDF and your right hand on JKL; However, this placement was never comfortable for me so I continued to use the tried-and-true hunt-and-peck. Years later I'm able to type much faster and without looking down at all, and while I'm not a speed demon, I type fast enough (about 65WPM) for my needs.

One interesting side effect is that I find the so-called 'ergonomic' keyboard absolutely intolerable, as the keys aren't where I'm used to them being, and some of the keys I'm 'supposed' to hit with one hand I sometimes hit with the other, making the ergonomic split rather frustrating.

Are there are any other developers out there that don't use the traditional hand posture for touch-typing? Am I the only one?

Followup question: The only online typing speed tests I've found require you to type paragraphs of text. A better test for programmers would be to have the user type out source code for a simple program. I suspect that home-row typists are at more of a disadvantage than I am when it comes to hitting some of the symbols around the edge of the keyboard because they try to stretch their hand instead of move it.

So my question is: how well does the typing speed of a paragraph of text compare with the typing speed of a block of code, and does using the home row introduce a disadvantage when attempting to type symbols instead of letters? (all this assumes use of QWERTY, of course)

+21  A: 

There's only one way to hold your left hand on the keyboard:

WASD

That's a habit I don't think will ever leave me.

Harley
With your right hand on the mouse, I presume?
Soldarnal
I changed to ESDF because I have the little bump on the F as orientation then, and there are more keys directly around to assign other "functions". Nowadays, I would probably use ZGHJ (YGHJ for english layout).
Svante
yup, same here! +1
Zeus
+3  A: 

No, obviously you're not the only one.

But as for myself, I think that of any class I had in high school, the one whose skills I use every day is touch-typing.

Bill Karwin
+1  A: 

I never learned to touch type. I wish I had, but got bored with the touch typing tutor on my TI-99

My father still bangs his keyboard violently - from his days typing away on typewriters...

Maybe I will look for a touch typing program online...

Tim
+7  A: 

I keep my fingers on AOEU and HTNS...

Gavin Miller
Someday I'll learn Dvorak too.
EBGreen
Gavin Miller
Thank, but I'm afraid that "Someday" may equate to after retirement. :)
EBGreen
You have figures instead of fingers?
Svante
Ian Mackinnon
+11  A: 

I'm a touch typist, so I keep my fingers on the home keys. I recommend Programming's Dirtiest Little Secret to anyone who doesn't.

Bill the Lizard
Or: http://www.codinghorror.com/blog/archives/001188.html
EBGreen
Just because yegge asserts it does not make it so. Some of the best developers I know are hunt and peckers and some of the worst developers I have worked with are touch typists... It just isn't worth the time in many cases to spend the 100 hours to become proficient.
Tim
That's a good blog article. Programmers should read it! And then they should do it! And I *don't* want to hear Jeff or Joel or any other influential geeks poo-poo the worth of typing as a productivity skill.
Bill Karwin
If you follow the logic then everyone should be using dvorak keyboards because the qwerty ones slow you down... Please.(roll eyes)There are WAY more effective ways to improve productivity and quality than touch typing. With that said, I think it is a worthwhile thing to learn if one has the time.
Tim
No matter how good a developer may be, that developer will still drive us touch-typists *insane* when we watch him painfully peck out code with two fingers. *YAWN* Call me when you're done pecking that out, OK, buddy?
Kyralessa
It doesn't matter if you're good or bad, if you can touch type you'll be faster. The faster you can get your ideas onto the page the better. I don't think it's true just because Yegge wrote it, I just think it's true.
Bill the Lizard
Kyralessa - I am not sure why you are hovering over another developer - int hat case I would suggest that you perhaps could be using your time typing... As far as typing fast - I am not sure that typing is the limiting factor in software development.
Tim
@Tim: If you're hunting and pecking then you're thinking about *typing* instead of thinking about *what* you're typing. Touch typing just removes a barrier that keeps you out of flow state.
Bill the Lizard
Tim, if you learned how to type, you wouldn't be so defensive. :)
Kyralessa
Touch for me too. I code nearly as fast as I type English, but that's because TextMate does so much of it for me.
rpflo
+1  A: 

Learning to type was considered "Girly" when I was in high school back in the late 70s/early 80s, but I did it anyway. Damn glad I did! :)

Craig Shearer
And that's why I didn't take typing in school. Who knew in 1973 that I would ever use a keyboard daily. Girls who learned to type back then didn't get offered jobs that weren't clerical no matter how qualified they were. I took statistics instead.
HLGEM
A: 

I touch type for efficiency's sake. Regular expressions only go so far.

For gaming I use AWEF instead of WASD. I haven't found many people who prefer this method, but it allows for finer control IMHO. A=back, W=left, E=right, F=forward. It also leaves QSDR and ZXCV for alternate sets of input. WASD is just cramped.

LOL @LFSR...I wonder how many people caught that. See: [http://wbic16.xedoloh.com/dvorak.html]

Will Bickford
Subtlety is the king of comedy - Thanks
Gavin Miller
A: 

I do, actually. Learned to do it the hard way, by having to memorize hotkeys in old RTS games - particularly Age of Empires 2.

watchwood
+2  A: 

I do touch-type. I also had training on the numeric keypad when I was in HS, and that's very handy when you need to enter a bunch of numbers into tables or something.

Fred Larson
+3  A: 

Home row all the way for me -- I've gone mad trying to use keyboards that don't have the J/F bumps. On the other hand, I don't think that following the "traditional" method -- or having a high speed -- is as important as simply being able to type and code most anything without having to think about what you're doing with the keyboard. Smooth the road between thinking of what you want to say and having it appear on the screen. Abstract it away entirely. It should be like breathing.

Typing 80 WPM vs 60 WPM won't make a huge difference while coding, but having to think about typing while you're trying to code is going to destroy you, even if you somehow managed to get 200WPM. That's what's important, IMHO.

I can't use ergonomic keyboards for the same reason as you -- I don't pay too much attention as to which hand is supposed to hit which key. I even hit space bar with my LEFT thumb, which is supposedly wrong but I find it a bit easier. It's just naturally what I do.

Trevel
That's interesting about the space bar, I've never heard that. I am most definitely right handed, but I hit the "modifiers" with my left hand. This is probably because I'm already hitting tab and caps lock, so I also hit CTRL/ALT/SHIFT/SPACE with my left hand. I never hit the right modifiers.
prestomation
+23  A: 

Touch-typing from the home row is torture for programmers. We have to hit too many keys that are nowhere near the home row. (Backticks, pipes, parens and braces, punctuation above the number row.) Keeping your fingers on the home row means you get to stretch your fingers to hit those keys, which is very bad.

Typing those keys the proper way also often involves using your pinky fingers, which is also bad (ever heard of Emacs pinky?) Additionally if you're a Vim user, your hands are constantly flying up to hit Esc. Maybe some people's hands are big enough to reach that far from the home row, but not mine.

Given that my hands are all over the place anyways, I make no effort to keep them on the home row. I can type around 80 WPM without looking at the keyboard, but my hands are nowhere near the home row most of the time, they're moving all over the keyboard. And I never use my pinky finger for any keypresses, I move my whole hand and use another finger instead. People still tell me they're impressed with how fast I type. Doing anything for 8 hours a day 6 days a week will make you fast at it.

I agree WPM isn't the best measure of typing speed for programmers. Code in many languages is not made of words, it's a mess of mostly punctuation keys.

Brian Carper
CTRL [[ yield an escape in some terminal emulators.
EvilTeach
I remapped my CAPS LOCK key to Esc for easier Vimming. Never needed CAPS LOCK anyways...
kobusb
A: 

I touch type - in that I don't need to look at the keyboard whilst typing. However, I neither put my hands over the "home row" initially, nor return them to that position.

I keep my fingers in a natural position, and use whichever finger is easiest to press a key - that can at times means both hands on the same side of the keyboard, depending on what I'm typing.

I can type standard text easily exceeding 120 WPM, much faster if I know in advance what I'm writing. (And I rarely practise writing lots of text).

Never encountered a coding speed test, but I'm plenty quick at that too - I can easily write code, whilst holding a conversation, without looking at keyboard or screen, and still work fast enough to impress people. :)


So yeah, the "home row" thing is definitely not a requirement for fast typing, and I'm glad I didn't get sucked into that method, because it's not how my hands work.

Peter Boughton
+1  A: 

I actually do use the home keys and touch typing. In fact, if I get distracted, I often find myself searching for those little bumps on the F and J keys to realign myself without looking. Still, the ergonomic keyboards bug me.

Chris
+1  A: 

I honestly don't know.. I was never "taught" how to type, but I can type, well.. quickly.

Not sure how many words per minute - something I find a bit meaningless, given that a lot of what I type are keyboard shortcuts, function names and so on..

I don't consciously keep my fingers on the home-row - my fingers generally hover around what I plan to type next, although I've never really thought about it.. For example, after switching from another application back to this browser window, my fingers were resting on/around most of the following keys.. [Cmd],[space]qwe,.;jio and shift (not necessarily in that order..). Now they are hovering over the tab and space to post the answer "click" the "Post your Answer" button..

dbr
+1  A: 

I first learned to type using the home row method, but as a programmer, my right pinky got far too much of a workout hitting all the keys I couldn't easily reach on the right side of the keyboard. My left hand still rests properly on the ASDF keys (and additionally takes care of the Y key), but over time my right hand has shifted one position right to the KL;' keys instead. It makes it a lot easier to use the Enter and Backspace keys as well as some of the keys less commonly used in writing like the pipe and slash keys. Not only that, but it made hitting the P key a lot easier (in my opinion the most poorly placed key on a QWERTY keyboard). I'm not sure why this typing method isn't more common. The right pinky has to do a LOT less work.

A: 

how well does the typing speed of a paragraph of text compare with the typing speed of a block of code, and does using the home row introduce a disadvantage when attempting to type symbols instead of letters?

I can type a paragraph around 90-100 wpm w/o errors. Considering most of programming is letters (names of functions, variables, etc), and that TextMate (and other text editors) autocomplete the closing characters like (), {}, [], '', "", <>, I'd bet my code typing is around 60-70 wpm.

1/2 to 1/3 of the characters in my source code are inside of comments. If I was a hunt and peck guy I have no doubt my comments would be non-existent.

So to answer you question, I believe there is far more disadvantage than advantage for coders who can't type "from the home row".

After-all, { and [ are no different than q and Q. And | is not much different than delete, which most typists can get to rather easily.

rpflo
+2  A: 

I'm a touch typist or whatever you call it, I think. I never learned it, or anything, ... just started using the keyboard at one point, and after a while people were talking "how good that kid's doing". That was some time ago, though. I can do about 100wpm*(1), mostly due to my friends and family exploiting me for a long time, to just "help them transcribe that few pages of text they need tommorow morning". "You're good at that, it'll be faster, and I'll put the kettle on in the meantime". (It was a nice sum of pages, so I usually also got the cookies baked in the meantime :-)

But, no, I don't think transcribing text has any correlation to speed of writing of code.

It should also be noted that, while all of here use english, it is not a native language for many of us. The knowledge of the language you're using also affects your speed.

For the end, I think that typing speed is not that important for programmers. For programmers should think before they type, and if they think through, they'll not have that much to type. The thinking speed and logic is what's important, not the typing (this can probably be proven by correlation by watching some senior programmers at work ... lots of them people still use only 2 fingers, but still, manage to get better code more quickly out ...)

Another thing which can (and does) affect speed of writing code is that many non-EN keyboard layouts don't have curly and square brackets (my language, Croatian, and several neighbourhood ones, doesn't). Using the alt key to get them also slows you down.

(1) ... as long as I'm not forced to use ergonomic or any weird looking keyboard. By weird looking I mean pretty much everything that doesn't resemble the ibm's M-model (with the exception of Win keys). Laptop keyboards are ok, also.

ldigas
A: 

Best thing for learning touch typing is playing text-based muds, 'cause then you need accuracy and speed and you continually get instantaneous feedback from whatever you type or mistype.

As far as programming, even if the symbols used during programming don't correspond directly to home row, the averaging process means that having your hands spread out over the keyboard at home row gets you close to the letters that you'll need.

And beyond that, when you're communicating with other people via email or IM, touch-typing at home row is certainly going to be beneficial to you, because then the characters that your fingers are closest to -are- going to be the ones that you use most.

Tchalvak
A: 

I personally don't find 65WPM sufficient for my needs. I basically have always practiced typing from the home row - I first learned on a typewriter. As a result, I now can regularly break the 100WPM mark and if I'm trying, I've gotten up to 120WPM.

Yes, that slows down when I am trying to find an asterisk, or a backslash or something, but not all that much. Because I stay on the home row, I can just keep typing and I at least know where my hands have to move.

JasCav