5 ms·
I used to tell the students I TA'ed that their first task -- assuming they were physically able to do so -- was to be able to type at 60wpm with high accuracy,
by jlebar 12y ago
I used to tell the students I TA'ed that their first task -- assuming they were physically able to do so -- was to be able to type at 60wpm with high accuracy, without looking at the keys. Many students, and indeed many professional programmers can't, and I'm increasingly convinced it holds them back [1].
Surely at least until you can type quickly and accurately, you're not going to get much out of learning to use a complex editor like emacs or vim, and indeed most command-line tools are going to be a chore to use.
As Jeff Atwood says, "When was the last time you saw a hunt-and-peck pianist?" [2]
[1] This is of course not an original thought. Here's Jeff Atwood saying the same thing: http://blog.codinghorror.com/we-are-typists-first-programmers-second/ http://blog.codinghorror.com/we-are-typists-first-programmer...
[2] http://blog.codinghorror.com/the-keyboard-cult/ http://blog.codinghorror.com/the-keyboard-cult/ (I should mention that I don't agree with most of this post, but the line about pianists has always stuck with me.)
- elnygren 12y agoIf typing speed is the bottleneck in your programming, you are doing way too easy and trivial stuff. Start thinking about how to make more advanced tools/frameworks/architectures/whatever-it-is-you-do that allow you to think more and code less. OK, I do see that it will never be a bad thing to be a fast typer. However, spend a year learning to type faster or spend a year learning more math, logic and advanced progamming concepts ?
- thret 12y agoWoah there, it doesn't take a year. It takes several hours to learn how to touch type slowly, the speed comes as you type every day - which you're going to do anyway. You will save time whenever you touch a keyboard for the rest of your life.
- Fannon 12y agoIt may be true that thinking your code through takes a LOT longer than actually writing it. But: Beeing able to put a thought / idea (once it's there) to code very fast is helpful. At least I can't hold an complex idea in my head forever. If someone is really good at 10 finger writing, he doesn't have to put thought / focus in the writing process itself. That frees him up for the thinking process. Writing documentation is important too, and here speed can be helpful, too. And 60wpm isn't that much. My impression is that some young people write that on their smartphone ;) (though definately you couldn't call that high accuracy)
- onion2k 12y agoStart thinking about how to make more advanced tools/frameworks/architectures/whatever-it-is-you-do that allow you to think more and code less. I wouldn't necessarily recommend spending a year learning to type, but I would definitely recommend writing documentation as a process that will improve your code. Writing proper specifications, proposals, documentation, etc highlights problems amazingly well. I would argue that is what makes you a better coder, more than actually writing code, because explaining how your code works is the best way to see how your code could be improved.
- emsy 12y ago> If typing speed is the bottleneck in your programming, you are doing way too easy and trivial stuff. That's just your assumption. I'd say typing is probably the sill that's easiest to optimize. Even if you just type 10% of your time, cutting it down by half is a significant improvement. Also, proper typing will boost your confidence and free your mind for more relevant things. To draw parallels with Jiro: Cooks learn how to properly use a knife before they're even allowed to cook. They do so by exercising preperation over and over.
- icebraining 12y agoI'd say typing is probably the sill that's easiest to optimize. Muphry's law strikes again :)
- deleted 12y ago[deleted]
- deleted 12y ago[deleted]
- chakrit 12y agoI find typing speed by itself not something you explicitly need to `learn`. Any coder worth his salt would definitely have spent years typing in code which _should_ result in the coder having fast typing speed. To say that you need fast typing to be a good programmer feels like a reversal of cause and effect to me. IMO People should be taught to love coding, then they'll naturally pick up touch typing by themselves.
- dmichulke 12y agoThis is certainly "truer" for brainfuck and Java than for Haskell and clojure, especially if you don't have access to an IDE.
- mikekchar 12y agoI can touch type and I have worked very hard to be a good typist. Having said that, I intentionally limit my typing to 30 wpm for several reasons. First, it has seriously helped RSI for me. About 15 years ago, I started to get warning signs that I was going to have problems. I slowed down and implemented short 2-3 second breaks every 30 or 40 seconds. I've been symptom free since then. YMMV. More importantly, when I intentionally slowed my typing my coding improved dramatically. I went from short bursts of thinking followed by short bursts of typing, to continuous thinking. I started thinking about things that I had never considered before. Since I had time, I started to wonder if what I was typing was really the best way to solve my problem. When I am coaching others, especially junior people with only a couple of years under their belts, I tell them to slow down. Like you, I am a huge proponent of learning to touch type properly. You should practice and refine your technique. However, I highly recommend typing slowly, steadily and calmly.