38
votes

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.)

6
  • 1
    Touch-type and compact language like Python, imho, are a nice combo; you have plenty of time to focus on how to resolve a problem. Sep 7, 2010 at 7:31
  • 1
    Touch typing just refers to the ability to type by memory, without looking at the keys yes? I sometimes get an impression from touch-typistas that there's some further special methodology to it. Nov 4, 2010 at 21:09
  • @CodexArcanum, you also have to use the right fingers for the keys to keep your hands steady.
    – user1249
    Nov 4, 2010 at 21:28
  • @Thorbjørn You mean like on the homerow? Ok cool then. Yeah, I only have to peek at my keys for symbols and sometimes numbers. (Whose idea was it to put the numbers so far up?) I'd love one of those fancy keyboards like the Kinesis, but I just do not have that kind of cash to spend on keyboards. Nov 4, 2010 at 21:46
  • 2
    @CodexArcanum I've touch-typed since grade school without ever paying attention to the home row. It's more about having a mental model of where the keys are in relation to each other - being able to hit one, I can unconsciously move my fingers the appropriate distance to the next key without looking
    – Izkata
    Dec 14, 2011 at 19:28

20 Answers 20

37
votes

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.

7
  • 6
    Actually... I never learned to touch-type punctuation until I started writing code. But constantly having to correct typos in code encouraged me to pick it up. If anything, accuracy is more important for code than it is for words...
    – Shog9
    Sep 2, 2010 at 17:11
  • @Shog9 Now that I think about it, I do touch type SOME of the punctuations (namely ,.; and sometimes '), but generally I have an aversion to the rest of the keys because of all the strain it causes the pinky. What fingers do you use for the punctuations? Sep 2, 2010 at 17:26
  • all of them except my left pinky! (I think I actually did use that finger as well, once upon a time... But that was when I used a mechanical typewriter, and hitting both the left shift and left punctuation with the same hand was impractical)
    – Shog9
    Sep 2, 2010 at 17:41
  • I touch type nearly all punctuation. I use index and middle fingers for top row numbers/punctuation - left pinky runs shift. Right pinky grabs braces and pipe. I've been touch typing for over twenty years I don't even think about it. I had to test all of these things to tell you which finger does what :)
    – Jeremy
    Nov 5, 2010 at 13:29
  • 4
    "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 strongly disagree. I don't have to type sentences to see a benefit in touch typing, and I can quickly access any punctuation via touch typing. I disagree that it doesn't affect speed, I've seen hunt and peckers type before.
    – Chance
    Jul 1, 2011 at 16:02
90
votes

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?

19
  • 5
    Indeed, but that's not the whole story: In my opinion, if you are a slow typist, that probably means you haven't practiced coding enough to be a good programmer (unless you are a believer in Dijkstra's programming on paper religion).
    – mmx
    Oct 23, 2010 at 8:33
  • 33
    Hunt-and-peck pianist? Great phrase, bad metaphor. Pianists interpret a composition, whereas we compose software.
    – Kramii
    Oct 25, 2010 at 12:33
  • 5
    @toto since when has life ever been "fair"? Oct 25, 2010 at 22:54
  • 5
    I've commented to others that learning to touch-type was the best thing I ever did in terms of my programming career. If I had to do it all over again I would... only I would have learned earlier. I can't count the number of times I watched other "hunt & peck" users type away on the keyboard for 30 seconds (or until told) only to look up and realize that the cursor/caret wasn't focused on the right thing or that another window has stolen the focus etc. Likewise if you use the edit menu or right-click to access cut/copy/paste you are wasting tons of precious time.
    – scunliffe
    Oct 28, 2010 at 21:41
  • 3
    @scunliffe On the opposite end of that story, I've been rapid typing something and not really looking at anything (ah code zoning), only realize that my cursor had jumped to a new window (stupid MSN messenger!) and my code was now about half typed out into the messenger window. The downside of touch typing: going faster than your brain! Nov 4, 2010 at 21:43
31
votes

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.

7
  • 4
    @EpsilonVector: for the purpose of this discussion, it's probably not worth being too strict on the definition of "touch typing": if you can accomplish the same result (remembering the position of keys in order to type without consciously hunting for them, and managing to hit them fast enough to avoid breaking flow) without relying on the "official" finger positions, then you've effectively developed your own, personal touch-typing system. You may think that's just common sense, but... I've seen people with years of experience still struggling, slowly, to find the right keys while typing.
    – Shog9
    Sep 2, 2010 at 17:17
  • 1
    Agreed...having decent typing skills is essential. Sep 16, 2010 at 1:32
  • 1
    Whilst I agree with this and up-voted, typing fast doesn't mean you shouldn't be concise. Hence I added a two line answer that is mostly the same. :) Sep 16, 2010 at 8:34
  • 2
    For much the same reasons, hunt-and-peck programmers seem to be highly susceptible to copy-and-paste programming. I've watched people spend ten to fifteen seconds scrolling up and down the code to find a single line that they can then copy and modify. And then do it again on the next line.
    – mmyers
    Oct 25, 2010 at 18:47
  • 2
    @mmyers: I see this every day at my current job. People will scroll (often using the up-arrow on the scrollbar) to find a similar line they can modify and reuse. One guy takes it further, and copies-and-pastes said line using the Edit menu. It makes me want to tear my hair out. Mar 3, 2011 at 16:44
13
votes

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.

3
  • "Or screen"? You code blind-folded...? ^^
    – gablin
    Oct 9, 2010 at 16:19
  • 6
    gablin - sure - I can do. :P More likely though, I'm looking at the other screen (where the UI is), or at the spec on my desk, in order to decide what comes next (so I can just keep going instead of having to stop to check). Oct 9, 2010 at 16:34
  • 1
    indeed, I am often coding/writing and look up/away to talk to a co-worker about something - have a quick but full conversation with them yet still have my fingers typing away on whatever I was working on. I'm amazed sometimes how well I can do it... it is only when I "think" about the fact that I'm doing it, that I stumble.
    – scunliffe
    Oct 28, 2010 at 21:46
8
votes

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.

1
  • 3
    Under communicate, and under comment. You gotta love the commit comments: "Update".
    – Gauthier
    Oct 25, 2010 at 8:47
6
votes

Taxi company owner to potential employee:

"How important is the ability to drive?"

6
  • 6
    Taxi drivers have a minimum bar for driving ability? I refuse to believe it. Oct 24, 2010 at 3:03
  • 2
    Bad metaphor - programming is not typing, it's thinking.
    – Nobody
    Nov 5, 2010 at 15:52
  • Driving is executing the route thought process. Typing is executing the programming thought process. Nov 8, 2010 at 8:03
  • @rmx: I'd like to know what software you use that you can simply think a program into existence. That would be nifty. Most of us poor slobs have to type our programs in.
    – Wolfger
    Dec 14, 2011 at 17:26
  • I guess all this 'thinking' accounts for all the slideware I've seen over the years... Dec 15, 2011 at 13:36
4
votes

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.

2
votes

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.

2
  • To expand a bit: I've noticed folks who don't type as well are much more reticent to provide even a thin little bit of guidance. I'm not talking about documentation per se, I mean even things like "here's the 10 steps to configure your dev environment to work with our code."
    – MIA
    Sep 16, 2010 at 1:37
  • @Jim Leonardo - that would explain a lot. We have several people who don't like any type of instant message or chat.
    – JeffO
    Sep 16, 2010 at 12:59
2
votes

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.

2
  • rote, boring, but yes, easy. Nov 30, 2010 at 0:49
  • "Learn to type, it's easy" - bullshit. It may be easy to learn before about 25, and it may be easy to learn if you haven't already been using a keyboard without learning the proper form for many years, but I can testify that it sure isn't easy otherwise. Trying to move my typing speed beyond the 30wpm I've been stuck at for years is one of the hardest things I've tried to learn since leaving grad. school. It may still be possible; the jury's still out on that and I'm still trying, but "easy" does not describe this process. Jun 19, 2013 at 2:59
2
votes

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!

1
vote

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?

1
vote

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.

0
votes

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.

1
  • I don't know... When I was a hunt and peck typist I was pretty damn fast, although I wasn't purely a hunt and pecker (I had various ad hoc multi finger combinations for specific words). Sep 2, 2010 at 17:00
0
votes

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.

0
votes

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.

0
votes

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.

0
votes

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. :)

1
  • Translation for non-Windows people: textExpander for Mac, autokey or kbd-mangler on Linux. That said, I find that being a fast touch-typist is a more portable skill than any software aide. ;-)
    – Tom Morris
    Dec 23, 2010 at 23:33
0
votes

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.

0
votes

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!

0
votes

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.

Not the answer you're looking for? Browse other questions tagged or ask your own question.