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 http://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.