Is Touch-Typing an Important Skill for Software Developers?

Donald Merand on April 01, 2018

When I watch my expert colleagues navigate their work, I'm impressed by how their tools look like an extension of their body. A videographer with... [Read Full]
markdown guide
 

I think more work tends to spent on reading and contemplating code, less on actually typing it. I think it pays dividends, and makes shorter work of tedious tasks, but isn't an essential skill.

 
 

I recently changed keyboard and it's killing me. I didn't realize how much muscle memory you build up using the same keyboard for years.

I type with only 8 fingers, I've never actually learned to use the keyboard properly. I also use the mouse but, especially when I build rhythm I "touch type".

Muscle and shortcut memory helps but I don't know how important a skill it is. It's probably something you learn anyway with time.

 

Would you say it's like knife skills for a chef? Every chef can cut things with knives, and they're going to do a lot of it, but you can be a good chef without being able to use a knife efficiently.

 

As someone who is great on a keyboard and still getting over the learning curve of using a knife well, I would say yes. I've made myself a great meal even though it took a while for me to prep everything. Typing fast is certainly helpful, but I wouldn't say it's an important skill. I definitely spend most of my time thinking about how to solve a problem than typing out attempts/solutions.

Being able to know how to type is important, but I think that's distinct from typing fast.

 

I only recently learned about touch-typing. And I plan to get into it, but I can hardly say it's a big deal.

Most of our time is spent reading code. I'm a pretty slow typist myself. Folks with disabilities that dramatically reduce their typing proficiency still make great coders.

 

I'm definitely seeing that folks view fast/no-look typing as a very low-level optimization, if they see it as useful at all.

I've read about people who use screen readers, and have them set to read back the page at eg. 5x speed. To me, that's basically "touch-reading" versus "normal-reading": I wonder if that community would view "touch-reading" as an essential step, or a maybe-optimization.

 

I touch type, and it helps, but knowing shortcuts is in MHO a much bigger deal. Any half decent IDE should be able to complete your typing so that you save 90% keystrokes anyway, for the rest the limiting factor is how quickly I can type.

However it drives me up the wall when coworkers don't know the short-cuts.

 

Thanks everybody for your responses! This is very illuminating.

I'm learning that it's hard to ask the question you really want to ask. I wonder how folks would have responded if I'd said "Imagine you could save 10 minutes a day by learning how to touch-type. Would that be worth it?"

Perhaps in a year I'll re-post from that perspective :)

 

I can't touch type but saving 10 minutes a day hardly seems worth the effort.
I save much more than that by not writing code fast, instead taking the time to work out how I can solve the problem with the minimum of code.
Code left out seldom goes wrong.

 

100% agree about removing superfluous code.

To play devil's advocate: If you could save 10 minutes doing that, and then another 10 typing emails faster, you wouldn't? Over the course of 30 years typing emails you wouldn't want to save that time?

In theory yes, I would love to...but:
I'm my experience, people who can type write long rambling emails full of extraneous information. Whereas I have spent years learning to trim mine too the absolute minimum. Most of my emails consist of single line answers "done”, ”I'll take a look", etc.

Every word I don't type saves other people reading time.

Work expands to fill the space available, if you can type fast you just end up typing more.

 

In my opinion it's not a must have for developers but a nice to have for every person which writes a lot of lines every day (this includes developers to me).

I don't thing that saved time is the most important thing here. I have started to learn touch typing for beeing better at vim. Then I found out that learning touch typing was really fun to me. Love hearing music and get in the flow of typing without thinking about anything. I use Ratatype for doings so but there are many good free soltutions for learning how to touch type.

For me the result was, better vim experience and less effort => more fun while writing and coding every day. :D

 

As a developer, I find that touch-typing has little value for development.

I've worked with many developers who are two-finger hunt-and-peck typists. They were all fine developers, regardless.

That being said, I am a touch-typist. I use Vim. And I'm extremely picky about the keyboard that I use. (Spoiler: IBM Model M forever!)

I used to type at 90 words per minute, but I think I'm pretty rusty now and probably only manage 50 words per minute.

But that's for English, not for programming. Programming is much more about thinking than fast typing. So fast (wpm) typing speed is rarely the gating factor.

Your mileage may vary.

 

I know programmers who are really good at their jobs who type with two fingers.

My touch-typing days have been and gone too - my left hand is ok, but my right is pretty much just down to the index finger 90% of the time.

 
 

I'm coming to realize that framing this as a programmer-only issue receives a lot of deserved pushback. I think that in the future I'll re-frame the issue as a "person on a computer" thing.

I think about the next 30+ years of my life, spent sitting in front of a computer, most days. If it takes me 1 extra second every time I have to look at my hands to hunt+peck, and 3 extra seconds every time I have to mouse instead of using a keyboard shortcut, and I do those things hundreds of times each day... it adds up to a few days each year. I don't want to look back at my life at 60 and think "wow I'm sure glad I spent three entire months moving my hand over to the mouse and back."

 

I think it's pretty important to know how to touch type. The faster you can type, the faster you can get your thoughts out of your head, into the computer. In team coding, it seems like the better touch typists have an easier go of writing code, too.

 

I use nano and am fairly slow to type. Linus Torvalds uses something called MicroEMACS. The best programmer I've personally known had only one usable hand. I'd say reading is much more important than writing.

 

For me its a boost, I learned touchtyping by gaming and can touch type really well both handed or either handed thanks to that. Its been useful more for non programming stuff and just general computing. And the really important stuff like typing a paragraph with my left hand while chugging a Red Bull with my right. And people say gaming doesnt teach life skills lol.

 

I'm surprised that everyone here has typed away their answers in response to this question and only considered touch typing's usefulness with respect to coding in an IDE (The op did focus on this, but the final question "am i missing the point entirely" opens the debate). How did a bunch of developers manage to type so many paragraphs about typing, and not mention the typing they were doing at that very moment?

Everyone on this board is growing as a software developer by engaging in typed conversation with other developers about software related topics, writing and responding to posts. You'll be typing here, typing on stack overflow, typing to your colleagues on slack, typing emails, typing commit comments, typing requirements, typing bug details etc etc etc

So much of being a software developer is about typed communication. If you can't do it quickly, it will really impact your work rate.

Pair programming
Another thing not really mentioned so far is pair programming. Perhaps not a lot of places really do pair programming much at the moment but its still a relevant and useful skill for a software developer. As such, a software developer who can work well in a pair has an edge over one who cannot.

As such, typing quickly is key here in order to keep your colleague engaged in the task. There's nothing more frustrating than being sat watching someone search for the 'x' key. Here, knowing the shortcuts is important too.

 

Excellent point! When it comes to driving a computer, which we do a lot of, proficiency is a big time-saver.

 

The eyes are slow, a lot of neural computation needs to be done at the back of your head before you see something. You could think of it as a half second delay between your experience and reality, and it wouldn't be far off real circumstances. This can be overcome to some extent with practice, like playing with a ball for eye-hand-coordination, but this only works well for patterns you actually can do practice with and repeat.

On the other hand, knowing the keyboard by touch is typically faster, even if you mistype quite a bit, since deleting will also be very fast if you catch your mistakes right away. This is especially true if you use shortcuts like Ctrl+Backspace or Ctrl+Shift+Arrows, or do stuff vim style, sight will mostly be a safety belt on what you do and your actual actions are almost at the speed of thought.

Writing code can however be quite slow, sometimes it takes a lot of thought and deliberation to decide what to actually write. The more thinking your programming requires, the less it matters in total how fast you write.

Then again, if your chosen programming language is decent it will allow for you to write code and test it very quickly so you can just throw stuff at it to see if it is something like what you want or not.

I'm guessing there are still typing machine courses around in some form or other, the secretaries of elder times were commonly forced by employers to try and perfect their typing skills and it would be surprising if no artifacts of these dark times weren't still around.

 

I believe that touch typing contributed more to speed before the modern IDEs that, as someone said already, autocomplete and generate your code. "Back then" :) we had to type a bit more, but IMO that's not where the main benefit of touch typing is.

Even nowadays, with less typing of actual code, touch typing helps with the keyboard shortcuts. Regardless of actual speed, I find not having to interrupt my flow to find a button or menu item extremely useful. Actual time saved is not the main benefit for me.

Navigating code, switching active documents, debugging, navigating files in a folder/project... there are quite a few activities that we perform often, and most of them can be sped up by knowing the combos. And not just keyboard shortcuts - some 'advanced' editor features as well, like opening class files by ctrl+clicking or just plain clicking their names in the code... it all adds up, and it summarily pays to know them.

I still think, even though that personally I find this a great asset, that it can be down to the individual. Some of my colleagues just don't care much about shortcuts, and I know them enough that I believe they'd learn them if they thought it was worth their while.

All in all, yes, it can be an important and useful skill if it fits the person's mentality. I know I'd be drastically less efficient if I suddenly forgot the layout. YMMV

 
code of conduct - report abuse