Every once in a while somebody who I think is very smart makes a pretty boffo comment. Case in point: Jeff Atwood over at Coding Horror concurs with the idea:
Wow. I really disagree with this.
I have worked on any number of projects over the years where it has been obvious to me that one or more of the engineers who work on the project can type....and by this I mean TYPE A LOT. I've seen projects that were comprised of a lot of code....piles of code...reams of code...tons of code. I am not exaggerating even a little bit when I tell you that I even knew of a project that involved a lot of highly paid engineers doing a lot of typing ("typing" and not "coding"). The project manager of that project cheerfully reported the progress of the project by saying "at this rate, we've got another 7 months of typing ahead of us". In the end, by any reasonable measure, THAT project turned out to be a total failure. Why was this project a failure? Because the engineers weren't typing the right things!
For the record, I think that it is a good idea that programmers can type reasonably well, but on the other hand the things that I value in a programmer are problem solving abilities, communication abilities, technical skills, and overall professionalism. I've met programmers who have all of these abilities and aren't the greatest typists. Would I hire these programmers to implement a project? You bet I would.
If Jeff Atwood is correct and typing is the most important course that a CS student could ever take, computer science departments all over should immediately adjust their curriculum. Also, the process of hiring software engineers needs to change. First and foremost, every software engineer must change the format of their resume to prominently mention how many words per minute they can type. The first step to any software engineering interview must be changed to include a rigorous typing test.
I think that I'll end the reductio ad absurdum now...
For a software engineer, it's not how fast you type, it's what you type that is important.