We Are Typists First, Programmers Second

71 wpm, and one mistake (forgot to type the period at the end).

When I did the test, I was around 45 WPM with one mistake. However, later in a day, I got in a zone and typed some significant portions of code and as typing, I suddenly realized I am typing a lot faster and not looking at the keyboard at all (this observation broke me out of zone, as I wanted to share my experience here. I hope I will be able to get back and perform some more work).

In general, I agree with those thinking strict standard typing skills (esp. typing speed) are not that important. What is important is you are typing in such a way your typing is not blocking you. Typist typing is definitely one possible way how to do this, but there are also other ones.

you know youā€™re a java programmer whenā€¦ :wink:

Luckily Iā€™ve never worked with programmers who werenā€™t touch-typists. It should be a secondary skill.

But is programming really writing? Depends on the language. A highly declarative language might feel this way. Dynamic languages tend to be a little more tricky since you start to talk about the ways of things instead of what things are. When you reach Lisp, you start writing things to write things for you and end up having a continual conversation with your programs.

At the end of the day though, our job is to control processes which manipulate data. Got to remember that this stuff is translated down on some level to bits and bytes.

I agree with you now. It was called typing 101 when I took it many years ago (IBM selectricā€¦), but now itā€™s called keyboarding, since nobody knows what a typewriter is.

(82 wpm, 2 errors. I can hit 95-100 with reasonable accuracy when I get warmed upā€¦)

***I mean, which is easier to type: for c=1 to 100 or for(c=1;c=100;c+=1)? ***

The second one is faster and easier to type. I have been coding in C-style languages for 20 years - it is a natural language at that point.

****Are and || really preferable to and and or? ***

Again, solely a matter of what you are used to - has one less keystroke too. Also, is clear and unambiguous - itā€™s an operator that is well defined, where and is an english word, and its usage in everyday speech makes the meaning unclear sometimes in the programming context - thus, the recent invention of stupid keywords in VB like AndAlso which is somehow different from and, and no where near as clear as

KR put all of that stuff into C back in the early 70ā€™s to make it easier for them to write the compiler, (which at the time was just an internal research project at Bell Labs) certainly, not to make it easier to write programs in!

Actually, coding languages were terse back then because memory was unavailable to store large amounts of source code, and when everybody knows what ? means for example, why waste a whole 8 bits by making them type if - the first C-dialect I worked in had a one-character abbreviation for almost every keyword. I loved it - if you knew what the letters meant, it was just as readable as any other language, and since you could fit more code on a page, it was actually easier to work with than other languages.

Just for fun I tried the test on my phone, and got 25 wpm. =)

Sometimes the ide interrupts my typing. New Visual Studios and many other programs type by themselves too, but not always as I want. So I have to hit undo from time to time or correct some other mistakes. There goes some time to trying to find the correct settings to disable or modify the features, but not always succeeding.

Also tooltips cause lag. If I want to see something, a tooltip pops up and I need to move the mouse and try to calm down before I see what I was looking for.

75 wpm on my first attempt. I made 3 errors.

I have to admit that I am not very good about remembering to use capital letters for new sentences.

I think if I didnā€™t have to backspace to correct my capitalization 4-5 times, I wouldā€™ve been up to 85-90 wpm.

I want to see people touch typing C code.

All of those chicken lips and ^s and s and |s and \s and @s and #s and ~'s seriously broke any elegance or style I had previously. No one ever taught that in my TYPING 101 course in high school.

@Davide: personally I find that I type code much faster than the type of text presented in the test that Jeff linked. I also find that typing speed is important when programming. I like to be able to keep up with my train of thought as much as possible. Having to stop by train of thought to wait for text is BAD.

Regular internet typing, where I type as I think, I can type much faster than the test given as well, since Iā€™m not trying to exactly duplicate something that I just read.

In the typing tests, some of the words are spelled wrong, and the grammar is a very old style. (For example, I had one where many ā€˜eā€™ characters were replaced by apostrophes). This slows me down even further, since I have to correct myself from spelling it correctly.

Dvorak keyboards: I had a look on ebay - lots of coloured transparent stick-on things to convert your existing keyboard

That doesnā€™t make a dvorak keyboard - it still requires you to change your OS settings.

Iā€™m not sure about thisā€¦ it seems to me that optimizing typing time is like optimizing the wrong part of programming. Its like trying to write your loops in assembly when you are doing a brute-force algorithm, when you should actually be thinking of a better algorithm instead. Anyways typing fast is a nice complementary skill.

@Robert yeah, but you know how obsessive programmers are. Theyā€™ll obsess over optimizing everything. I donā€™t think itā€™s a zero sum game. Learning to type faster doesnā€™t mean you canā€™t also improve your algorithm knowledge.

Typing ā€˜the way it shouldā€™ just makes my hands hurt and feel really weird. My fingers just go all over the keyboard randomly, though still I have quite a high typing rate and donā€™t make a lot of mistakes.

Jeff,

I hate to be picky, but a broken cleck is right btwice/b? a day.

Iā€™ve made Artypist, which is a free website for learning to touch type.

I think that sometimes programmers spend most of itā€™s time thinking and not typing. So one may think it should not be crucial learning to type, but let me tell you something:

Sometimes there are moments, hours, even days of great inspiration. You know what? you have to use that time of inspiration before its gone, and the better typist you are, the more things you get done.

When you work, you are not 100% of the time inspired, of course, but thats why, when you are, you should use that time.

For a normal programmer, maybe itā€™s not that important knowing how to type, but thatā€™s why I think the article says if you want to become a great programmer, start by becoming a great typist.

On the other hand, the same applies to bloggers.

I really enjoyed the article :wink:

If all it took was typing as fast as you can think then there wouldnā€™t be a need for refactoring. Iā€™m amazed that you are even implying this.

Jeff, Iā€™m a long time reader of this blog, and while I find many of your posts interesting and informative, this one is justā€¦ well, wrong.

As Spou noted before me, you cannot reduce coding to mere typing.
I spend very little of my time actually typing the code, most of the time Iā€™m thinking about a problem and trying to come up with a good solution.

If you really believe that coding is just typing, then I wouldnā€™t want to be the person maintaining the code that you wrote.

Jeff, Iā€™m a long time reader of this blog, and while I find many of your posts interesting and informative, this one is justā€¦ well, wrong.

As Spou noted before me, you cannot reduce coding to mere typing.
I spend very little of my time actually typing the code, most of the time Iā€™m thinking about a problem and trying to come up with a good solution.

If you really believe that coding is just typing, then I wouldnā€™t want to be the person maintaining the code that you wrote.

OMG I just read a blog on typing