Also important is touch typing. I’ve been coding for about 8 years now, and only learned to touch type last year (after several false starts). While I’ve seen dramatic improvements in raw productivity, it’s the less tangible benefits that have surprised me.

I find I’m more likely to learn and use the keyboard shortcuts discussed here. My ergonomics are better. I feel more comfortable with lightweight, keyboard-centric text editors. I am much quicker in a terminal now which I find more productive than gui based shells (particularly on unix/cygwin).

My coding has improved too; cumbersome things like documenting and unit testing your code become less of a burden. I learn faster because I can prototype code quickly and feel out language features. Interactive shells like irb become a playground where you can introspect the code at close to thinking speed.

That’s the thing about searching for something, every program has a different way of doing it. A few possibilities: Ctrl-F, Alt-F, Ctrl-E, / (slash), ’ (single quote).

That being said, I’m all for keyboard shortcuts, however, I hate the “default input” mode where you have to use key modifiers like the Control, Alt, Windows, Meta, Alt-Lang, et cetera to do extra functions. I would rather have input be more modal like it is in vi. Modal keyboard interfaces are going to be faster still than non-modal key modifier based interfaces.

It is a desktop keyboard based on the Thinkpad notebook keyboards, so it has the Trackpoint thing in the middle. If you haven’t used one lately, there have been a couple of improvements. When you hold the middle mouse button (down by your thumb) it causes the track pointer to go into a scroll mode that you can use to scroll around documents.

In firefox, there is actually a better search key over “/” if you’re looking for navigable links. You can use the “’” key and firefox will do an incremental search only for anchor links. When it’s highlighted, you can just hit enter to navigate it.

This doesn’t solve the problem that Jeff points out for images that you want to click, but it solves 80% of the links that I want to click on.

With either search type, you can use cmd-G to find the next occurrence of it’s type (on OSX, I’m sure it’s probably alt-G or ctl-G on windows/unix) and cmd-shift-G to do a reverse search.

cmd-1 through cmd-9 can also be used to select different tabs (this works in a number of other programs besides firefox as well).

Still waiting for that eye-controlled computer. Until I get an eye cramp or blink at the wrong time or something. Maybe a brain-controlled computer? Then what happens when my thoughts stray, as they inevitably do? sigh Can’t win for trying.

I definitely don’t recommend going commando. Using just a handful of shortcuts is enough to boost productivity by a huge margin. It’s the usual Pareto Principle. If you try to remember a lot more than these, you are entering the region of diminishing return: allocating your precious memory for shortcuts infrequently used.

This is my policy for choosing shortcuts:

Used very frequently (obvious)

Consistent on most platforms you use

Consistent on most applications you use

Easy to remember (no more than 2-key combination)

No need to remember shortcuts for tasks that immediately requires you to use the mouse anyway.

For me, remembering about 20 shortcuts is enough (did you say I need memory upgrade?) At the top of the list are these generic shortcuts:
ctrl-z undo
ctrl-x cut
ctrl-c copy
ctrl-v paste
ctrl-a select all
ctrl-f find

Test subjects consistently report that keyboarding is faster than mousing.

The stopwatch consistently proves mousing is faster than keyboarding."

Mousing may “be” faster. Although, I’m skeptical about what the tasks were, I’ll concede that mousing is probably faster for selecting text unless you type 80+wpm. However, “feeling” faster isn’t useless, particularly when you are storing large chunks of some mental model in your head(like maybe a program). I’d bet that CONSTANTLY solving visual search tasks induces enough of a cognitive load to muck with serious programming tasks.

The best key to use for shortcuts are the F keys, and only a few programs actually use them. Only one key required. I wish that F1 wasn’t always help, how many times have you pressed that by mistake? Generally, I would prefer that the first few F keys change what window or panel or dialog or field has focus, making them quick replacements for the mouse. Then it should be the most commonly typed (not neccesarily the most “important”) actions.

One problem is that the range of keyboard shortcuts is pretty limited these days. Windows itself has taken up many of the ALT keys, and some of the F keys.

I’ve also set up some of those keys I never use (the windows key, right-ctrl, insert, home, end, scroll lock, printscrn/sysreq, pause/break) to do basic window management stuff like cycle the windows, maximize, close etc. faster than the normal key combinations, and so I can also remap the F keys to do more common application actions.

BTW, Linux users-- try tilda. It pulls a terminal down from the top of the screen like the Quake2 console on a keypress. I have it configured to come down when I press F1. Then you can run programs maximized (no more stupid window micromanagement) but still have a terminal handy for any quick purpose.

http://tilda.sourceforge.net or apt-get install tilda. There’s also a similar program based on KDE libraries instead of gnome libraries, that one might have a few extra features too.