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 a custom Final Cut jogwheel + keypad setup, a designer who knows every Illustrator shortcut - they go about their work with a fluidity that looks like a dance. They never look at their hands while they're working.
In college, a professor told me that "Once you learn vim
, you can move mountains." This sounded impressive, but didn't really click with me until 5 years after I graduated when I finally went through :vimtutor
and dedicated myself to using Vim for all of my code development. I can move mountains (of text)! But vim
is all but useless if you can't touch-type.
I've always told my colleagues at work to memorize keyboard shortcuts. "Imagine how many hours of your life you've spent just moooooving your hand over to the mouse so that you can click some icon!" I say. But then I realized: keyboard shortcuts will only save you time if you can touch-type. If you can't find home row, a keyboard shortcut is not going to make you faster.
So that's my question - given that our range of professions involve fending our way through gigantic piles of text, is true mastery only attainable to those who know how to touch type? Or is it merely a nice tool to have in one's proverbial belt? Or am I missing the point entirely?
Top comments (25)
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.
Nicely put.
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 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.
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 :)
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
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.
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.
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 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.
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.
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.