Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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

share
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. –  systempuntoout Sep 7 '10 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. –  CodexArcanum Nov 4 '10 at 21:09
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 '11 at 19:28
show 3 more comments

locked by World Engineer Sep 21 '13 at 1:25

This question exists because it has historical significance, but it is not considered a good, on-topic question for this site, so please do not use it as evidence that you can ask similar questions here. This question and its answers are frozen and cannot be changed. More info: help center.

closed as off topic by Walter, gnat, Thomas Owens Nov 19 '12 at 1:17

Questions on Programmers Stack Exchange are expected to relate to software development within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

20 Answers

up vote 37 down vote accepted

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.

share
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 '10 at 17:11
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 '11 at 16:02
show 6 more comments

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.

share
add comment

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!

share
add comment

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.

share
add comment

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!

share
add comment

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

share
show 1 more comment

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.

share
add comment

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.

share
add comment

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.

share
add comment

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.

share
add comment

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.

share
show 2 more comments

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.

share
add comment

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?

share
add comment

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?

share
20  
Yes. Yes. Yes. “hunt-and-peck pianist”. I love you for that. –  Jonathan Sterling Oct 7 '10 at 17: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). –  LeakyCode Oct 23 '10 at 8:33
33  
Hunt-and-peck pianist? Great phrase, bad metaphor. Pianists interpret a composition, whereas we compose software. –  Kramii Oct 25 '10 at 12:33
5  
@toto since when has life ever been "fair"? –  Jeff Atwood Oct 25 '10 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 '10 at 21:41
show 15 more comments

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.

share
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). –  Peter Boughton Oct 9 '10 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 '10 at 21:46
show 1 more comment

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.

share
3  
Under communicate, and under comment. You gotta love the commit comments: "Update". –  Gauthier Oct 25 '10 at 8:47
add comment

Taxi company owner to potential employee:

"How important is the ability to drive?"

share
6  
Taxi drivers have a minimum bar for driving ability? I refuse to believe it. –  Jared Updike Oct 24 '10 at 3:03
2  
Bad metaphor - programming is not typing, it's thinking. –  rmx Nov 5 '10 at 15:52
show 4 more comments

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.

share
show 2 more comments

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.

share
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 '10 at 17:17
1  
Agreed...having decent typing skills is essential. –  Robert Harvey Sep 16 '10 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. :) –  Peter Boughton Sep 16 '10 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 '10 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. –  Joshua Smith Mar 3 '11 at 16:44
show 2 more comments

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.

share
show 1 more comment

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