Thinking Speed over Typing Speed

Last week I ran across a blog post by John D Cook titled How much does typing speed matter? that got into the debate over how fast programmers should be able to type. It was a response to Jeff Attwood who had compared programmers to pianists. (Cult of the Keyboard) John Cook compares programmers to writers. I think John is on to something. I know that my style of programming is a lot like my style of writing prose. In both cases I spend a lot of time thinking before I put fingers to keyboard. Sure there is an advantage to being able to type quickly especially when writing something like a blog post or a book or documentation. The marginal value of being a fast typist when entering code is not as great though. The lack of a spell checker in an IDE is alone a good reason for someone like me to slow down a little.

But the most important part of any writing, prose or code, is knowing what you are doing. I used to accuse some of my students of the “Ready, Fire, Aim” school of programming. In some cases they skipped the “ready” part completely and jumped right into fire and then trying to do mid course corrections. Basically like they say no matter how fast you are going if you don’t know the way you are not going to get there.

What a lot of programmers do, ok not many professionals but a lot of students, is to keep entering different bits of code and running the compiler to see if they fixed things. It’s not too far from the old line about enough monkeys on enough typewriters over enough time turning out the works of Shakespeare. It’s not the best way to do things.

Give me a programmer who thinks about the problem, develops a plan/algorithm and then systematically and even slowly enters the code. Hunt and peck? Sure, fine, why do if care if I know that there will be a lot less wasted time debugging later on? And you know what? If you go slow and look at the Intellisence suggestions in an IDE like Visual Studio you may stumble across something new and perhaps even better. You can miss a lot by moving too quickly.

Note: That I am on vacation this week so this post was prepared in advance for appearance now. To subscribe to this blog please use https://feeds.feedburner.com/ComputerScienceTeacher as the RSS feed source. Thanks.
 BTW I wrote this last week so it would show up today and people would not forget I exist. Smile

Comments

  • Anonymous
    December 22, 2010
    The brain is your bottleneck so worrying about typing speed is premature optimization. If most of your time is spent typing instead of thinking then you REALLY need to improve your typing :)

  • Anonymous
    December 22, 2010
    The comment has been removed

  • Anonymous
    December 23, 2010
    Without a doubt accuracy and program correctness trumps typing speed. What does it matter how fast you can type up a program if the whole blasted thing doesn't even work???? This can't be emphasized enough. Computer programs are much more complex,intricate and in need of unforgiving attention to detail than any novel, blog, email, report,etc where touch typing skills may come into play. Typing speed is a nice to have skill but skill and aptitude to solve problems and attention to detail are much more important.

  • Anonymous
    December 25, 2010
    Is it too much to ask you to be fast at both? I was very fast at thinking about problems and solving but I also learned to touch type and type quickly as well. Having a debate about thinking speed vs thought speed is pointless. You should really just have both.

  • Anonymous
    December 31, 2010
    I'm sure that there is great content on your website.  Actually, I'm certain of it. Unfortunately, I don't stick around long enough to read any of it - because it's in a minuscule column that is buffeted by huge columns of ancillary information. If you're a serious developer, than take the usability of your website seriously.

  • Anonymous
    December 31, 2010
    Thanks for the feedback Dan. I am working on a redesign.

  • Anonymous
    January 02, 2011
    My favourite post on this subject is Stevey's rant on it: steve-yegge.blogspot.com/.../programmings-dirtiest-little-secret.html In it, he responds to the argument that you spend most of your time not typing with the following: "You're wrong, though. Programmers type all day long, even when they're designing. Especially when they're designing, in fact, because they need to have conversations with remote participants." Which is a good point - I may not spend all of my time in a day coding, but I do spend a lot of it typing - running google searches, issuing commands, asking questions on IRC or other messaging mediums... if my typing speed is slow, then all the rest of this suffers and so I do everything slower. And yes, the special characters in coding make my speed there slower than normal, as does spending some time thinking about what I'm about to type. I still get decent speeds though.