views:

401

answers:

10

After hunting and pecking for about 35 years, I have decided to learn to type. I am learning QWERTY and have learned about 2/3 of the letters so far. While learning, I have noticed how asymmeterical the keyboard is, which really bothers me. (I will probably switch to a symmetrical keyboard eventually, but for now am trying to do everything as standard and "correct" as possible.)

Although I am not there yet in my lessons, it seems that many of the keys I am going to use as a C# web developer are supposed to be typed by the pinky of my right hand. Are there any typing patterns you have developed that are more ergonomic (or faster) when typing large volumes of code rife with braces, colons, semi-colons and quotes? Or, should I just accept the fact that every other key is going to be hit with my right pinky?

It is not that speed is such a huge concern, as much as that it seems so inefficient to rely on one finger so much...

As an example, some of the conventions I use as a hunt and pecker, like typing open and close braces right away with my index and middle finger, and then hitting the left arrow key to fill in the inner content, don't seem to work as well with just a pinky.

What are some typing patterns using a standard QWERTY keyboard that work really well for you as a programmer?

Update:

US layout and I use home row

Update 2:

Despite my best efforts to the contrary, people are interpreting this questionas "how do I learn to type" or "what keyboard should I use". Take it as a given, that I will learn to type, and that I will be doing so on a standard QWERTY layout keyboard, not DVORAK. I am interested in aquiring a skill that will be useful wherever I go.

+2  A: 

Try Typer Shark

stagas
Will this help with programming?
RedFilter
Learning to type? I would say yes.
advs89
The real Typer Shark (not the Flash version on the site) constantly pushes your limits without going too far and you can exercise and have fun at the same time. Also try http://play.typeracer.com/ for an online typing game with other players.
stagas
I stated in the question that I am already learning to type. I am looking for tips specific to programmers.
RedFilter
It's not Flash, it's Java :)
Chris Dennett
+2  A: 

Most of the "pinky keys" have been moved to "thumb keys" on the Kinesis ergonomic keyboards. I'm a happy customer, owning two of the keyboards.

I think any split ergonomic keyboard helps with the incorrect typing habit of using the dominant hand to strike letters on the other side of the keyboard.

Heath Hunnicutt
Be wary though that when practicing on a non-standard keyboard, you'll find yourself typing much slower and looking like an idiot on other machines. Not impressive if you have to give live demo's, help customers, give training ... imho it's better to train on the standard keyboard layout.
Konerak
I specified using a standard QWERTY keyboard in my question...
RedFilter
@Konerak -- Not true... After typing on a split keyboard with Qwerty layout, I am much faster on non-ergo Qwerty keyboards.
Heath Hunnicutt
+1  A: 

If you are serious about learning to type well and fast, consider switching to the Dvorak keyboard layout. Its astonishing how nice this feels, and how fast you can type, compared to the (stupid) QWERTY layout. Part of the reason it feels so good is that the most common keystrokes are designed to be under your strongest fingers, with the least movement.

It takes about 2 weeks of practice before you get good at it. You do have to memorize where the Dvorak letters are. (if you can do this for QWERTY, you can do it for Dvorak just as easily). Draw a picture the location of the Dvorak keys, put it near the keyboard, and try not to look at it. The first day will feel awful. It gets better fast.

Some will object that you can't get Dvorak keyboards everywhere. In fact, you don't need them at all. MS will turn any keyboard you have into a Dvorak one with a keyboard control menu. I'd bet Apple will, too, and I'm not sure what's left that matters.

Ira Baxter
I specified using a standard QWERTY keyboard in my question...
RedFilter
You also said, "as much as that it seems so inefficient to rely on one finger so much". Dvorak's keyboard layout is a really smart design to match statistical properties of typing with the strength of the appropriate fingers. You can stick with QWERTY; just understand it was specifically designed to slow typists down by making it hard to type. This is one of those irrational decisions society insists on sticking with.
Ira Baxter
You can still use a DVORAK layout on QWERTY keyboards. You can either rearrange the keys by taking them off and putting them in their correct spot, or learn the positions of the keys.
Chris Dennett
Yeah I definitely need to try learning Dvorak again. I'm pretty fast with QWERTY but that still lead to carpal tunnel fast too :(This guy seems to have done quite a bit of analysis of his typing habits and even created his own custom layout!A new more effective keyboard layout for programmershttp://www.exdream.com/Blog/post/2005/05/04/A-new-more-effective-keyboard-layout-for-programmers.aspx
daveangel
@Ira: I understand DVORAK is a better design; however, I am sticking with QWERTY and looking for specific typing patterns that developers have found useful.
RedFilter
A: 

Well, everyone else can suggest that you switch to a different keyboard, but that's not going to help you out when you end up someplace with just a standard QWERTY keyboard. Just like the editor you choose, if you don't pick something that's going to be on just about any machine you're likely to end up in front of, you're going to place yourself at a disadvantage.

As far as the pinky keys are concerned, you're right that they're that way, but you don't have to stick strictly to the classroom instruction methods. I use the fourth finger to reach many of those keys, since my pinky is somewhat weak and I don't want to overtire it. I do use it for hitting some of the keys, most notably the Enter key, but for the most part I do a three-fingers plus thumb style, and it works for me.

The most important thing it to memorize the layout so you can type without looking at your hands. As long as you can do that, you're way ahead. It's easier to keep track of the code if you're not constantly watching your hands. Speed will come with time.

My biggest challenge these days is typing with my carpal tunnel brace on.

jfawcett
@jfawcett: do you use fourth finger/pinky to type open and close braces, or do you not type those together?
RedFilter
To hit the braces (), [], and {}, I use the third finger. Really, the pinky only works when I hit return and/or shift.
jfawcett
A: 

I don't have much to suggest in the ways of typing, I learned how to type very fast by just typing alot, but one thing I do notice is that when people try to learn how to type, they try to place both hands sort of in the middle of the keyboard.
This is not good. The middle of the left hand should be roughly above the left Alt key (depending on finger length I suppose), and the right hand should be right above the right windows key if you have one, if not then place your hand such that the pinky is roughly at the []s, or the enter key.
Strategy: The characters obviously on the left, the left hand does, and characters on the right, the right hand obviously does. The middle ones is a matter of preference, and I think it's really quite personal. I'm trying to notice my own typing as I'm writing this and I pretty much do it character by character - By that I mean there's no obvious left/right distinction, but each character is assigned to a different hand according to what's comfortable.

Rubys
A: 

I don't use my pinky for anything and still achieve a decent typing speed. In fact, my hands move all around the keyboard. It's probably closer to hen-pecking the keys, but I know where they all are.

Chris Dennett
A: 

The ergonomics experts say that you should not use the legs on the keyboard to prop up the back (the side way from you). Try your keyboard flat, or if you can manage it, negatively sloped. If you do this, it will straighten out your wrist, and decrease the chance of getting repetitive movement injuries.

I also put a gel-type wrist rest in front of my keyboard.

It will feel funny to type with straight wrists for a day or two. Then you will find that it really helps.

You'll probably argue that this answer does not conform to your question. However, I feel it is vital to be comfortable as you do your programming.

aaaa bbbb
@aaaa bbb: I won't argue, because at least you are not saying to use DVORAK or learn to type like most other answers, sigh. I will try your negatively sloping keyboard tip.
RedFilter
+1  A: 

Practice. Q.E.D.

As for the typing braces, I slide my hand and use pinky for shift, index+middle for braces, followed by a left arrow with pinky. (I do touch type.)

trinithis
Good tip, thanks!
RedFilter
A: 

Many ages ago I looked at a how-to-type manual, and it showed me where to park my fingers before moving them to type anything. Basically they are on ASDF JKL;. Then it's basically a matter of moving the nearest finger to the key you want.

Fewer ages ago I played with "Mavis Beacon Teaches Typing". Very simple program, and very effective.

Am I a great typist? Of course not. Am I optimized for coding? I don't claim to be. Can I manage? Quite well, thank you.

You're getting lots of good advice, but you don't need a PhD in typing. Don't bother trying to type without looking at the keyboard. That just comes automatically with practice. For the same reason, don't bother trying to type fast. It just comes. You won't even notice it.

Mike Dunlavey
There's no point in typing really fast if your brain can't keep up. That's what I find. I get solitude from the mistypings which force me to rethink by breaking up the flow. I like that.
Chris Dennett
A: 

The manner with which you have constrained your question only lends itself to one answer: your pinky will be doing a lot of work. Consider a highly ergonomic keyboard for your home/office use to reduce wear.

You can mitigate this somewhat by using a good editor. Programmer editors support features like inserting closing parenthesis, or have keyboard shortcuts that close the current scope, or do various curly cleanups when hitting Enter or Tab.

Since you're asking about PATTERNS, allow me to think outside the box. One strategy to reduce typing is to add abstractions and support patterns in your coding design - for example, adding template language for any large project. This approach takes longer to design (more thinking) but will "compress" the number of keystrokes needed in any given project.

Peter S Magnusson