Guys, could you please take a look at the project I am working on: <a href="http://keybr.com" rel="nofollow">http://keybr.com</a>
I thought it could be a good touch typing trainer web application.
I started hunt and peck typing at 5 (Apple //c represent!), and had evolved to a four finger lazy-look typing method by 7th grade typing class. I didn't start actually typing without looking at the keyboard until I purchased a factory defect keyboard from a computer fair when I was in 9th grade. This keyboard had no lettering ink on any of the keys. I remember my mom being in disbelief that I could look at her and type something else quickly at the same time.<p>Best $10 I ever spent.<p>Because I learned to type this way I have rather unconventional / poor form. My hands rarely center properly on the home row, I tend to use my middle fingers for the upper inside letters, and I don't always use the same fingers for the same keys (I type the first "e" in "letters" with my middle finger and the second with the proper finger).<p>One other positive side effect of that keyboard while I was exploring UNIX was that there was no value in looking at punctuation either, so I learned to touch type all punctuation, not just the secretary subset, at the same time.
> Hell, if you're having trouble, just email me, and I'll give you a personalized pep talk. I can afford it. I type pretty fast. Plus your email will be really short.<p>I'm tempted to email him just to find out what Steve Yegge's idea of a "really short" email is.
Not looking at the keyboard as you type is important for secretaries who have to copy text off a hard copy. For a programmer I'd say it makes little difference.<p>But hey, don't let that get in the way of smug superiority.
Personal request: next time Steve posts, let's just assume the "long post is long lololol" angle has been thoroughly covered, and let's discuss the contents. If the contents do not merit discussion, let's ignore them.
I go by Andy Hertzfeld (Apple)'s credo: Your productivity can be measured in how many lines you REMOVE that week...<p>This is especially true with Lisp - you compact it down like one of those trash compactors.<p>[folklore.org]
I learned something from this article; I can't touch-type numbers. After reading that part, I moved over to a friendly unused xterm and tried to type 65536. My head immediately began to bend down to gape at the keys. I tried not to look, but I couldn't do it.<p>Interestingly, I can type the symbols on the numbers just fine. (hello "world"). $here @are &some #sigils!
I'm always a little surprised to find a programmer who can't type while looking at the screen. I never actually sat down and learned to touch type, it was a by-product of coding.<p>But this isn't just about programmers, you can see it in the movements of any expert.<p>Systems administrators know how to move around directories with minimal keystrokes - the characters seem to just fly by the screen. I know I'm in the presence of a good one when this happens.<p>A former colleague of mine proved that he'd spent many years in the trenches as a consultant through his mind-blowing ability to do excel. Any shortcut, he knew. He could set up a pivot table, create a LUT, denormalize data, simulate a query, set up scrolling, and automate charts in, like, 4 minutes. I could do this, but I'd have to hunt around the help, and it would take me a long time.<p>Good tennis racket stringers chat with you while they instinctively weave the crosses through the mains with a slight waving pattern that reduces friction and extends the life of the string job. They use the clamps and tensioner without really looking at it. I have my own machine and I can string a racket fine, but it takes me an hour and requires my full, fumbling focus - I certainly can't multi-task.<p>When a Judo expert falls backwards he/she just sort of rolls through it. No thought is necessary.<p>It goes on and on. Programmers type fast without thinking about it. It's one of the things they are simply able to do as the result of programming. I'm not saying it's critical, but it would be really odd to get good at programming without making this skill inate.
Hmmm. I want to hear from some great programmers who are often here on HN. Do you guys type quickly? Paul Graham and Patrick Collison, are you speed typists? How about Ryan Davis and Jey Kottalam? Suggest some more great hackers, too.
Not being able to touch type is not a bad thing; not being able to type fast is. I can't touch type and I used to be able to type 130+ wpm without errors. I can still average around 100 wpm.
Accoridng to Mythical Man-Month average programmer produces 2000 LOC per year. Other data I've seen backs this up. Typing speed is not really a problem.
Although I already had a computer I was taught to touch type "properly" on a typewriter. It really did take just a few weeks to get totally proficient and it's been handy ever since.<p>The only time I've managed to make a significant boost was when I bought a Das Keyboard. Not having any labels on my keys means I have learned to absolutely never peak at the keyboard. It's improved my speed overall, but especially with the number row.<p>I have known a lot of programmers who don't type fast. I don't think it's a massive impediment, but I do think there's a strong correlation between bad programming and lack of typing ability.<p>I don't think any of the people I personally know and consider uber programmers type really badly. Certainly could be though and I just haven't noticed.
<i>"... Yeev noticed that one of the electives, surely placed there by mistake, was Typing. Like, on a typewriter ..."</i><p>What an elective? Mine was compulsory complete with manual typewriters and battle-axe teacher. One thing I do miss about those old clunkers was the solid feel the keys had. You had to learn to position your index fingers at 'F' and 'J' remember where each key was positioned and hit hard. So letters like 'P' and 'q' required a greater force than say 'v' or 'n' (because my index fingers are stronger than pinkies). Keyboards these days have no resistance so typing fast leads to random hits.<p>What's the most solid keyboard you have used?
I'm a two-fingers-and-a-thumb, look-at-the-keyboard, what's-the-home-row? typer, and I can still hit 70+ on a bad day. Still not sure what that has to do with 1) my ability to code, 2) my ability to communicate.
One of my co-workers types with his two pointer fingers and I'm sure he hits at least 80 wpm if not more. He looks at the keys on occasion, but he mostly does not need to. However, I get the impression his error rate is quite high.<p>All that being said, I think he could type even faster if he just bit the bullet and learned to touch type. This is why Steve is right. You might be a pretty fast typer already, but you can probably be a lot faster using all your fingers instead of just two.
This is less an issue when programming in lambda calculus, if one takes the combinator approach and just uses S, K, and I.<p>I know, I can hear the complaints about the lack of good libraries...
Does anyone else type on QWERTY but never from home row? I get 115wpm but with a disastrous 96% accuracy. The upside is much better access to the number keys and punctuation. I once tried to switch to Colemak, but never managed to completely switch over. I think this was because my muscle memory of QWERTY in 8 different positions was too powerful to unlearn.
I actually don't know anyone that doesn't touch type that is under the age of 35 (but perhaps I need to pay more attention). Anyone that went and did an engineering level degree surely would be able to (due to thesis writing at least).<p>Even when I was in high school (back pre 1992) we learned by having a tea-towel over our hands and having to type without looking.
i just realized that i may be a fast typist, but i use only 4 fingers. Left pinky for shift, ctrl,alt, left index for left letters, right middle finger for right letters, right thumb for space(sometimes left). I can type with a descent speed in two languages(English, Bulgarian) and i can even mix em and still type pretty fast. But i look at the keyboard pretty often and i my backspace key is the most clean one. This blog post has inspired me to just load KTouch and practice(KDE 4 came with a fast typing teacher, cool). I don't actually have a problem, because i make many mistakes, but i got really good at correcting them fast, so i still have a pretty good WPM count, haven't measured it, but its descent for a person who types a lot. I hope KTouch can help. After just 20 minutes with it i feel uncomfortable typing the way i used to, seems inefficient.
This: <a href="http://www.typeonline.co.uk/typingspeed.php" rel="nofollow">http://www.typeonline.co.uk/typingspeed.php</a> tells me I type at about 55 wpm with about one error. Apparently this sucks. Damn it.
I can see his point, but most of my "typing" consists of pressing two or three keys, followed by M-/ so how much would it <i>really</i> help to touch-type?
Incidentally, Steve brought up an interesting topic. Musicians practice by playing fast, then slow, then medium. Fast, slow, medium. Over and over. That seems like a good way to write software.<p>You first try to implement your idea as quickly as possible, stopping to think only when necessary. The goal is to not spend too much time overthinking the implementation -- you want to find out if your idea is worth executing on.<p>If you decide that your idea isn't worth it, then you move on to your next one. Otherwise you take it slow, going back over your code and refactoring it. (I personally don't believe in "make one to throw away", but rather that it's possible to refactor an ugly design into a succinct one.) At this stage, you should meditate on the best way to accomplish your engineering goals. It will pay off in the long run to spend extra time here.<p>Then comes the final stage in your project's lifecycle: medium. The core structure of the design has solidified, and you need to add the flourishes that make software truly great. But you have to take your time to ensure that the codebase stays clean. At this point, the design of the various smaller subsystems should flow naturally from the architecture you decided on in the "slow" phase.<p>Repeat for each core feature.
My typing speed is about 75 wpm, which probably sucks by HN standards. I don't type nearly as fast as I think.<p>When I'm writing Java code, I find that my typing speed is often a bottleneck. In Ocaml or Lisp, it never is.
If you need to type that much, to where whether or not you can touch type matters . . . you are doing something wrong. Saying touch typing matters amounts to stating that programming is actually carried out ON THE SCREEN YOU ARE TYPING ON and I could not disagree with that more . . . programming takes place in the mind of the programmer, typing on the screen is a byproduct.<p>I can't wait to see how his argument holds up once we have brain to computer interfaces that allow us to skip typing altogether.