Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Many young programmers think that their bottleneck is typing speed. After some experience one realizes that it is not the case, you have to think much more than type.

At some point my room-mate forced me to turn of the light (he sleeps during the night). I had to learn to touch type and I experienced an actual improvement in programming skill. The most surprising was that the improvement not due to sheer typing speed, but to a change in mindset. I'm less afraid now to try new things and refactor them later if they work well. It's like having a new tool in the bag.

Have anyone of you had similar experience?

Now I trained a touch typing a little with KTouch. I find auto-generate lessons the best. I can use this program to create new lessons out of text files but it's only verbatim training, not auto-generated based on a language model.

Do you know any touch typing program that allows creation of custom, but randomized lessons?

share|improve this question
4  
Interesting story but the story part belongs in your blog and the question belongs on superuser.com :-) –  Aaron Digulla Mar 17 '10 at 12:37
10  
Friends who sleep at night? Come on, that's ridiculous! –  Martin Mar 17 '10 at 12:38
1  
@Martin: LOL. Upvoted. :) –  Alexander Burke Mar 17 '10 at 14:40
    
The question in the title does belong on StackOverflow, and that is apparently what everyone here answered. However, the question was already asked (and extensively answered) on StackOverflow 2 years ago –  Benjol Sep 16 '10 at 11:45
    
Here are some typing test specifically for programming: wpm-test.com/programming-typing-test and typing.io –  luisperezphd Sep 12 '13 at 1:16
add comment

migrated from stackoverflow.com Mar 17 '10 at 12:39

This question came from our site for professional and enthusiast programmers.

12 Answers

You need to be able to touch type, otherwise a part of your attention is on the keyboard and not on the problem. Once you can touch type (even if only 40 words/minute) without thinking about it you will not gain any additional advantage while programming. After that the bottleneck is how fast you can think.

share|improve this answer
3  
I wish I could upvote this more. Typing speed is usually irrelevant. Having to think about typing is crucial. –  David Thornley Mar 17 '10 at 13:28
add comment

Many young programmers think that their bottleneck is typing speed. After some experience one realizes that it is not the case, you have to think much more than type.

I'd argue that most programmers don't know how to program (example) but yes, it's much more important to think rather than just type frantically away.

At some point my room-mate forced me to turn of the light (he sleeps during the night). I had to learn to touch type and I experienced an actual improvement in programming skill.

I'm assuming you're referring to programming "typing" skill. To shed some positive light (no pun intended), I have seen programmers who were poor at typing that did have an effect on their productivity. But I would not go as far to say typing speed correlates to programming skills. Typing in the dark may help you with typing - period. It shouldn't make you a better programmer. It should only make you a better typer, making your typing for programming a little easier, almost second nature.

The most surprising was that the improvement not due to sheer typing speed, but to a change in mindset. I'm less afraid now to try new things and refactor them later if they work well. It's like having a new tool in the bag.

Have anyone of you had similar experience?

Not really. I've never been the fastest typer nor the slowest. I don't see typing speed as a barrier to anything but finishing something a little bit faster. I'd rather focus on problem-solving. Sometimes when we work a little too fast, the details become a blur and we forget a minor detail that was of the utmost importance.

If you think typing speed is what's necessary to be a "good" programmer, I hate to say it but you're wrong. Problem solving is above and beyond the bigger attribute I would vouch for. Typing speed is an admirable quality to have, but isn't necessary IMHO. But typing speed usually improves over time by actually programming over and over and over. I don't think it requires any more attention than what you're giving it.

Unless your programming assignments/work are on an extremely tight deadlines typing speed may be an issue but in large part of a programming career, it's practically the least important attribute to worry about.

share|improve this answer
3  
Typing speed is not all that important, since it's greater than thinking-about-programs speed. Typing fluidity, the ability to get characters onto the screen without thinking of how to do it, is important. If you are concentrating on typing part of the time and programming part of the time, you'll be less productive than if you're just thinking about programming and just doing the typing. –  David Thornley Mar 17 '10 at 13:27
add comment

In my experience with a current IDE you actually type very little, intellisense or whatever your IDE of choice has does most of the actual text.

Programming is problem solving, how fast you can write it down does of course affect your performance, but only if it's the bottleneck. Often figuring out the problem, or the most efficient way of solving it is the actual bottleneck.

The time you spend typing should not be the majority of your time overall, so the speed at which you type should not have a huge impact overall. But yes, if you are extremely slow, it'll cost time.

share|improve this answer
add comment

Jeff Atwood's post We are typists first, programmers second is a pretty good answer to this.

share|improve this answer
1  
I agree, I not only need to write code. I also write emails asking questions write blog posts to have record of what I've learned, etc. Touch typing is an essential skill for a good developer in my opinion. –  elviejo May 19 '13 at 18:05
add comment

Fast typing has a huge impact on all kinds of development effort - especially coding and hacking. Plus you get the documentation done quickly and that leaves more you time to be on SuperUser and StackOverflow.

share|improve this answer
1  
typing speed is crucial for writing documentation, that's true. –  bastibe Mar 19 '10 at 19:05
add comment

Had an interview once where just before the end of the interview the guy gave me a random sheet of paper and had me type it for him, just to see if I could touch type. Of course I could because I spent 2 years as a tele-type relay operator, but apparently that's important to some people.

Right now, I'm a programmer and for the last 2 years my IBM model-m keyboard has been in One-Handed (Left Handed) Dvorak mode but the keymapping is still in QWERTY. Needless to say, I haven't looked at my computer for a long time and don't have much of a problem with the tech guys at the office logging on to my computer.

Oops got lost in my anecdote and forgot to answer the question.

Yeah, I think typing speed it important to programming skill because the faster you can type the more likely you are to write new code and not copy your old code (which is usually considered more harmful) although conversely, if you can type slower you may be able to think more about what you're doing and you're less apt to do something REALLY dumb.

share|improve this answer
add comment

There will always be big rows about this. Personally, I did learn touch typing, and occasionally relearn it if I'm doing a lot of non-programming typing, but it doesn't work well for programming anyway.

I have never percieved typing speed as a reason to avoid refactoring. Reading speed is much more important than writing speed for any kind of maintenance - being able to understand other peoples code is the most common bottleneck.

WRT my own code, I recently revisited C code I wrote 20 or more years ago, and could not only read it quite easily, I was adapting it within minutes. OTOH some assembler code written around the same time took at least half an hour of adding comments before I spotted a bug that I apparently never spotted 20 years ago (or possibly somewhere in the last 20 years I lost the debugged version and kept an outdated one).

share|improve this answer
add comment
  1. Learn to type
  2. ???
  3. Profit!!!

But in all seriousness, programming fast only comes with experience. I can code solutions quickly, but only because I can think them through thoroughly and accurately before I even touch my keyboard and generally only have to debug for syntax. My average typing speed is between 30 - 50 Words Per Minute (which is pretty damn slow).

Typing without looking is a required skill for any computer work, in my opinion, and has replaced cursive writing as the 'must-have' communications skill, after twittering. ;)

share|improve this answer
add comment

I had a coworker that was a pretty bad typist, he was basically typing with two fingers. In dynamic languages, there are very few places where the IDE can help you with code completion, so he just copy-pasted the longer words. This had the effect of taking the typo "messageQuee", through the entire project.

share|improve this answer
add comment

I touch type. I find that my coding speeds up most when I use templates and code libraries. I also use a smart editor which supports programmable scripts (kedit uses rexx) this allows me to not need the typing since I've programmed the editor to support templates. I use this for the primary code and copy and paste for the code in the IDE. I find that copy and paste far exceeds the capability of either typing or intellisence.

share|improve this answer
    
What about common wisdom that says every copy and paste introduces at least one bug? –  Bevan Mar 23 '10 at 8:53
    
never heard of it –  Dave Mar 24 '10 at 19:27
add comment

Steve Yegge wrote a very good rant on this subject.

In brief typing speed has nothing to do with being a better programmer but no matter how fast you think at the end of the day you have to put your thoughts into code and the faster you can do that the better.

share|improve this answer
add comment

I use the dvorak keyboard....it helps me type faster and is easier to use...so I have more of my brain for coding.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.