We Are Typists First, Programmers Second

We are programmers first and typists second. To crib from Dijkstra: Computer science is no more about computers than astronomy is about telescopes.

You can learn to type and you can learn to program. Knowing one does not make the other automatic. I personally feel that there is a bare minimum that all programmers should be able to type comfortably at, but I would take an excellent programmer who hunts and pecks over a 120wpm wtf any day.

Teaching someone to type is a lot easier than teaching someone to program effectively. What you are trying to do is to equate the entire profession to the easiest part of it. It degrades and lessens the profession to say that we are just typists.

Iā€™ve been a long time reader of Coding Horror and Iā€™ve often felt that youā€™ve missed on some things, but Iā€™ve always seen where you were coming from and saw your point of view. However, there is no defense of this post and I honestly cannot believe that you actually posted it. If you donā€™t have the dignity to be ashamed, donā€™t worry, I am ashamed for you.

Wow. Anyone who needs to be a typist first coding C# (that is what StackOverflow is coded in right?) must be writing some of the worst code Iā€™ve ever seen, has never heard or resharper, or generally has a masochistic relationship with programming.

I mean honestly, I have those mental lapses where I walk into a room and totally blank on why Iā€™m there too, but if thatā€™s your argument for being a typist first and programmer secondā€¦ hereā€™s your straw.

Although typing skills are needed (I work with a hunt and peck programmer and it can be infuriating to pair with him), being an 84wpm typist wonā€™t (read: shouldnā€™t) change your production at the end of the day.

Great post and absolutely valid. As a programmer, you should be able, to use a keyboard without thinking about it.

I have tried to learn dvorak (hoping to become a bit more effective and to scare people, who take my keyboard). And while on dvorak, I still have to think about what my fingers do. And my brain lacks the power to think about typing and coding at the same timeā€¦ I either make stupid mistakes, that I would not do normaly or I am incredibly slow.

(nonetheless I would still recommend learning dvorak as it is a very interesting experience, to relearn all your fingers to something different).

By the way. There is a very interesting keyboardlayout, called mirrorboard. Maybe not the most effective way to type, but hey - it enables you to type while eating or holding a cup of coffee :wink:

http://blag.xkcd.com/2007/08/14/mirrorboard-a-one-handed-keyboard-layout-for-the-lazy/

63 wpm, 1 mistake.

I think being able to type is fundamental to programming however most of the programming work Iā€™ve done rarely relies on being a very quick typer. I spend a lot more of my time thinking. Iā€™m still very new at this though!

@Graeme - Imagine that he could type at 80wpm though. He could write 2-3 times as much great code as now!

Instead of just remembering what I need to do when I go to the other room, I should just run really fast. haha, I should try doing this at work.

Co-worker: (slightly yelling) Where are you running to ?

Me: Canā€™t talk, must not get distraccctteeddā€¦ (zooms by)

ā€“

This makes me think of the tortoise and the hare. If I remember right the turtle wins ā€¦ but obviously not because of his speed. I donā€™t think I completely agree with what your saying. Not that learning to type faster is a bad thing, but many rookie programmers like myself have bigger issues to tackle.

And writers should know how to type too! :slight_smile:

68 wpm, no mistakes, on second try and some tiring (missed to start the clock on the first tryā€¦). I currently wonā€™t be able to hold that speed for longer passages of text. BTW, I learned typing at school on mechanical, electric and finally electronic typewriters, in that order, followed by a C64ā€¦
Device: Cherry G80-3000 with click characteristics. Not as expensive as Das Keyboard. I simply like it; reminds me of some of the massive keyboards Iā€™ve used with PCs and XTs but is much easier to type on :slight_smile:
And I agree with Steve and you (already read his article when it was published); time you donā€™t need to spend thinking about operating your tools is time you can spend thinking about your program, avoiding micro-context switches.

Jeff really the title of this post should be reversed. It should be We Are Programmers First,Typists Second. Iā€™ve seen plenty of devs who could type fast but could there code compile or be maintained by anyone but them? The most important thing really is concentrating on correctness, maintainability, security, and lastly performance.
Typing is important too but it is last on the list of the attribute checklist of a successful programmer.

At least four times a day, I walk into a room having no idea why I entered that room.

My cat does that too. Usually, heā€™s in big hurry. I figure he must be very, very late.

Sometimes I think developers should type less and think more.

Like the jazz veteran said to the rookie, Donā€™t just play something! Stand there!

So if being a master typist makes you a good programmer than what skill makes you a good software engineer?

Iā€™ve seen my fair share of typists that can produce hundreds of lines of crap code on any given day. Iā€™d rather hire the guy who actually thinks about the code he is writing, who understands that every instruction is a potential bug, and is properly motivated to write effective (and often less) code that is understood by others and is easily extensible.

Iā€™m not convinced that typing is a core programming discipline.

It takes so much more time to figure out what code to type than it takes to actully key it in that the typing time itself is insignificant.

Perhpas I over-edit, but even when authoring email and documentation, I spend far more time considering my words than I do typing.

Also, as Usman Shaheen first posted earlier. Work smarter, not harder.

37wpm, by the way.

First off, lousy typing test. It gave me two mistakes for typing the second-to-last sentence correctly. Apparently would rouse != would rouse.
But I call shenanigans on this entire hypothesis anyway. Iā€™ve known lots of developers who could type code blazingly fast, and they tend to write unelegant and unmaintainable solutions because theyā€™re racing to express the first and most obvious solution that pops into their heads. Iā€™ve known (far fewer) developers who type painfully slowly, but who think a lot first. Guess which one Iā€™d rather work with.
If youā€™re one of those developers who thinks through a problem by writing down your thoughts in code, then yes, typing well will get you there faster (though paragraph typing tests that donā€™t even use curly braces have jack to do with code typing skills). If youā€™re not that type of coder, spend your time practicing with a whiteboard and your brain, not seeing how fast you can type a three-page unmaintainable nested for-loop.

I type at 158wpm (according to Guiness World Record measurements) and I have the opposite problem - sometimes my brain canā€™t keep up with my hands!

My tips for typing faster would be:

  1. Try to type a word at a time, not a character at a time. Most people use a small collection of words over and over again, and your hands can be taught to remember how to type words in their entirety without thinking about them.
  2. Keep your fingers very close to the keyboard. Less distance to travel.
  3. Never, ever, look at the keyboard. Not even even if you have a blank one.

Having a decent typing speed is probably quite useful as a coder. Thing is, typing tutors teach us how to type /words and paragraphs/, not snippets of code.

Our code is full of brackets, dots, semi-colons and other unusual characters. So being able to wittle out prose at 95WPM might make you look good, but can you find the $ key with your eyes shut, or hit the sequence

Plus-equals-tab-enter-enter

without looking at your keyboard?

So weā€™re not typists; providing you can type at a consistent speed and use more than two fingers, it probably doesnā€™t matter what that speed is. Forgetting what Iā€™m typing isnā€™t because my fingers move too slowly, itā€™s because I donā€™t understand what to do so I actually need to stop typing and have a think about it.

Itā€™s more important to know how to use your editor correctly, than to bash text in as fast as possible. I wonder how many of us use Visual Studio and havenā€™t used the refactoring tools, or ignore intellisense - or use a bog standard text editor when there are much better alternatives out there.

Itā€™s not WPM that matter, itā€™s LPM (lines per minute).

I would put a lot more value on knowing how to work your IDE and 3rd Party tools to make you a faster programmer than WPM.

Take for instance this CodeRush command:

pl.s

Thatā€™s ONE word that generates this:

private Liststring _list;
public Liststring List
{
get { return _list; }
set { _list = value; }
}

1 14 words :smiley:

I would take the time to learn CodeRush than become a better typist any day. After you got that down, THEN become a better typist to send emails and type up requirements faster.

Found this post so interesting I blogged about it myself (http://halfbadboy.blogspot.com/2008/11/programmers-are-typists-and-more.html). Even more interesting has been to read through the comments and see that frequently, the people who think typing speed doesnā€™t matter tend to have a low typing speed, and those who think it does matter tend to have a high typing speed.

In my experience as a software engineer, typing is a big part of what I do for my job, which is not always writing code. Writing design documents, API documentation, test cases, and SDK documents are other aspects of my profession where I also benefit from strong typing skills. And I canā€™t use code completion or other typing shortcuts in an IDE to help me out there.

Jeff, you can link directly to a quote in IMDB. Just see the page source and find the closest to the wanted quote. I did it today.

I think a 40-60 is a good standard - itā€™s fast enough that you can type about as fast as you compose. Faster is always nicer, of course. And in todayā€™s world itā€™s scary how many people canā€™t type more than 20 period. (Iā€™m probably about 45 words these days - havenā€™t had time to check recently - but Iā€™m still tagged to do dictation around the office.)

I will agree that standard typing doesnā€™t translate very well to some programming languages (Perl, Iā€™m lookinā€™ at you, my friend). But the mechanics are the same - you should be able to type without looking at the keyboard.