a companion discussion area for blog.codinghorror.com

We Are Typists First, Programmers Second


I’ve noticed that even among non-programmers, hunt-and-peck typists often have limited awareness of what’s actually on the screen. I think that fumbling around on the keyboard while trying to accomplish a task on the computer is like fumbling around with a cell phone while trying to drive. You can do it, but you’re working at less than half of your mental capacity and are liable to make some dangerous mistakes, or at least omit some important details.

I personally know programmers that think that 30-40 wpm is perfectly acceptable because they spend most of their time thinking anyway. I’ve always found that to be a self-defeating argument. If thinking is our core competency and typing is just unavoidable overhead, then it’s EVEN MORE important to minimize that overhead, whether that means automating it with tools or just training ourselves to do it faster.

Think of it as trying to converse in a foreign language without total fluency. You can probably figure out how to ask where the bathroom is, maybe even ask for directions, but you’re not going to have much success with a philosophical discussion.


Also, keyboards are not ergonomic, go read about the history of qwerty, azerty. They where made to slow down typing because writing machine couldn’t handle the secretary typing speed!

That’s a myth. There’s not a single grain of truth to that claim. Kind of ironic how people will feel that they destroyed the post with a comment full of typographical errors and general misinformation.


Well, if Wikipedia says so, it must be true. You might want to actually check the references in that article, though.


The number of places the qwerty myth is referenced is mind-boggling. There’s never been a shred of evidence to support it. It sounds plausible, but a lot of historical fiction sounds plausible.


I’m just a learner, but I feel so much more productive now that I’ve learned to type fairly quickly. While typing speed shouldn’t seem like the limiting factor for programming productivity (you surely spend far more time thinking and reading existing code than you do typing), it’s truly remarkable what improving your typing speed and accuracy will do for your productivity. The faster you can type, the more easily your thoughts flow when you iare/i writing. The more accurately you can type, the less time you spend on frustrating tasks like correcting yourself. The ideal is to think of a line, and write it, all in one rapid action, so that your hands become a direct conduit from your brain to the screen without you having to think about how the symbols got there. When you are waiting for your hands, you are stalling your brain. At best it’s like being in a busy waiting loop, and at worst you can even lose your train of thought.


although I do reserve the right to wonder how you manage to program without using your keyboard


I know this is a bit late, but I think by far the best tool for learning to touch type is GNU typist. Give it a go - it’s awesome.


Well I’m rather late to this party, but here’s a plug for a typing tutor application that I created: Quick Brown Frog: http://www.quickbrownfrog.com.


Obviously Dude! I have read your post it quite interesting and it is true that we are typist first and then programmer. I am also a programmer and I starting I have no typing skill that’s why I code so slow after through online typing website http://www.typinghero.com/ I started my typing lessons, after hard practice by day & night I got the speed of typing 120 wpm and its my big achievement now I code very well and fast And I feel so Cool . . . :slight_smile:


Great thing for programmers is to put typing speed in the resume. For this purpose, you need to pass a typing test at http://www.ratatype.com/typing-test/


Yes I now think that faster typing is an essential programming skill!!

After 30 years working in IT:

We no longer have secretary’s, no keypunch operators,
no data entry clerks, to do the typing for us

programmers, teachers, policemen, doctors(MD’s, real doctors),
nurses, clerks, accountants, lawyers etc, all do their
own typing!!!





When I started in IT, you would write your code on coding sheets,
pass them on to a typist/ data entry person and forget about it for
3 days to 2 weeks!!!

Now you are on your own!!!

Every job requires much higher productivity, since the advent
of object orient languages!!

C++, java, php, asp are symbol intensive languages!!!

cobol, rpg and ibm assembler languages used a minimal
amount of symbols!! ( the good old days).

Yes fast typing is a productivity booster, so after 29 years of
25 wpm typing, I did several online typing courses ans
now type 60 wouds per minute!!

It took a year doing 2 to 3 hrs per week,
if I did it again, I would do at least 1 hr per day,

I still write my programs on a paper note book(on the subway
or on a bus or in the park or at work!

Desk correct it, them type it in for a compile.
Now 3 times faster than before!


The following naming principles for code have massively improved my typing speeds over the years:

  • all variables are named ‘v’, ‘vv’, ‘vvv’, ‘vvvv’, ‘vvvvv’, ‘vvvvvv’, etc,
  • all methods ‘m’, ‘mm’, ‘mmm’, ‘mmmm’, ‘mmmmm’, ‘mmmmmm’, etc,
  • all classes ‘c’, ‘cc’, ‘ccc’, ‘cccc’, ‘ccccc’, ‘cccccc’ etc.

Note also that by consistently using these conventions (e.g. variable name always starts with v), this really helps readability.

As a hunt-and-peck typist, I average about 1000 VPM (Variable Names Per Minute) - I can get up to 2000 VPM if the method is very long (> 10,000 lines of code).

A big bonus is that this speed increase is found on ANY keyboard - especially on any mobile phone.

Every manager in my company has been so impressed with the productivity increase resulting from this practice, they have made it mandatory for all software developers.
To quote my plumber: “With this innovation, software development can now be done by people who can’t touch-type!”.


I help various scientists learn to use Linux and to program. I really appreciate it when they know how to touch type. I can teach them so much more quickly if they don’t have to think about where the keys are to type the commands or syntax I am teaching them.