a companion discussion area for blog.codinghorror.com

We Are Typists First, Programmers Second


We Are Typists First, Programmers Second

Fast typing won’t hurt if you intend to write a program, but it’s not that important, I think. I spent most time with thinking, not typing. Typing is just needed at the final step of writing software. I do ok with four fingers and not looking at the keyboard all the time.

Typing faster would be much more usefull with all the other stuff programmers have to type. Documentatio, Specification, Guidelines, …


I cant belive why qwerty still is de facto standard keyboard layout, it was designed to be as slow [sic] as possible to prevent typewriters from jamming up,
I’ve been using dvorak it for about a month now and i have to say it is much more comfortable for your hands, all common letters are placed on the homerow so no more twisting and turning all the time.
I type about as fast as i do with qwerty(which i’ve been using for 10years+) but your fingers dont even travel half the distance so i guess with some more training you can get real speed-improvments.
Only bad thing is that when you are to use a computer at a friend or school you can’t type qwerty fast anymore :frowning:

Oh, btw. The world record for typing fast was made with dvorak. 212wpm! :smiley:


More than just typing I think programmers should be good computer users in general. Like knowing how to use keyboard shortcuts instead of the mouse is probably a great tool, better than typing really fast (thanks to Sara Ford and her VS Tips!). I’m amazed to see how many programmers are really lousy computer users…and use the mouse to do really basic stuff like copy/paste…sad.


I agree that it is an important skill

well i first learned using mavis beacon teaches typing
I played house of death in typing mode :slight_smile:

i took the typing test a time ago on a facebook application
it is 89 wpm … faster than 90 % of facebook :stuck_out_tongue:

the other advantages of being a touch typist is that you can look at your friends, out the window or watch something while typing
another thing i like is when i sit in that weird position at work, head hardly on desk level and no one can say anything cuz i can efficiently work :stuck_out_tongue:

however, in other languages, like arabic , i am terribly slow and i can’t immagine how ppl manage with the hunt and strike technique


74 wpm. Although I think I could have done better on a test structured differently – I naturally hit the spacebar twice after each period as I learned to do back in high school, and then had to go and correct myself, which slowed me down and also screwed up my flow with each sentence.

I know a couple of people who type over 120 (maybe not this paragraph with its awkward wording and structure, but I’ve seen them do it in other cases). Neither is a developer. It always fascinates me to see them type. Sentences seem to spring fully-formed onto the computer screen accompanies by a dolphin-like clicking.

Every developer I’ve ever watched type can do ~50 wpm at a bare minimum, and I’ve certainly never seen a developer hunt-and-peck unless it was for a special key on a non-standard keyboard like a laptop or on one of those ergonomic keyboards. I can’t use them – I learned to type by a combination of playing the piano and video games, which means my hands like to naturally cross-over into the others’ territory if the other is busy with a corner key. My mental map can’t easily handle a sharp division of tasks between my hands. I don’t slow down all that much when I’m typing one-handed, either (because my other hand is on the mouse or holding a drink). I don’t type like they teach you to and I may be at a local maximum for my style, but that’s fine by me.

Oh, and I don’t think the walk-into-the-room-and-forget thing is age. I’ve been doing it at least since a teenager. One that I picked up when I was 20 was where I walk into the kitchen and am no longer hungry until I leave. That one is fantastic.

Okay, so I’ve deviated sharply from context in lots of ways. That’s awesome.


I’m so happy that I program using Perl. I can just mash the keyboard with my forehead to get my random gibberish scripts.


Faster typing makes for faster communication. If you think your job is just writing code, and only writing code, I have an entry level position for you with no risk advancement. You want to get past that, you’ll need to write design documents, specs, e-mails, help documents, change logs and work with other people. In short, if you can’t communicate you’re not going to go very far.


I’m a dvorak typist. I just use stickers on a regular keyboard and switch the OS to use dvorak. I’d like to pass dvorak on to my son, but the only way for that to happen at his school is to get an actual dvorak keyboard for him to bring in (they’re not going to be switching the OS setting back and forth for him, but they may let him use his own keyboard).
I’ve searched. Such a beast doesn’t seem exist unless I want to buy one of those keyboards with individual displays on each key which are more than just a bit of overkill.
Has anyone come across a dvorak keyboard?


quoteI don’t find Dvorak much better as it still suffers form the same problem: frequent letters like A, O, E vowels on the outskirts of keyboard./quote

The reason for the layout of the common vowels is so that most of the time your fingers will roll from the outside in which is more natural than the reverse.


I’ve never seen anyone coding that was so bad that it hurt their work. Most of the time, you end up thinking about problems or debugging code before actually writing anything. The bigger time saver lies in learning some keyboard shortcuts to reduce all the clicking that you’d otherwise have to do.


125 =) No mistakes.


I got 109 with a few mistakes… BUT I didn’t even try to correct them (I knew I mistyped a few words) AND I wasn’t warmed up.

I did dictation 10 years back during a summer temp job. One thing about touch typing is sometimes you don’t need the accuracy, so you can suffer mistakes to get through more work in a shorter period of time.

Another thing about touch typing is that you need to warm up. Seriously, just like athletes need to warm before a game, so do touch typists. I used to go in the office, and the first half hour or so I would type noticeably slower than I knew I was capable of. About half an hour in, my fingers would suddenly loosen up and I would get an impressive and noticeable boost in speed.

Also, forget programming. Programming doesn’t teach you to touch type. It does make your fingers faster, but you plateau. If you want to touch type like a pro, you need to practice typing text in your native language (i.e. English). The two best ways I’ve found to learn to touch type: dictation (type what you are listening to, especially if you get paid for it) or copying (type up your buddy who cant type’s homework, especially if you can charge him a couple bucks for it, just don’t let him drop his papers off at 3am the night before an 8am class).

Yet another thing, let your fingers do the work. Don’t even look at what your typing (unless you absolutely have to), look at what you’re copying. Your fingers will tell you when you made a mistake. You’d be surprised, you can fix 90% of the mistakes without ever even looking at the screen. You’ll just know you messed it up, and you’ll know how many times you’ll have to hit backspace to fix it. You’ll need to practice a bit before you can master this, but it’s amazing when you finally do.

Finally, learn to spell correctly. If you can’t spell, it doesn’t matter how fast you type.


right, and swimming is just moving your arms;
move your arms faster and you’re a better swimmer :slight_smile:


Think more, type less,
generate the rest.


I was amazed when learing dvorak - I took the plunge at work in a slower period, and got to 40wpm in 1 week - in 2 weeks I was up to qwerty speed. That’s unlearning all the muscle memory.

Some tips/comments

  • Don’t try to do both (at least while learning).
  • My speed in the test was around 70wpm (but I’ve been using qwerty for a bit recently)
  • I still switch to qwerty for lots of copy paste coding (kidding :)) - copy paste documentation
  • Dvorak is extremely close to a genetically determined keyboard layout http://keithdevens.com/weblog/archive/2002/Jul/06/EfficientKeyboardLayoutByGeneticAlgorithm (not best link…)
  • Keyboard layout/language switching in Windows (left alt+shift etc) works in pretty much everything except in command windows. You need to go to the language bar and select dvorak - not once, but twice - and then it will be in the different language.
  • It’s way more comfortable and can prevent/help OOS
  • Learning to type (with programs) starts with words instead of fksl, lask etc
  • It acts as another layer of computer security - you could tell people your password :stuck_out_tongue:
  • Conversely, you need to set up keyboard shortcuts, so your trusted colleagues can do something with your computer.


While I largely agree with Kyle, I think there is one area where typing skills really help. That area is exploratory programming. If what you have is an idea, and you want to test it out, the faster you can turn a thought into a testable bit of code, the faster you can iterate on that idea. I suspect (almost completely without evidence) that Steve Yegge spends less time in production code than he does in research, which would lead to him valuing typing speed more.

Exploratory programming is crucial to becoming a better programmer. There’s an idea in technical writing that everyone has one million words of crap that they have to get out of the way before they can write well. With programming, it’s probably more like one hundred lines of crap. Type faster, and you get them out of the way faster :slight_smile:


*one million lines of crap. So much for my typing cred :slight_smile:


20 WPM and 2 mistakes.

That was with one hand,right, on my laptop resting on my chest; while I sit in my recliner.


I used to work with Dave Cutler (architect and chief programmer for both Digital’s VAX/VMS and for Microsoft NT).

Dave was a two finger hunt-and-peck typist - he used only his index fingers.

We always used to joke that a criteria for promotion to Consulting Engineer should be the ability to type 90WPM.


Does +70 wpm produce less buggy code than someone who types less than 30 wpm?

The wpm test are great for the feeling of achievement but code writing is a slightly different discipline which has different constrains. ( Boards don’t hit back et al Mr Lee ).

WPM tests:
From screen ( paper / book )
to mind ( duplicate )
to hands ( type )
to screen ( confirmation )

from mind ( computation )
to hands ( type )
to screen ( confirmation )

The BIG difference in coding is thinking. It’s harder than copying.

My experience is that WPM is not as relevant as simple planning. Planning is the BIGGEST factor when it comes to speed of coding.

Most programmers tend to code in sections. After which they pause ( to amongst other things inspect the code they’ve just hacked ).

The size of the sections and the time spent pausing is proportional to the time spent planning before hand. The longer the planning the bigger the sections the quicker the code is written(1).

Take writing a letter to place someone you want to swear at here. You really want to say BEEP OFF!, but it takes you a further 5 minutes to compose that nice letter saying eloquently the same thing.

All that said… 67 wpm… arrrghhh … I was…erm distracted… reload

(1) Naturally this is not always true but ( print ‘hello world’ ) but it’s a good guide line.