We Are Typists First, Programmers Second

@Jon Schneider:

Yep, you’re right of course: touch typing would help in all those situations and my current stare at the keyboard technique is less than useful.

But the first two don’t really relate to any actual programming tasks that I regularly perform and the last one, typing mistakes, is relevant as I never make any misstakes. :wink:

The question stands though: are there any specific touch-typing techniques for programmers that take into account frequent use of non-alphanumeric characters, keyboard shortcuts and cursor control?

Typing a simple bit of code like: if x[12] = ‘’ { print($msg); }
using touch-typing from the home keys seems to involves all kinds of contortions to me.

Why should I become a faster typist when Visual Studio can’t even keep up with my two fingered typing? Every time I type a period it takes Visual Studio a good 10 seconds to figure out everything that could come after that dot notation.

I learned to type using a really old version of Accutype, in my dear 086.

In my career I’ve worked with several good programmers that couldn’t type, but let’s face: typing using two fingers looks pretty unprofessional.

Once you have a decent typing speed (it doesn’t need to be lightning fast) the next thing you simply have to do is find a good IDE with code completion and refactoring support and master it. Learn every keyboard shortcut you can. Using these tools will mean you need to type less, a lot less in most cases e.g. you can refactor code to a method with one shortcut and typing the name for. It also lowers the barrier to changing the code, which is extremely important. This is because you will not make small refactoring and imrovements to code when the cost of that relative cost of that change in terms of effort is high. Both reasonable typing speed and mastering of tools will bring that cost down enough to prevent any barriers. This can have a profound difference on your coding over time in my experience.

The best thing I ever did for my Java coding was mastering Eclipse refactorings and keyboard shortcuts.

It’s true, faster typing doesn’t make better code. And with tools like codesense / intellisense it became even less important. Half of the time I don’t even write complete words anymore.

3234wpm, with 78 mistakes. So copy and paste isn’t perfect, but at that speed, who cares about a few typos? And you can do it without a keyboard :slight_smile:

The point that no good programmers are poor typists is a dodgy one. Like Jeff, I’ve never learned to type properly, but I can get by. Mostly because I’ve done a lot of it over many years.

And I think that’s what it really comes down to - putting in the time. You have to put in the time learning, rather than just doing, though. Some people have 20 years of experience, and some have 1 year of experience 20 times.

No-one I know of was a good programmer from day one - it’s a skill that takes time to develop, like any other. So I think Jeff’s looking at it the wrong way around.

Typing ability is not a prerequisite of being a good programmer; it’s a consequence.

Okay, someone who hunts and pecks at 10wpm may be hurting their ability to code. But, what about a person who can type 40 to 60wpm? Are they typing too slow?

Back even before my days when businesses had secretarial pools, a secretary who couldn’t type at least 75wpm was useless. But, they were merely copying what someone had already written. They didn’t have to compose while they typed. To them, speedy transcription is everything.

We as developers compose while we write. Concentrating on being able to type without looking at the keyboard is important. Being able to touch type is also important. But typing at 85wpm? Is that really a job requirement?

There’s an old joke about a man who came to this country from Europe, and tried to get a job as a custodian at a small synagogue. When the synagogue found out he couldn’t read, he couldn’t get the job.

Instead, the man found some rags and sold them. He took the money he made, and bought some nicer rags. Soon he had two rag carts. Later, he sold second hand clothes, then factory seconds. After that, he opened a small store, and then another. He started to sell more expensive clothes, and soon opened a store on 5th Avenue.

As his business grew, and more and more stores opened up, he realized he needed a loan. He went to the banker who drew up the papers which the banker asked him to read.

I can’t read, replied the man. I never learned to read English.

That’s amazing, said the banker. You are one of the biggest and best known retailers in the Northeast. Imagine where you’d be if you could read!.

I’d be a custodian at a synagogue, replied the man.

I can type around 45 to 60wpm, and I get paid a nice six figure salary. If I could type 85wpm, I would be a secretary earning maybe $35K.

Srsly!? come on people you work with a keyboard all day…there is no valid excuse to not know how to use it. Learn the tools of your trade.

faster typing doesn’t make better code that could be argued upon. But what couldn’t be argue is that faster typing DO make better comments. And better comments DO make better code.

79 with no mistakes for me. Of course, if I were programming, all of the proper nouns would be auto-completed. I’d rather not have to remember how to spell ‘Serengetti’ (nonstandard spelling in the original text).

As important as fast typing is, isn’t fast reading just as important? If you can read twice as much code or twice as many books/blogs/etc. in a given amount of time as the next programmer, you’re probably going to develop faster. (disclaimer: my reading speed is consistently over 1500 wpm; probably why I think reading is so important…)

I really was enjoying Typing of the Dead until I realized that it doesn’t count spaces. I was then stuck with the dilemma of either being correct and typing the spaces, or not typing the spaces to be faster. I stopped playing it after that, but am always on the lookout for good typing games (haven’t found any yet).

If you do touch type, note that what kind of keyboard you are using makes a slight difference. I used one of those split ergonomic keyboards for a year (Microsoft brand) but then realized I was much faster on a regular keyboard. Unicomp’s buckling spring keyboards are great and what I use now.

Also, don’t worry about carpel tunnel or RSI. Read this: http://www.rsi.deas.harvard.edu/handout.doc

It’s interesting to hear the stories of smart women who hadn’t learned to type for fear they’d be shunted into secretarial jobs, and of secretaries who were surprised to find that programmers could type faster than they could. I learned to type because I assumed I’d end up as a secretary, and it served me well when I became a developer I found I could almost keep up with the sysadmins (who, in my experience, are often faster typists than traditional programmers/software developers). I can type around 80-85 wpm; the sysadmins I’ve worked with were in the 90-120 wpm range. Must be all those Unix commands. :slight_smile:

Agree and disagree.

Fast typing skills can make a bad programmer crank out a lot of code, but smart mousing and programming shortcuts, you can be a bad typer but still a good programmer.

I type around 80-90 wpm, but when you take into account copying, pasting, hotkeys for selecting text, and selecting large blocks of code with your mouse to copy, paste, drag, etc. then the wpm isn’t such a big thing.

A friend of mine is a really good programmer, but probably can only crank out about 30 wpm.

I’m a speed freak though, I will go so far as to customize my start menu and favorites so they are keyboard driven. i.e. I have my start menu customized so all I have to do is [start]pmoe to launch MS Excel. (Start \ Programs \ Microsoft \ Office \ Excel)

I LOVE code snippets in Visual Studio.

Thanks you so much for this analogy :

Instead of answering directly, let me share one of my (many) personal foibles with you. At least four times a day, I walk into a room having no idea why I entered that room. I mean no idea whatsoever. It’s as if I have somehow been teleported into that room by an alien civilization. Sadly, the truth is much less thrilling. Here’s what happened: in the brief time it took for me to get up and move from point A to point B, I have totally forgetten whatever it was that motivated me to get up at all. Oh sure, I’ll rack my brain for a bit, trying to remember what I needed to do in that room. Sometimes I remember, sometimes I don’t. In the end, I usually end up making multiple trips back and forth, remembering something else I should have done while I was in that room after I’ve already left it.

Now I can explain in understandable words to my boss why I need a good computer.

At my job, sometimes during lunch or a few minutes before the closing bell, a bunch of us devs from across the company will all jump into the same game on typeracer and go at it. Tons of fun =) Now I know I can do it during actual work time and if management says anything, I’ll point them in your direction and say its a core competency. =)

I think the most important part is in the end, and those who disagree are missing the point: good typing skills allow you to type without thinking. It allows you to concentrate fully on what your writing, wether that is a poem, blog, code, pr0n, pullitzer-price material - whatever.
Look at math: strictly speaking one doesn’t have to be good even at simple calculus (the 12+7=19 type) to understand, say, geometry. But not needing a calculator for basic stuff will definetely give you an advantage.
Does being a good typist make you a good coder? No. But not being a good typist will hinder you in being a good coder.

Today’s youth learn to type concurrently with learning to talk. I think slow typists is simply a symptom of a generation that didn’t grow up with computers in-hand.

Within 10-20 years, I predict that just about everyone will type above 60wpm.

The effect I think you’re seeing Jeff, is that good programmers had computers at a young age and so they are simply ahead of the intuitively-learned typing curve. Everyone else will catch up in a few years, as digital immigrants age and retire.

A good example of correlation, not causation.

Another post of a sketchy hypothesis, perhaps designed to draw in comments to your blog. Typing is used to produce programs, to express, to experiment. It is a tool of production.

Some of the best programmers I’ve met couldn’t type worth a damn. But they could use a whiteboard REALLY well. They knew how to foment ideas.

I think the keyboard has actually harmed the process – some people should think before they type, but they type first.

Don’t just type random gibberish as fast as you can on the screen, unless you’re a Perl programmer.

Every time you post one of your Perl digs my desire to sit down and show you the thrilling beauty of Perl grows. So, I conclude that being a smart sort of guy you really want to learn Perl and you’re just hoping to goad someone into teaching you :slight_smile:

I’m not a touch-typist. I’ve never seen the point; I type plenty fast as it is (75 wpm averaged over four tests) by using three/four-finger hunt and peck (but with no hunting, obviously; I know perfectly well where every key is.)

Yes, touch-typing is certainly a good idea, however I rarely find myself impaired by an inability to type fast enough though. And I might learn it one day, but eh. I’d rather spend the time studying to become a better programmer than a better typist, even though the two are related.