
Ask HN: Does touch typing make you a better programmer? - wilsonfiifi
Hi folks! I&#x27;ve been trying to learn how to properly touch type and move away from my &#x27;own system&#x27;. However I have been wondering if typing slowly actually helps organize your thoughts better when coding?
======
gexla
You are talking about a couple of different things.

Touch typing means your fingers are trained to know where the keys are. You
can type without having to look at the keyboard.

Touch typing doesn't necessarily have to be fast typing. You can touch type
slow or fast.

Bottom line, anything which removes barriers to doing your job is better. the
less you have to think about it, the better. Hitting the wrong keys is a bit
of a distraction and having to look at the keyboard could be a small break in
concentration. This is especially the case when it gets to the point of being
annoying.

Sometimes people prefer writing with pen and paper because the physicality of
it, the slower pace of writing and not being able to delete your mistakes
makes you think a bit more about what you are about to write and what you have
already written.

It would be interesting to write out a program with pen and paper and have
that immediately be translated into digital. Maybe an E-ink editor. ;)

~~~
pjc50
_write out a program with pen and paper_

I competed in the BCS programming competition years ago, when the rules
allowed one computer for a team of four. We found the optimal division of
labour was one person developing at the keyboard, one person pair programming
with them, and two "researchers" working on the next problems. If the person
at the keyboard got "stuck", they were to print the program off and let
someone else start typing. It was basically a superscalar pipeline of humans
with a single "issue unit": the keyboard.

------
mpercy
One of the best arguments I've seen on this matter is by Steve Yegge. It's a
must read: [http://steve-yegge.blogspot.com/2008/09/programmings-
dirties...](http://steve-yegge.blogspot.com/2008/09/programmings-dirtiest-
little-secret.html)

I spent 10 years in industry before I decided to learn to touch type. I
noticed how fast some of my colleagues could chat and code and I was
embarrassed. Then I read Steve's article. It was tough at first but I can't
tell you how much it's helped my productivity.

Also, remap CapsLock to Ctrl on your keyboard. It makes coding a dream. And if
you use Vim or a Vim-mode in your IDE, remap the sequence 'jk' to Esc. I never
leave the home row anymore. See
[http://learnvimscriptthehardway.stevelosh.com/chapters/10.ht...](http://learnvimscriptthehardway.stevelosh.com/chapters/10.html)

~~~
taternuts
> And if you use Vim or a Vim-mode in your IDE, remap the sequence 'jk' to
> Esc. I never leave the home row anymore

Wow, thanks so much for this

------
chton
In general, I've found typing slowly to be more a distraction than a moment to
focus. The difficulties are always in the logic you're trying to express, and
the typing is merely a way to communicate that to the computer. If you type
slowly, it might give you more time to think about what you're doing, but you
can make that time yourself.

On a more personal note, 90% of the lines I type are not ones I need time to
think deeply about, so the faster I can pump those out, the better. It's why
I've shifted from visual typing to touch typing, and why I optimize for ever
faster keyboards once they start feeling too slow for me.

------
JackMorgan
I think of software development on a continuum from tactical to strategic. The
tactical end of the scale involves faster creation and modification of
artifacts. Strategic involves knowing what artifacts to create and why.

To be an outstanding developer, you should be skilled all along the continuum.
Those who are slow tactically will only every be able to read books about
strategic designs etc, which is good but will limit their skills. I'm reminded
of a developer I once knew who thought he had all the answers architecturally,
but was such a slow typer and didn't know how to use tools available to modify
code that he'd never actually implemented any if the things he dreamed of, and
who is going to trust someone with no experience? Also his ideas definitely
had a "here's a big picture design, you guys figure out how to implement it"
view to them, which meant they usually were not really a good idea.

As such, I think it is important to learn; fast typing (touch typing), fast
editing (Vim, regex scripts, and all available refactoring tools), fast local
coding (TDD, proper use of functions as an abstraction, and good naming), good
module sizing (either namespaces or objects), then good module separation
through services or message passing. I had to learn all of these in the last
six years. I think every one was valuable. I had to learn to touch type after
22 years not being able to, but it has helped immensely in being able to
fluidly get thoughts to editor.

------
markcrazyhorse
I think this is all relative to the person. My friend can touch type but he
struggles to work out the logic needed in programming at the speed he can type
so he works it all out first and then just types it out. etc... so I think it
really does depend. I cant see it hurting your skillset to be able to touch
type though :)

------
dalke
According to Steve Yegge, yes, absolutely. See [http://steve-
yegge.blogspot.com/2008/09/programmings-dirties...](http://steve-
yegge.blogspot.com/2008/09/programmings-dirtiest-little-secret.html) . The
major points:

\- "If you spend more time hammering out code, then in order to keep up, you
need to spend less time doing something else."

\- non-touch typists have less impact on text-based forums (like this one)

\- "non-typist code is... minimalist. They don't go the extra mile to comment
things"

~~~
mpercy
Whoops, looks like our posts crossed on the wire. I definitely think Steve's
post is worth the read - it hits home.

------
pjc50
Most coding is very very different from the touch typing I'm using to write
this comment. Coding is dominated by _editing_. Debugging, refactoring, adding
features to an existing part of the code. I suspect that if you did a
frequency histogram of keys hit then the arrow keys would dominate.

IDEs can help in ways that aren't available to people touchtyping natural
language. For example, Eclipse can pile up matching brackets to the right of
the cursor as you add opening brackets. Many IDEs can autocomplete identifiers
and keywords.

My highest ever "productivity" was around 500 LOC in a day, whereas some of my
most useful work was entirely away from the keyboard. I know someone who
prides himself on having _removed_ thousands of lines of code from an open
source project (something similar is going on in the OpenSSL audit).

If you're a fast typist, you'll probably fall into a pattern of alternating
thought and action. It's worth quite a lot of time thinking rather than
acting, to prevent committing a bad piece of code that will plague you
forever.

------
DanBC
Organising your thoughts at the point when you're typing them seems sub-
optimal!

Some people build time into their working day for "reflection" and
"supervision". They think back over how stuff went this day, week, month; and
they get advice from a colleague about how they're doing - especially around
how they could have tackled the tricky bits.

So maybe slower typing would allow programmers some reflection time.

But from what I've read programmers dislike interruptions to their typing
rhythm - mouse based editing instead of keyboard shortcuts or programming
languages that involve having to hold shift to get a character (too many
braces?).

I think touch typing gives you the advantage of having less to focus on - some
people can type at 120 wpm and hold a conversation.

------
hookshot
I think it does and it's something I work on. I don't think speed is as
important as touch typing with less errors. having to backspace every couple
of lines because you hit ' instead of ; really messes up flow.

I started practicing typing because I tend to type with 2 or 3 fingers per
hand and was experiencing RSI symptoms. My hands feel a lot better when I type
properly.

There is a great article about this on Coding Horror:
[http://blog.codinghorror.com/we-are-typists-first-
programmer...](http://blog.codinghorror.com/we-are-typists-first-programmers-
second/)

I've enjoyed typing.io for learning as well as typing of the dead.

------
hvd
It will make you more productive and by extension have all the time you devote
to finding a key now free. The biggest advantage being maintaining flow as you
think about code. An almost seamless transition from thought to the editor.
[http://hkelkar.com/2014/03/02/learn-to-type-before-you-
learn...](http://hkelkar.com/2014/03/02/learn-to-type-before-you-learn-to-
code/)

------
bjourne
Yes it does. If you touch type, there is less effort involved in refactoring
code. Because typing is not a chore you have to spend energy on. You just have
to think out how you want the code to look and your fingers does the
transformation automagically. If you can't touch type, you have to both spend
energy thinking about the code and about what keys you should hit to get
there.

------
josephschmoe
You should be able to type pretty quickly as a coder, but a big part depends
on your language of choice and refactoring you do.

Can you type "The quick brown fox jumps over the lazy dog?" with your eyes
closed? If so, you're probably in good shape.*

*Does not apply on touch screens. Ain't nobody got time for that!

------
vldx
This [1] article is relevant and it's worth checking.

[1] The Joy of Typing - [https://medium.com/message/the-joy-of-typing-
fd8d091ab8ef](https://medium.com/message/the-joy-of-typing-fd8d091ab8ef)

