Bad Advices from Programers about Typing & Keyboard (RSI)

, , …,

If you are a programer, you probably have seen programers discuss & argue about keyboard, keybinding, typing habit, in programing forums or keyboard review sites. Typically, they'll say: “i'm a programer and type all day, therefore the keyboard should be this way, and the best way to type Control key is this way”.

typing of the dead arcade machine
Typing of the Dead amazon

Here are some points most programers are not aware of when discussing keyboarding issues.

Important Variables in Keyboarding

Which Keyboard EXACTLY Are We Talking About?

WHAT keyboard you use has significant influence on your habit, and the optimal keybinding, or methods to press keys.

Is it laptop keyboard? is it full sized PC keyboard? Does it have shallow keys like Apple's Aluminum Slab? Or deep clicky keys like the IBM Model M keyboard? For example, on a laptop keyboard, swapping CtrlCaps Lock is a good advice, but on a full-sized keyboard with big Alt keys on both sides, a more optimal setup is to swap CtrlAlt.

Even with full sized keyboard, there are major differences that effect keybinding choice or keyboarding habit. Is it standard PC keyboards or Ergonomic Keyboards? For example, on ergonomic keyboard made by Microsoft, it makes a lot sense to make heavy use of Alt keys, because they are big and right under thumbs.

Or, you may arguing against using mouse, but if on laptop, the trackpad is quite more effective in placing cursor at arbitrary positions. For someone using a touch screen, it's even better.

Here's a personal example, about a very subtle difference of keyboard, that created a RSI problem for me.

ms wnm keyboard ms n4000 keyboard
the Microsoft natural and Microsoft 4000

From 2005 to 2008, i was using the classic Microsoft Natural Keyboard. In about 2009, i switched to the new model Microsoft Natural 4000. The new keyboard got more ergonomic curves, seems to be a improvement. However, ON THAT KEYBOARD i developed a habit to press the {1, 2} keys by twisting my left wrist to the left and press it with my middle finger (instead of using pinky and not turning wrist. (because, SOMEHOW on this new model, it's harder to press the 1 with pinky)). Then, i developed RSI symptoms. One day, i woke up, even before touching the keyboard, my left hand forearm got this tingle sensation. It is a extremely scary experience. RSI cause is very difficult to track down. After panicking for weeks, i eventually tracked it down to this wrist movement. For the full story, see: Programer Hand Health: vi Esc Key Syndrome.

Another personal example is when i switched to a mechanical keyboard. There's this {j, k} keyboard shortcuts to move to {previous, next} posts on {gmail, g+, twitter, facebook, …}, but somehow i just don't use those keys, but with mechanical keys, i started to use those shortcuts spontaneously. For detail, see: Keyboard: Effect of Mechanical Key Switch on You.

Do You Touch Type or Hunt'n'Peck?

Good keybinding choices for hunt'n'peck are NOT good for touch-type, and vice versa.

If you hunt'n'peck, you really don't have lots problems, simply because your load is naturally low. But if you force yourself to type the amount that data-entry clerk or writers do while still hunt'n'peck, you'll probably get fatique, eye strain, or RSI.

On the other hand, here's a example where touch-type creates a problem that hunt'n'peck wouldn't have. If you use 【Ctrl+x】 for copy, normally it's fine. But, if you have to do that 10 times more frequently, and using touch-typing method to type the x, you may get RSI, as i did. This happened to me because we added a feature to ergoemacs-mode so that cut will cut current line if there's no selection, and i find it so convenient that i spontaneously started to use it for cutting entire blocks of text or deleting text by repeatedly pressing 【Ctrl+x】. Because i touch-type, so i press the x by the weak 4th finger while right-hand holding down the Ctrl. Then, i got RSI symptoms, and eventually traced it to pressing x. (You can read a detailed account of this, at: The Roadmap to Completely Replace Emacs's Key System, Part 1)

Show Me Your Key Log!

Every keyboard review starts with “I type all day …”, but if you type continuously, your whole day's typing might be just 30 minutes worth. Contrast this with data-entry clerks, they truly type several hours a day.

If you are a programer, try to use a key logger. You'll be surprised how much you actually type.

Good typing advice from 30 minutes per day worth of typing (programers) is bad for 3 hours per day typing (data entry clerks), and vice versa. Same for keybinding considerations.

For detail, see: How Many Keystrokes Programers Type a Day?

Examples of Bad Advice

I Swap Ctrl & Capslock and Never Had Problem?

Some programer claim to have used certain habit and never have a problem.

A [Ctrl] to the left of [A] is natural and what I've been using since the mid-1960s with absolutely NO problems or RSI whatsoever beginning with a TTY ASR33 and continuing with a Datapoint 3300, DEC VT100, Datamedia DT80 and others along the way to today.

Some people smoke cigarettes all their life but never had cancer.

Maybe the actual time their fingers are pushing keys is just 30 minutes per day if done continuously. If they do data entry work, perhaps they'll get RSI within a week. 〔☛ Emacs: Why You Should Not Swap {Caps Lock, Control} Keys

Don't Touch Type?

Some programer claim hunt'n'peck is best practice to avoid RSI. I have on record 2 notable programers saying this to me in public forum/blog.

My recomendation for avoiding RSI while typing a lot is very simple: don't touch type. Use just three or four fingers and the thumb. I've been doing this for 20+ years now, and can type at around 40+ words per minute, which is generally faster than I can think.

source: comment at http://xahlee.blogspot.com/2010/08/left-wrist-motion-pain-vi-esc-syndrome.html

Matt Garman writes:

Does anyone have any thoughts on keyboarding injuries, in particular those caused by “chording” (pressing multiple keys simultaneously)?

Easy: don't touch-type.

That will make sure that you move your hands enough to avoid any problem. Emacs and its “few (tho complex) key strokes” approach compensates for the slower typing. And typing speed is not relevant anyway since you'll spend more time thinking about what to write.

source: https://groups.google.com/group/gnu.emacs.help/msg/09085eedffab4e76?hl=en

Do you mean to say that touch typing is unhealthy in general…

Just that I've known several people who suffered from RSI and several people who can't touch-type and the two sets are disjoint. A correlation between the two is expected (people who type a lot are more likely to know how to touch-type), but the fact that the two sets are actually disjoint is I think more than a coincidence. If you look at people who don't touch-type (like me), you'll see their hands move a lot, so their arms work more and their hands and fingers work less.

source: https://groups.google.com/group/gnu.emacs.help/msg/b8b7d8a885f947f2

This is like saying the best way to avoid sport injury is not to go pro.

Sure, you can hunt'n'peck as a programer and still be considered a fast coder, but it isn't a good ergonomic advice. Given a fixed amount X of typing, and if X is small, then all's fine. When X is large, the difference between hunt'n'peck and touch-type will show, with respect to performance and health.

Maybe you don't write a lot emails or docs or blogs, but other programers do.

Here's two celebrity coder Steve Yegge and Jeff Atwood on this issue:

Ergonomic Keyboard is Useless!

• Some programer claim that they do fine on normal straight PC keyboard and conclude that those curved split ergonomic keyboards are not useful. Some couch potatoes never have back pain neither.

You can test many aspects of keyboarding yourself and for yourself. You can conduct experiment to see which key choices are better among 2. Or, which of the 2 keyboard is more ergonomic. Or, whether swapping CtrlCaps Lock is better or CtrlAlt. The key here is that you must actually put effort and time on this as a DEDICATED STUDY. Experience-based judgement are often clouded due to habit and specific keyboard.

In doing experiments, you have to be careful in the experiment in eliminating bias, such as your habit, familiarity, and the specific keyboard you are using, if you want the result to be general and for others as well.

blog comments powered by Disqus