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
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.
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
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.
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.
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:
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.
Keep your fingers very close to the keyboard. Less distance to travel.
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
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.
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.