Question

Did you learn to touch-type when you were already working as a programmer? If so how did it affect your productivity? Or are you still unable to touch type and do you think it holds you back?

According to Steve Yegge it is essential,

Personally I did not notice much difference, possibly because I was spending less than 25% of my work time actually typing (I was working on a large legacy project at the time and I was spending more time on reading and debugging existing code.)

Was it helpful?

Solution

The main benefit for me is the ability to work more ergonomically (no looking down and straining your neck and top back). I don't think it actually affects your speed though, except for comments, because of the excessive use of punctuation marks in programming languages. Touch Typing is really more suited for words... at least on a QWERTY keyboard.

I think Steve Yegge is overreacting about this. We're not typists, we're problem solvers. At the end what's important is for your typing to not get in your way. If it's not causing you physical strain, and your typing speed is not disruptively behind your though speed, then you can type in whatever way you want, and trust me- it is possible to type fast without touch typing.

OTHER TIPS

Well, I said my piece on this here:

When you're a fast, efficient typist, you spend less time between thinking that thought and expressing it in code. Which means, if you're me at least, that you might actually get some of your ideas committed to screen before you completely lose your train of thought. Again.

Personally, I can't take slow typists seriously as programmers. When was the last time you saw a hunt-and-peck pianist?

Fast touch-typing helps when coding, not because you can bang out the code faster, but because banging out the code is less of a distraction. I've too often seen programmers carefully consider a technique, or look up an API, and then start writing out the code... only to pause a minute later because they'd forgotten something while pecking out the syntax.

Regardless of whether you're using two fingers or ten, if the keyboard is your primary method of communication you shouldn't have to think about it (much less look at it) any more than you should need to think about pronunciation while speaking in your native language.

You may think being distracted isn't a big deal since you only spend 25% of your work-time typing... Though I suspect any other distraction that ate up a quarter of your day would find you screaming in frustration.

More importantly though, you may well be typing less than you should be, optimizing your workflow to minimize the time you spend trying out different techniques, or treating each line of code as precious: if it requires conscious effort from you, you'll naturally place more value on the output than it deserves, rather than being willing to toss away code that doesn't quite fit, or is unnecessary.

Yes, being able to type fast, without looking at keyboard or screen, definitely helps your productivity.

It doesn't matter how you type, nor whether you use the same technique on words as on code, once it is without thinking, but you're still aware of any mistakes so you can plan to fix them immediately.

I'd bet that touch-typing is more important for the collaborative parts of my work than for the Technical parts. I know some hunt and peck people who can type faster than some touch typists, but overall I've found that tho hunters tend to under communicate because typing is such a chore.

Taxi company owner to potential employee:

"How important is the ability to drive?"

Did you learn to touch-type when you were already working as a programmer?

No. I still cannot touch type properly. My fingers go all over the place, and I'm mostly two fingers on each hand, and not very accurate. (I learned to type the hard way ... on an IBM 026 card punch in the 1970's.)

If so how did it affect your productivity? Or are you still unable to touch type and do you think it holds you back?

I don't think it holds me back. Most of the time I'm thinking rather than typing.

For coding, not a big deal unless you are transcribing all of your code out of a non-electronic book (then you have bigger problems). However, I can't imagine responding to email, creating documentation, or any other business correspondence without having typing skills.

If you can't type as fast as you think, you're in for a long career.

Seriously, if you have to stop and think for a second about where the keys are or whatever, then you're spending too many brain cycles on it.

Learn to type, it's easy.

I've only been touch typing for the last 6 months, out of 15 years as a programmer. For me the convenience of not having to look at the keyboard keeps the focus on screen and makes for a more seamless working process. I use a compact (tenkeyless) keyboard and, more recently a trackball, that means everything is close at hand and always in the same place. I never have to look down.

Although I am faster typing code now, I don't believe this has had any great impact on overall productivity, its just more comfortable!

I think it completely depends on what kind of programming that you do. Most of my work is bug-fixes and so it's usually just changing a few chars at a time, and many times it requires no typing whatsoever: copy-paste a line from point A to point B. Not saying I'm a copy/paste coder, but sometimes the right code is already there, it's just in reverse order.

When I code something new, much of the code is generated from my modeling application -- including comments.

Also, the coders that I've witnessed who can type fast aren't necessarily good at typing. Sure, they can hit 20 wpm more than me, but they also have about 2x's as many bugs introduced by typos. Perhaps it's less of an issue in compiled langs, or maybe more of an issue since you have to compile more often than someone who gets it right the first time?

Being able to touch type is fairly important. Like others have said you should be able to get the code (text, other language constructs) onto the computer without spending a lot of time thinking about which finger needs to hit what key. This isn't so important when dealing with bug/maintenance fixes since those don't typically involve a lot of code changing in one local spot, however when cranking out new code it does play a part in your productivity (daily SLOC for the metrics geeks).

To be honest something that isn't really on topic for the question but that comes up a lot is knowing your keyboard shortcuts. The last couple of product demo's with my clients that I have had they are continually impressed by how quickly I maneuver around in PowerPoint/Excel/etc (and the keyboard short cuts in the app I'm developing for them). It got to the point where one meeting we spent about 10 mins off topic just talking about it.

It's pretty important just as a speed thing. I used to be a keyboard-looker, and I still do sometimes out of habit. I just sorta became a touch-typer from experience- never really sat down to learn it.

So long as you're not a hunt and peck typer. Worked with one when I did part-time tech support- shudder.

I consider it very useful, and I'm glad I had to learn it at school, even though I hated it back then. BTW, my school was focused on IT and business organisation.

Worrying about it doesn't help. Way back when, I read some book on it, and it told me where my fingers should be when "at rest", namely ASDF and JKL:. Then it's just a matter of moving the closest finger to the letter you need. I still don't have the top row down pat. Then, don't worry about it. The speed just comes, all by itself.

There was a program, "Mavis Beacon Teaches Typing". You're driving a car, and the faster you type, the faster the car goes, and when you make a mistake, a bug splats on your windsheild. That was a lot of fun and helped a lot.

I've never learned to touch type correctly (bringing my hands back to the home row etc.) but I do type with multiple fingers of each hand and can type 45 wpm without errors. So yes, I can see that it useful to be able to type efficiently.

Is it worth it for me unlearn the way I do it and add maybe 20 wpm to my typing speed? I don't know. For typing something like this, sure. Typing code in, not sure. I spend so much time going back and forth to my mouse when I am coding (because I tend to do a lot of stepwise refinement) that I seldom type very long phrases in at a time anyway.

The more you type the less you have to look at your keyboard, its a natural process. Thats why some people on machanical keyboards are able to use blank keys, 1 is because it look clean, 2 is more effieicent that force you to not look at the keyboard. These keyboards such as the DAS proffesional, HHKB pro2...

You can use aids such as AHK, texter. texter is only just a simple GUI based text expander made on top of AHK, simple and easy, but + AHK standalone you get more controls, such as im using the space combo script which allows me to use space bar as a modifer key,

  • eg when holding my space more than 0.2seconds than use others keys such as
  • on the home row- --hjkl = left, down, up, right navigation
  • going a row up,----yuio = back-space, undo, redo,
  • a row down,--------bnm,. = ?('"{

and many many more upon your own liking espeialy for keys like home, end.. or any hard to reach keys, that make your hand out of the home row. such as remap the control key on capslock and another backspace combo for left hand(shift+space) here is the thread about the space bar combo script

http://www.autohotkey.com/forum/post-406030.html#406030

i might put up the script im using after i finish designing my blog, visit my blog after the end of 2010 it might be there. :)

My impression is that people who know how to touch type tend to write more documentation in their code - just because it's easy. This does not directly benefit you, but all the others you work with, maybe including your future self when debugging / extending your own code.

Personally, I am that sick of people who don't document their code that I probably would test programmers on their ability to type fast if I was in charge of selecting people for a project.

Keyboard, IDE, mouse, programming language, ... all should disappear when coding. Touch typing is the only trick that worked for me to make the keyboard disappear. I am still struggling to make the rest of 'em disappear!

Touch-typing is a must have skill for a programmer. I think that most programmers thrive for high words per minute number, and I believe this is where the problem is. I'll try to justify this below:

  • I can touch-type, but I don't chase high WPM while programming, mainly because it gives me more time to think about what I'm doing.

  • Being able to use refactoring shortcuts within IDE is equally important. E.g. Automatic property, rename or extract method shortcuts will save you a lot of the time.

  • Effective use of code snippets and template is more important. E.g. by typing Tst you can make your IDE to generate a test template for you

  • High WPM while pair programming might make it harder for another person to follow you.

To summarise I think that touch-typing is a must-have skill for a competent programmer, however, just like any tool, it shouldn't have a negative impact on your productivity.

Licensed under: CC-BY-SA with attribution
scroll top