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.

It is nice that there are services such as TypeRacer where you can practice casual writing but I want to practice programmer keys, covers more numbers and keys not used by regular typist. There was some tutor with which I practiced some programmer keys and noticed that my speed dropped dramatically from 70-80 wpm to even about 15-30 wpm, it also trains different muscles. So how can I practice just programming keys with programming texts or just random code pieces?

share|improve this question

closed as off topic by gnat, Blrfl, Walter, Robert Harvey, ChrisF Nov 2 '12 at 23:38

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.

5  
Dude! TypeRacer = tendinitus. Typing fast will not make you Jeff Atwood. Thinking fast is what matters. Slow typing has an advantage - gives you time to think "Do I really want to send this email?". –  Job Apr 19 '11 at 14:35
add comment

4 Answers 4

up vote 18 down vote accepted

Print out some code or display it on a second monitor and re-type it.

Note: I find my typing speed is not my largest bottleneck for programming. The amount of time it takes to type the syntax is small compared to the time spend thinking about, designing, debugging, etc. the same code.

share|improve this answer
16  
+1: Typing speed means jack diddly unless you're cranking out crappy repetitive code that should be thrown away anyway. –  Joel Etherton Apr 19 '11 at 13:14
2  
@Joel: Beyond a certain point I agree, but if someone is a hunt-and-peck typist then they're thinking about typing and not coding. Programmers need some minimal amount of typing speed so they don't need to think about the keyboard and can just concentrate on the code. –  Bill the Lizard Apr 19 '11 at 13:53
3  
@Bill the Lizard: Oh I absolutely agree, but I would say 15-30wpm discounts the possibility of a "hunt and peck" typist. I still think the difference between someone who reliably types 80wpm and someone who types 30wpm is negligible when it comes to cranking out code. –  Joel Etherton Apr 19 '11 at 13:55
1  
@Joel - I know the question is specifically about typing code, but so much of our communication is typed, that is can become an issue. –  JeffO Apr 19 '11 at 14:03
3  
@Joel: You can hit 20 wpm hunting and pecking. I've been measured at 87 wpm, and I think that's a slight advantage in some occasional circumstances, but the only important thing is whether the typing takes any conscious effort whatsoever. –  David Thornley Apr 19 '11 at 14:13
show 4 more comments

Although I totally agree with jzd's answer that typing speed is practically irrelevant since it is so small compared to the time you need to think about the code, out of my own experience I can recommend the following approach to improve your typing speed.

First of all, like lfx says, just type code which you are already doing anyway, but while doing so, just force yourself not to look at the keyboard at all ... ever. Only if you haven't got a clue at all where a certain symbol is, look for it and type it without looking at your keyboard afterwards, and force yourself to do so with the correct finger(s). This will slow you down a lot at first, but after a while your brain wires up correctly and you can program while looking at you screen constantly. After that, the more you program, the more fluent you will get.


Perhaps more importantly, don't forget to familiarize yourself with common shortkeys which prevent you from reaching for your mouse. Two of my favorites in Visual Studio are F12 (go to declaration) and ctrl-(-) (go to previous location). Be able to reach your Home and End keys blindly will also improve your speed in cutting and pasting entire lines/blocks and so on ...

share|improve this answer
2  
+1: This is how I learnt to touch type –  chrisbunney Apr 19 '11 at 13:37
    
@chrisbunney: +1 also with me but I used a colored labels inside a silicon cover like this one here, lower cost to buying ultimate keyboard. Also I sprayed some old keyboard that was going to bin, it was very fun! –  user7893 Apr 19 '11 at 13:47
add comment

Depending on the language you use, some types of programs require a lot of typing.

For example, in Java, writing a Swing application from scratch requires the instantiation and association of so many classes and objects that you'll improve your typing by the time it's fully functional.

In most languages database-related code is very verbose and typically involves a lot of strings, flags and escaping. So just writing a piece of database code can help as well.

If you just complete a Swing or database tutorial you'll focus mostly on typing (and maybe learn something else along the way).

share|improve this answer
add comment

One thing that helped me tremendously was buying a Das Keyboard. It has no markings on it and forced me to develop muscle memory for all of the non-alphanumeric keys. As a bonus, it also has that satisfying, old-time clicky feel.

share|improve this answer
    
+1 for Das Keyboard - for an extra challenge reconfigure it to Dvorak :) –  MattDavey Mar 9 '12 at 16:41
add comment