Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Possible Duplicate:
How important is the ability to touch-type?

We're going to hire new programmers and we just wondered should we include typing skill in our employment filters? Someone has already applied for the the vacant position, and is qualified for it. The only thing that is under doubt, is his poor typing skill (using 2 fingers and slowly).

Should we consider this as a highly negative point? Or in general, should developers know how to type fast?

Also I want to know how fast a touch-typist can type? Mine is 69 wpm with 95% accuracy (690 lpm)

share|improve this question

marked as duplicate by tcrosley, Walter, Doug T., Jonathan Khoo, Anna Lear Jul 24 '11 at 4:22

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

7  
It's a good thing they didn't test my typing skill at my interviews. I use the dvorak layout. –  WuHoUnited Jul 23 '11 at 14:54
5  
Poor typing skills like this could be the result of arthritis or carpel tunnel. That could mean the candidate has more typing experience than your other candidates. –  Jim Schubert Jul 23 '11 at 16:37
show 5 more comments

18 Answers

up vote 40 down vote accepted

Not being able touch-type as a programmer is like a cook who takes ages to slice his food up.

The end result isn't influenced by the speed, however, from the speed of the person you can make a good estimate of his experience. Slow 2 finger typing IMHO indicates a problem.

The many other overly simplified 'no' answers don't take into account all aspects of programming.

  • Writing code.
  • Writing documentation.
  • Communicating with collegues through email.
  • Browsing internet for documentation.
  • ...

Furthermore, the ability to continue looking at your screen while you write code gives another big speed increase.

I'm not saying you are a bad programmer when you can't touch type. I am saying you will be a faster programmer and computer user in general when you learn to touch type. When you are an experienced computer user it doesn't even take you that long to learn. (1-2 weeks if you are a frequent computer user)

Every computer user should learn how to touch-type.

share|improve this answer
5  
+1: excellent analogy. –  kevin cline Jul 23 '11 at 15:47
9  
I don't get it: a cook needs to slice stuff quickly or customers/food gets bad. Sure, but how is that related to programming. You have to write code really fast or your clients leave? –  Martin Wickman Jul 23 '11 at 17:27
13  
I've never seen anyone chop food so poorly that it spoiled. –  JeffO Jul 23 '11 at 20:05
1  
Just remember, if you touch type for long periods of time, immobilizing your forearms while making your fingers do all the stretching, remember to either take breaks and let your carpal tunnel recover, or plan on getting promoted out of programming before CTS sets in. –  Mike DeSimone Jul 24 '11 at 4:08
2  
If your a crap cook, it doesn't matter if you serve your food any faster, it would just be crap served faster. –  Darknight Jul 25 '11 at 13:03
show 6 more comments

In real life, developers spend most of their work time on activities other than coding. Moreover, even when coding, clarity and consistency of thoughts is much more important than typing speed. In fact, good code is brief and clean, which takes considerable time, and successive refinements, to achieve. It is much better to have someone on your team who can produce 10 lines of excellent code per day than someone who produces 1000 lines of crap.

Or, put in a different way, hiring an otherwise good developer and sending him to a fast typing course is going to be way easier and cheaper for you than hiring a lightning-fast typing bad developer then trying to improve his developer skills (which is usually a futile effort anyway, but you can spend a lot of money and time on it - and in the meantime he would still manage to produce a lot of bad code, which is going to stay with you forever...).

So all in all, typing skill is a nice-to-have, but general problem solving ability, teamwork skills (communication etc.) and real-world development experience are far more important. Only if you have two otherwise perfectly equally qualified candidates, might typing skill become a decisive factor.

share|improve this answer
5  
+1 for paragraph 2! –  Steven Jeuris Jul 23 '11 at 15:20
5  
I disagree.. It's much better to have someone who can produce a lot of excellent code. Producing 10 lines of code a day is ridiculously low for most type of programming jobs. Yes, 10 good lines is better than 1000 lines of crap, but it's like saying getting shot in the leg is better than getting shot in the head: it's true, but both are bad. Also, I think slow typing is a huge red flag: it means the person didn't spend much time using computers, which means that they consider programming just as a "job" instead of a "hobby". –  Andreas Bonini Jul 23 '11 at 16:18
2  
Also, it's worth nothing that there are always exceptions: maybe he's a good programmer and he just was very "stupid" on this only issue. But it's unlikely to be the case. Since you can't know for sure how good a person is before working with them for a few months you have to hire the person who is most likely to be good, not the ones that potentially can maybe possibly be good (which includes every single person on the planet). –  Andreas Bonini Jul 23 '11 at 16:24
12  
This question completely ignores the clear fact that if somebody is a marvellous, experienced programmer, there is no way in hell that they are still typing slowly with two fingers. –  Lightness Races in Orbit Jul 23 '11 at 18:26
6  
@Krelp, "Producing 10 lines of code a day is ridiculously low for most type of programming jobs." My point is, pure code quantity is totally meaningless in context of developer productivity. I regularly produce negative amounts of code per day by removing duplicated or unused legacy code during refactoring. –  Péter Török Jul 23 '11 at 20:32
show 7 more comments

I'd think you'd acquire good typing skill somewhat as a side-effect of typing a lot. If the guy types using two fingers only, it would indicate he might not have all that much experience.

There's a story where I live, about academy of arts, where entry exams started with prospective student being given a blunt pencil and a knife to sharpen it. If they couldn't sharpen their most basic tool, they were deemed too unskilled to be allowed to study at the academy.

share|improve this answer
5  
-1. It has nothing to do with programming experience. Some of us started programming at 10 years old and didn't know about typing. We're creatures of habit. It took 30 years before I started typing. –  kirk.burleson Jul 23 '11 at 14:39
3  
@kirk.burleson: I am not putting an equals sign here. I've been using keyboard daily for 20 years now, and I am still not a true touch-typist. But come on... two fingers? Unless the guy's used to Dvorak layout and was given QWERTY keyboard instead, I don't think anyone who earns their living using a computer would do that. –  Mchl Jul 23 '11 at 14:47
3  
I strongly agree with @Mchl. If your job is computer, then communicating with this thing is also part of your job. How do you communicate? Via mouse and keyboard. –  Saeed Neamati Jul 23 '11 at 17:33
1  
I sit beside the most talented programmer in our office. He's nearly 60, and I can assure you he's never used more than two fingers to type a line of code in all the years I've known him! –  scottishwildcat Jul 24 '11 at 0:47
show 2 more comments

Fast typing speed is a desirable trait in a programmer, but definitely not a requirement.

I would definitely not include this as a filter for recruitment.

share|improve this answer
add comment

Unless it is an indicator of lack of experience in the general field of Computer Science, then I don't think so.

To be honest: if the programmer can produce output of similar quality and in roughly the same timescale as someone else, then how they do it is up to them.

Sometimes slower is better as well. I used to work with someone who consistantly took longer to perform a given task than anyone else. He got pulled in for it once. His response was to ask how many reproducable bugs had been logged against his code in the last 12 months. We checked: none. Really. True story!

Fast(er) typing does tend to come with practice though. I'm far from a touch-typer but I wouldn't call myself a slow typer. I'm maybe 5-6 fingers...?

share|improve this answer
show 1 more comment

Good programming is mostly about thinking, not typing.

Good programmers do more with less, so the quality of the produced code is more important than the amount of it.

Good programmers with disabilities (e.g. eyesight) are still good programmers despite their typing impairment.

So no, I wouldn't worry so much about typing speed if the guy has skills.

share|improve this answer
4  
But you may have to spend a large part of your day responding to email and IM along with creating documentation. –  JeffO Jul 23 '11 at 14:36
1  
The best code being no code, slow typing is an advantage. If it's a java/c# shop, however, there's no good way to do it. –  Christopher Mahan Feb 24 '12 at 20:01
show 3 more comments

All things being equal, it matters. Not that you have to type 100 wpm, but if you're at 10-15, it's a problem. Why don't they learn to type faster? Do they care? Is there a language issue?

Any time my typing is limited, my over-all work suffers. It's tough on me mentally if a task takes too much of my time typing. Spending too much time on SO would be a major problem if it took me twice as long to generate any input.

It won't significantly improve your coding, but in some work environments, there are additional typing requirements. I feel I can focus on my work because responding to email or creating a small document is not a big time suck.

Giving a test and coming up with an exact number is pointless. Put them in front of a keyboard and just make sure it's not a liability.

share|improve this answer
show 1 more comment

Personally, no. As an example, I have an acquaintance who is a very good programmer, but due to physical injury can not use any fingers on his left hand but the index. As a result his typing speed is very slow but he still produces meaningful code.

share|improve this answer
show 2 more comments

No!

you're trying to hire programmers not typists ;)

share|improve this answer
show 1 more comment

I would consider typing speed to be a positive, desirable quality for a developer. However, it ranks very low on the list of such qualities. For example I would rank creativity, work ethic, desire to learn, knowledge of the languages of choice / development environment, patience, and even humility far above typing speed.

I can type relatively fast (~90wpm) and I will say that this translates into my ability to code as well. When I'm actually writing code, I can spit it out very quickly if I know what I am to write. Couple this with the fact that I use as many shortcuts/macros when writing this code as possible and the code itself comes out very quickly. In fact, when I am helping or watching other developers, I tend to get frustrated at the speed with which they're writing the code (I lack the patience quality, apparently).

Of course, actually writing the code is such an infinitesimally small part of the actual coding process. I think that probably about 95% of the time I am coding is time when I am not typing because I'm thinking about what it is I'm going to type. Couple this with the fact that I undo maybe about 50% of the code I have typed at any given time. Even coding is probably only about 50-60% of my day, so code typing takes up an estimated 1 to 2% of my day. If we say the average typing speed is 45wpm and everyone is typing as fast as possible at all times (including myself), and that everyone's implementation of their projects provide equal benefits, that makes me about 1 to 2% more efficient than the average developer based on typing speed during coding alone. In reality, it is probably about half that.

I think it is very important to point out what happens during the other 40-50% of my day, though. I spend a lot of time composing emails and documentation. In point of fact this takes significantly more typing time than coding, and it certainly has less continuous breaks. This certainly bolsters the efficiency gained from fast typing ability.

To summarize, I would suggest that fast, accurate typing ability should be viewed as positive and earn an applicant some points for development, but only very few. That is to say if everything else is equal, I would pick the faster typist.

In your specific case I would hire this developer if there is no other reason not to besides his typing speed. If he's still typing with two fingers, and slowly, you may even want to suggest that he spend some time trying to improve his speed. You can do this by mocking him continuously (joke), or even train him a bit, but typing training for developers is almost certainly not worth it. You can suggest that he play "Typer Shark" or something on his off time. He doesn't even have to know your ulterior motive of improving his typing..maybe you just like the game.

share|improve this answer
add comment

This reminds me of this... http://steve-yegge.blogspot.com/2008/09/programmings-dirtiest-little-secret.html

I wouldn't see lack of touch typing as a negative, but a typing speed with 2 fingers indicates that something is wrong.

A developer should at least have average typing speed. Fast-typing is a bonus. Slow-typing is a detriment. Remember that average typing speed is 30-40 WPM. If he's otherwise great, I would be upfront about his typing speed. If there's some circumstance that prevented him from learning, then it should be addressed. You shouldn't hire him without knowing why there's such a gap in his skills, but you also shouldn't reject him for that one skill without asking first. My experience with trying to get people to improve their typing speed is that they won't try unless they have personal motivation to improve their typing speed. So I don't think hiring him and saying, "Improve your typing speed in your off-time" will work.

share|improve this answer
2  
+1: Yegge nailed it. All the good programmers I have known could type. Even if they only used two fingers, they could still type 70wpm. Good programmers will push the code around until it is as good as they can make it, and will document it as well as they can. Doing this in a reasonable time requires reasonable typing speed and facility with the editor. –  kevin cline Jul 23 '11 at 15:40
show 1 more comment

If this is someone who is qualified and eager to learn, then I'd throw a DAS keyboard with no letters at them and in a month time, you have a fast typing programmer with a very comfortable keyboard.

share|improve this answer
add comment

Are you hiring a code monkey or a programmer? If it's the latter, I would worry more about experience and intellectual competence than typing speed. Even though speed might come with experience, I wouldn't immediately discard someone who proves to be a slow typist.

Personally I'd prefer someone who takes their time thinking and spends a little more time coding than someone who starts throwing code away and then fixing it with a debugger. Generally more thinking means less code typed in the long run, making the overall process faster and rendering typing speed a minor issue. Not to mention that the quality of a well-thought code will most likely be better.

share|improve this answer
add comment

I do not think typing speed is very important. I think the code-cutting productivity of a programmer is much more linked to their ability to use and configure appropriate tools.

I have very productive programmers working with me who cannot type quickly or for very long, and even then only with specialised equipment, due to recurring problems with RSI.

I would be much more interested to find out if the candidate can configure and exploit to a high level a sophisticated editor (VI, Slickedit, Emacs, etc) and/or IDE (Visual Studio, Eclipse), and maybe other tools (Grep, Sed, etc). If your candidate can effectively and expertly configure and use an editor or IDE then I wouldn't have any concern about their typing speed.

share|improve this answer
show 2 more comments

Most of the time spent on a software project is not actually writing code, but reading code. If the developer types slower, that may only have a very limited impact on his or her productivity. I recall reading a study that claimed up to 90% of software development is reading. If that's true, you might want to test your candidate's reading skills instead.

share|improve this answer
add comment

Touch-typing doesn't matter much.

The most time-consuming aspect of software development are rewriting poorly designed code, and debugging incorrect code. IMHO, A major part of being a good programmer is designing code that rarely has to be rewritten, and writing code that usually doesn't have to be debugged.

When I did the ACM, we had a guy who was still typing with two lightning fingers. Even on a timed competition (5 hours for 7 problems, I think) his slow (say 30wpm) made no difference. On these competitions, if you're limited by your typing speed, you probably aren't thinking at all.

Also, to the people saying that touch-typing is critical: do you think touch-typing should be part of the interview process at major software companies? Why isn't it?

share|improve this answer
add comment

I was a bit annoyed when I read this question. Do you have so many technically brilliant candidates that you need this to thin the field? You've really exhausted all the technical options? What about team fit? All these fantastic technical genius developers are perfect for your team?

I would be alarmed if you tried to test my typing speed. I'd assume you didn't know what you were doing. I'm not aiming to insult you. That would be my reaction. Incredulity followed by irritation. I wouldn't want the role.

share|improve this answer
add comment

I wouldn't hire a head-down, hunt-and-peck typist. There's something wrong there.

Slow typing is not really the issue. If his poor typing was the result of a physical handicap, it wouldn't worry about it. But an able bodied programmer who hasn't put in the effort to master the human machine-interface required to do his job lacks a basic level of pragmatism.

My wife and I were watching Project Runway, where clothing designers compete for an industry deal. One thing that impressed me was that all the designers know how to draw and are expert with a sewing machine. It's just a given. Design is a mental activity, it's about imagination and style, but in order to be effective an artist must master the medium in which he works, he has to know the materials and tools of his trade.

Typing is a fundamental skill when working with computers in any capacity. Someone unwilling to putting in the minimal effort to acquire this skill, or who can't recognize the dividends it would pay, is -- simply put -- a poor tool user. That's a major deficiency in someone whose job it is to make tools.

I'd feel the same way about a programmer who wrote code in Notepad. It's not that it can't be done, but it indicates a broader problem that you're unaware of or unwilling to use better tools.

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.