Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Programming

Does Typing Speed Really Matter For Programmers? 545

theodp writes "I can't take slow typists seriously as programmers,' wrote Coding Horror's Jeff Atwood last fall. 'When was the last time you saw a hunt-and-peck pianist?' Atwood's rant prompted John Cook to investigate just how important it is to be able to type quickly. 'Learning to type well is a good investment for those who are physically able to do so,' concludes Cook, 'but it's not that important. Once you reach moderate proficiency, improving your speed will not improve your productivity much. If a novelist writing 1000 words per day were able to type infinitely fast, he or she could save maybe an hour per day.' At 150 WPM, notes Cook, the world's fastest typist was still only 10x faster than Stephen Hawking."
This discussion has been archived. No new comments can be posted.

Does Typing Speed Really Matter For Programmers?

Comments Filter:
  • by Anonymous Coward on Saturday December 25, 2010 @04:30PM (#34666972)
    ps - first post!
  • Writing an essay is entirely different from writing a function in C or Perl. Unless the essay in question is rich in physics or mathematical symbols, the author will be taking his/her fingers off home row a lot less than most modern programmers.

    Put another way, watch your error rate jump up when you quit posting on Slashdot and go back to your day job... if you have one, that is.
    • Enter vim, you rarely need to remove your fingers from the home row. ;)
      But I don't think it matters much, maybe if all you're doing is copying someone elses code without thinking about it. In most cases thinking about the problem at hand takes a lot more time than actually typing the code..

  • by anti-NAT ( 709310 ) on Saturday December 25, 2010 @04:36PM (#34666992) Homepage
    You'll naturally be a better programmer with a Model M, because you'll be able to kill your programming rivals with one fell swoop.
  • Fast Well (Score:3, Interesting)

    by AmericanInKiev ( 453362 ) on Saturday December 25, 2010 @04:36PM (#34666994) Homepage

    I'm a programmer, and I think I type very well; much better in fact than people who can touch type - but not because I type faster. The way I type does not requires me to bend my wrists; i've gotten pretty fast without stressing my wrists, while people I know have been forced into an early retirement because they can no longer type.

    The first rule of typing should be: DO NO HARM,.

    after that, suit yourself.

    • Fingers on the keyboard [doomtech.net]

      Can anyone explain me this stuff? The top layout thingie is the standard one I found on wikipedia, and I find it horribly unnatural to use, therefore I created my own distribution of finger use pictured on the bottom, which feels much more comfortable. The finger names in the picture are in Norwegian, but they correspond from left to right on your left paw. The best example is the C button. Even the thought of using the middle finger for that button makes me shrug, therefore I rath
  • How Absurd (Score:5, Interesting)

    by eldavojohn ( 898314 ) * <eldavojohnNO@SPAMgmail.com> on Saturday December 25, 2010 @04:37PM (#34666998) Journal

    'I can't take slow typists seriously as programmers,' wrote Coding Horror's Jeff Atwood last fall. 'When was the last time you saw a hunt-and-peck pianist?'

    When was the last time you ran a program where the WPM of the developer affected the quality of the code? Because the frequency of and careful regularity and emotion seriously affects piano performances whereas the symbols per minute inputted by a developer is independent of the speed, quality or maintainability of software. Sure, you might put forth that they can produce much more code or much more comments but let's face it: I'll take quality over quantity in regards to code any day of the week.

    A short simple anecdote was my Greek professor in college. Taught me pattern recognition and I went to his office hours where he was pecking away at the keyboard having just been forced onto English QWERTY. The old man still wrote some pretty badass pattern recognition algorithms in Matlab for the course. Might have taken him all week to peck them out while looking at some recently published papers but the stuff was pretty efficient and easy to read for Matlab. I took him pretty seriously.

    At my high school, in order to take advanced placement computer science courses, you had to pass some WPM typing course. Rarely have I felt a course to be such a complete waste of time and genuinely a turnoff to people looking to study programming.

    • Re:How Absurd (Score:5, Insightful)

      by Zumbs ( 1241138 ) on Saturday December 25, 2010 @04:47PM (#34667050) Homepage
      Indeed. I am a fairly fast typist, but I seldom type at full speed when coding, as I find myself using most of my time figuring out how to implement something rather than actual coding. I tend to agree with Cook's assessment: After attaining medium proficiency in typing, the gain in productivity of faster typing is minimal.
      • Actually, the more you type and the less you pause to think the more likely what you type will have to be scrapped later.
        I can do something as 15 loops one under another. Or I can find a pattern in what these loops are similar to each other and write the code as two nested loops. Surely fast typing would make writing the 15 loops easier...

        • Re:How Absurd (Score:4, Interesting)

          by sconeu ( 64226 ) on Saturday December 25, 2010 @07:50PM (#34667840) Homepage Journal

          But once you've thought about what you want, it helps to be able to touch type instead of hunt&peck. It lets you follow the path that much more smoothly.

          I'd say though, that it's not so much typing speed as much as the ability to touch type, no matter how fast, that matters.

      • Re:How Absurd (Score:4, Interesting)

        by Jamu ( 852752 ) on Saturday December 25, 2010 @05:40PM (#34667308)
        I touchtype and largely agree. However, every now and again it's nice to be able to punch in code fluidly. It means I spend more time thinking about what I'm coding. It probably doesn't matter much professionally: The productivity gains are marginal. But if, like me, you enjoy coding, being able to touchtype makes coding more of a pleasure.
    • Re:How Absurd (Score:5, Insightful)

      by melikamp ( 631205 ) on Saturday December 25, 2010 @04:53PM (#34667082) Homepage Journal
      Atwood's comparison of programmer to pianist is braindead. Programming is like composing for piano. The quality of the product is almost unrelated to one's proficiency with keyboard. It would matter for a performance, such as coding context.
      • There could be a business opportunity there. In order for your program to work I need to be in my office typing in all those dialogue messages as they are displayed. My rates are...

      • Another argument: Pair programming increases code quality. Surely two people sharing one keyboard doesn't increase the typing speed.

    • by sqldr ( 838964 )
      I think it might be the other way round. Typing isn't important for programming (I spent more time thinking than typing), but I do type at an insanely fast speed (ask anyone around me.. they usually complain about the noise :-)). This is just a bi-product of being sat behind a computer for a very long time. No matter how fast you can type, you still have to hit those curly braces with your right pinky and that grinds you straight to a halt! And don't even get me started on the plus sign.
      • Re:How Absurd (Score:5, Interesting)

        by TheRaven64 ( 641858 ) on Saturday December 25, 2010 @06:04PM (#34667422) Journal
        The problem is that slow typists try to avoid doing much typing. This means that they avoid things like detailed comments and meaningful symbol names. To a quick typist, there's little extra cost in giving something a long name - they're spending more time thinking than typing anyway - and there's a huge benefit in terms of readability. A slow typist will be bottlenecked by typing speed, so will give things shorter names to improve throughput at the expense of readability. Someone who types quickly thinks very little of writing a few lines of documentation at the start of each function and of providing comments with full sentences explaining why various approaches were chosen. Someone who types slowly regards this as a chore, and usually skips it.
        • Best comment in the whole thread. Unfortunately, I'm posting instead of modding.

          Anyway, all the naysaying repsonses probably (for the most part) be judged to be slow typists sour grapes.

          After all, why would someone who knows how type disparage the ability to do so?

          It's like a knowledge worker who claims he mainly just "thinks" and doesn't need to know how to write. Typing is the ability to computerize your thoughts after you're done thinking.

        • I call bullshit.

          Most programmers can touch type (hitting at least 50 wpm, which is only 1/3 the speed of the fastest typist in the world), yet most code is lacking in detailed comments and meaningful symbol names.

          Someone who types quickly thinks very little of writing a few lines of documentation at the start of each function and of providing comments with full sentences explaining why various approaches were chosen.

          I couldn't have said it better myself. Quick typists apparently don't think about what they type, and just splatter shit all over the place. Making code hell to understand

          A slow typist, however, cares a lot more about each and every word they type, so the code is far more likely to be concise (no

    • When was the last time you ran a program where the WPM of the developer affected the quality of the code?

      I don't believe that it was insinuated that there was a linear relation between WPM and code quality. Yet, there is a clear connection between coding experience and the time spent hacking away on a keyboard. Therefore, if someone happens to be unable to type at a reasonable speed then that person certainly hasn't spent enough time in front of a computer, and at best only a fraction of that time deve

    • Re:How Absurd (Score:4, Interesting)

      by professionalfurryele ( 877225 ) on Saturday December 25, 2010 @06:06PM (#34667438)

      You are completely correct, it's completely absurd, especially in specialised disciplines. You know how you can tell when I'm programming? I'm sat in the office with my feet up throwing a ball in the air. Thinking.

  • by www.sorehands.com ( 142825 ) on Saturday December 25, 2010 @04:38PM (#34667010) Homepage

    It does help a little to have some typing speed, but haste makes waste.

    The most important factor in programming is not speed, but solid code. If you write lots of code, but the code is buggy, the time to track the bugs will easily eat any time savings gained by speed.

    When it comes to debugging, thinking through the problem before trying to trace solve it will save more time then faster typing in the debugger. If by careful analysis, you can rule out 90% of the area of the problem, you have just reduced the time to track the problem by 90%.

    • by SJS ( 1851 )

      A moderate typing speed suffices. Say, oh, 30wpm, or thereabouts?

      If you're not typing at a reasonable speed, you're going to have an incentive to shorten variable and function/method names from something reasonable to something cryptic. You're going to avoid typing documentation, or worse, propose that your cryptic POS code is 'self documenting'. You're going to be an unpleasant partner if you end up pair-programming. All this means you're not only affecting /your/ productivity, but you're now negatively a

      • 30 WPM is easily doable without knowing how to touch type. Back before I bothered to learn to touch type, I could easily do that with the old hunt and peck.

        And really, if you can't do at least 50 WPM, you really shouldn't be bragging about your typing speed, at least not anywhere that anybody that uses a keyboard on a regular basis might see you doing so.
  • by Giant Electronic Bra ( 1229876 ) on Saturday December 25, 2010 @04:39PM (#34667014)

    If you're spending most of your time as a programmer typing, or even dealing directly with source code, then there's a lot more wrong with this picture than typing speed. Keying in code should be one of the most trivial parts of the job.

    I'd say being able to type well will probably improve ones enjoyment. It may save a few minutes here and there. It is certainly annoying to watch someone else type slowly when you're waiting on something. Still, it has little or nothing to do with one's ability to program or ability to complete coding tasks quickly and well.

  • by Anonymous Coward on Saturday December 25, 2010 @04:41PM (#34667018)
    Atwood's opinion is about as intelligent as saying "You can't be a good architect if you don't draw fast." Typing is an essential part of the process of being a software engineer, but typing speed is important only to the most brainless parts of the job -- parts that are likely either done by code monkeys or while the engineer is mentally processing the rest of the design.
  • Don't measure WPM (Score:5, Insightful)

    by Leto-II ( 1509 ) on Saturday December 25, 2010 @04:41PM (#34667020)
    String output;
    output = "We";
    output += " should";
    output += " really";
    output += " be";
    output += " measuring";
    output += " lines";
    output += " of";
    output += " code";
    output += " per";
    output += " minute.";
    System.out.println(output);
  • Good programmers spend the vast majority of their time thinking, not typing. A better music analogy than Atwood's hunt-and-peck pianist is composers. Composers reiterate over their ideas for a period of time then write to paper only when they feel the ideas may be worth committing to.
    • Good programmers spend the vast majority of their time thinking, not typing. A better music analogy than Atwood's hunt-and-peck pianist is composers. Composers reiterate over their ideas for a period of time then write to paper only when they feel the ideas may be worth committing to.

      Yes, but that thinking doesn't necessarily happen while constantly staring at the monitor, nor it occurs uninterrupted until you discover the meaning of life. Beyond required phases of analysis and design, or as a response to inevitable interruptions to one's thinking muse, we do a lot of prototyping and experimentation. There is this thinking process that occurs by tinkering and exploring. Barring areas of high criticality, software development is a highly iterative process that involves bout of (sometimes

      • To reiterate, thinking and coding are not mutually exclusive activities with respect of time. Yes, good developers spend a lot of time thinking... but it just so happen that such thinking is highly interactive with the activities of coding and documenting and communicating via chat or e-mail. There is simply no way for someone to work in such an environment for long enough without developing some decent typing skills. No way. No how. You show me someone that claims to be a programmer but who struggles with
  • by thegarbz ( 1787294 ) on Saturday December 25, 2010 @04:43PM (#34667036)
    A pianist is the equivalent of a data entry clerk. They have a sheet in front of them and faithfully reproduce what's on it. The person who composed the sheet music on the other hand may not even play the instrument it's designed for. I highly doubt composers of classical pieces were capable of physically playing every instrument in an entire orchestra, but based on what they wanted to do they could create the notes for it.

    Programming is the same. I would much rather a programmer actually put more thought into algorithms and design than churning out code. Ultimately what does it matter how many WPM a programmer can program anyway? Half the time they will spend their team using obscure symbols on the keyboards and actually reading / looking at cross-references and algorithms than actually punching in words. Even if a programmer can't churn out 50WPM does it matter providing he's reasonably fluent and doesn't spend 1 minute looking for the ! symbol?
    • Programming is the same. I would much rather a programmer actually put more thought into algorithms and design than churning out code.

      the thing is, often you do need to write boilerplate-ish code (think unit tests), or code where you know EXACTLY what you want to do already, so maximal coding throughput is still very important: very few people spend their working time writing code where every line requires a lot of thought, most people will write code where maybe 20% of it is non-trivial and requires a lot of investigation, and 80% is "trivial" code to support the 20%. The more experience you have the more likely the ratio skews towards "

    • Indeed. where exactly does Stephen Hawkings fall in this typing speed test? Comparing typing and piano is absurd. I know a jazz pianist who has his own fingering technique and is a flamin GENIUS on the bones. I play guitar but not the standard classical fingering style; I use a funky blues style which every wanna be will tell you is wrong. For one thing I use the thumb in some riffs to hit the low E string. Btw: I am a hunt peck typist and do OK. This strikes me as the clip board aproach to prod
    • I sort of agree but the analogy used by Jeff Atwood isn't perfectly suited for the situation.

      Imagine that the pianist is trying perform a piece of music. That's the "creating a program" part expressed as "creating a musical performance". Now imagine that this pianist can never remember where the different keys are, do you think the performance he is able to put together is anything like the performance put together by a second pianist who "just knows" what key to press while reading the sheet music?

      Another

    • by Z34107 ( 925136 ) on Saturday December 25, 2010 @05:58PM (#34667394)

      A pianist is the equivalent of a data entry clerk. They have a sheet in front of them and faithfully reproduce what's on it.

      Not quite. Once you move beyond entry-level competitions, it's simply a given that anyone and everyone can play anything given to them flawlessly. Your performance is judged on how you interpreted the piece, not merely on the fact you can read sheet music.

      For example, listen to Rachmaninoff [youtube.com] playing his Prelude in C# Minor versus a newer interpretation [youtube.com]. Especially compare 1:58 in Rachmaninoff's piano roll with ~1:20 in Peter Roper-Curzon's version; there's a lot going on beyond technical accuracy.

  • by IICV ( 652597 ) on Saturday December 25, 2010 @04:44PM (#34667038)

    I find that I don't type very fast at all when I'm writing code; after all, the limiting factor there is how quickly I can think through what I want to do, not how quickly I can twiddle my fingers. I suppose if you're working from a very detailed design document you would need to be able to type quickly, but if it's that detailed why isn't it already a program?

    On the other hand, I do find that I only rarely have to go back and re-write large sections of code; usually the worst that happens is that I need to run a regular expression over it.

    • by javakah ( 932230 )

      I'm the same way.

      The other day while coding I realized that I was typing waaaay faster than I normally do while typing.

      Then I realized that it was because I was writing an IM.

      After that I went back to coding and my typing slowed down tremendously.

      Thinking about this, it's probably because over time I've learned that it saves a lot of time to slow down and consider the structure that you are creating when coding, and making sure that you have very few typos/switched variable names. Sometimes the tools can he

  • by GreatBunzinni ( 642500 ) on Saturday December 25, 2010 @04:49PM (#34667054)

    There is a reasonable basis to assume that a slow typist is not a decent coding. After all, typing speed is something which is naturally developed as the person keeps hammering away at the keyboard. So, although typing speed does not guarantee coding proficiency, if someone does not pass enough time in front of a keyboard to develop any decent speed then it is expected that that person hasn't spent much time writing software. And if someone hasn't invested all that time writing code then quite certainly that person sucks at coding.

    • This actually makes sense, and explains why typing speed doesn't cause good programming, but there might still be a correlation.

    • by luis_a_espinal ( 1810296 ) on Saturday December 25, 2010 @05:08PM (#34667168)

      There is a reasonable basis to assume that a slow typist is not a decent coding. After all, typing speed is something which is naturally developed as the person keeps hammering away at the keyboard. So, although typing speed does not guarantee coding proficiency, if someone does not pass enough time in front of a keyboard to develop any decent speed then it is expected that that person hasn't spent much time writing software. And if someone hasn't invested all that time writing code then quite certainly that person sucks at coding.

      For my own personal case, I was a typist for about 8 years before I went down the coding path so my views might be a bit skewed and subjective.

      With that out of the way...

      I would tend to agree that there is a correlation of typing speed and software development experience (or there should be for a proficient programmer with a shitload of coding man-hours.) A person that doesn't spend enough time coding will simply code at sucking. And if that person does not have typing skills a-priori then that person will not have good typing skills. So, it is fair to assume that a person that works as a programmer should have decent typing skills, not because he/she needs them for coding, but as a side-effect of programming exposure, in a manner proportional to the amount of work hours doing coding.

      That is, I would see it as suspect to see a programmer that cannot type proficiently, be it with all 10 fingers or simply with their index fingers. And I would not reserve that suspicion only to senior programmers but even to fresh-out-of-school ones. Not just good, but passionate CS/MIS students (either BS or AS degree seekers) will have sufficient coding hours under their belt to inevitably develop some typing dexterity. Passionate art students paint and sculpt a shitload. Passionate electrical engineers spend a shitload of hours building circuits. Passionate CS/MIS students spend a shitload of hours coding. In all cases, it is a shitload of hours beyond the minimum requirement to get a degree.

      Will lack of typing dexterity mean with utmost infallibility that someone sucks at coding (or that was a slacker in school)? Obviously not. But it would be hard not to see it as suspect.

      Another thing is that yes, typing dexterity helps with coding, with prototyping, with hacking. Yes, we need to plan and design before we code, but when you know exactly what needs to be done, or when you have a sufficiently good idea to start prototyping (or when you are in the middle of a hack that *must happen*), bro, you better be able to get those streams of thought fluently down to your keyboard via your fingers. If you have done coding work for real, getting down to some really nice (or ugly but necessary) code, you know what I mean - that you are in your mojo coding that thing down.

      I cannot imagine getting myself into that *zone* of coding while struggling with the keyboard. No way, no how. I cannot see how someone could get into that *zone* without good typing skills. Period.

      You don't need typing skills for design. But you certainly need it to crank some code when the muse inspire you. And if the muse doesn't inspire you often, you are either in the wrong career choice, or you suck.

    • Still, at my 4-finger-combo, I can type moderately fast while creating correct code. I've seen kids who could touch-type faster than me, but didn't even know what programming is all about.

    • You are wrong.
      An analogy is to compare a gourmet and a bulimic.
      Typing fast is similar to eating large quantities of food in the fastest way, instead of appreciating the food you eat.

      At my work, we have a super slow typist, and since we code with pair programming, when I worked with him, I wanted to take the keyboard, since he was so slow.
      However, there are several points that were more important than speed:
      1) the IDE (we use Visual Studio and Resharper) slows down the typing, because of the "Intelli

  • by SWestrup ( 28661 ) <[sti] [at] [pooq.com]> on Saturday December 25, 2010 @04:51PM (#34667068) Homepage Journal

    Its not the speed of the typing that matters, its the cognitive load. If you're spending all of your time trying to remember where the '}' key is, then you'll find it hard to keep your loop invariants invariant in your head. This leads to bugs.

    If you type with two fingers, but can do it without looking or thinking about anything other than your code, then it doesn't much matter how fast you go. On the other hand, if you achieve incredibly coding speed by concentrating on your fingers, your code is sure to suffer.

    • You'd have to be an incredibly slow typist before that became an issue. Personally, I rarely if ever bother to go particularly fast when it comes to typing because I don't need to. Right now I'm typing at a pretty relaxed pace so that I can read and correct as I go. It is nice that I don't have to think a lot about it, but if I did then I wouldn't have to go so slow. Reason being that I'd be paying more attention to what key I actually pressed rather than reading along to make sure that I pressed the correc
    • by Xtifr ( 1323 )

      I was going to post exactly this, but you beat me to the punch. There is another factor too, though. If you struggle to type, you're more likely to use brief, cryptic, incomprehensible identifiers in your code, and to omit even the most minimal of comments, creating major long-term headaches just to save yourself some short-term pain. In my experience, there is a minimal threshold below which I wouldn't want a programmer, because I simply wouldn't trust 'em to produce maintainable code, but I think it's

  • ... "editor" typing speed is even more so, I can't believe how many times I have seen coworkers blindly typing everything out where a macro could have made them type 1/10th of the characters, not to mention how much faster they could be with an editor that supports rectangular copy+paste, automatic indenting, justification, alignment, auto-complete etc. etc. etc.

    A medium-speed typist that's fully proficient in their editor of choice can output a LOT more lines of code than a super-fast typist that treats th

  • by Eudial ( 590661 )

    Modern IDEs tend to auto-complete so much that it really isn't a problem, even in verbose languages like Java. Then there are of course those languages that are so abstract and dense that it will never matter, like say Haskell.

    • When I was younger, I did a number of projects in APL. Typing speed was more likely to be characters-per-minute, not WPM. For the most part, touch-typing APL is a null concept; almost everyone spends a fair amount of time hunting for the particular special symbol that they need. APL might be the only programming language where it would be faster to scribble stuff on a touchscreen with a stylus than to use a keyboard :^)
  • TFA references masters in their fields and people of higher mental abilities and tried to say that it does not matter how slow you push the keys down, it's what you put down. Well then why did they not even consider what kind of mental load hunting and pecking for keys puts on the typist? I don't know about you but when I type(10 fingers) I do little to no thinking of what keys I'm pushing and spend my mental time on the concepts I'm putting down. I may suck at what I put down but I'm not spending time loo
  • Yes, and no... (Score:5, Interesting)

    by MoeDrippins ( 769977 ) on Saturday December 25, 2010 @04:55PM (#34667092)

    Of course it matters. Sometimes. Your 'rate of creation' is simply the min(rate_of_typing, rate_of_thought). If you can type faster than you are currently thinking/creating/"solutionizing" then no, it doesn't matter, and there are a lot of times during code creation where this is the case; you need time to noodle, try things out, think about a solution, need some time. But, there are times where you know EXACTLY what you want the code to do/be/look like, and those times your typing speed can be the bottleneck, and there are a lot of times during code creation where THIS is the case too.

  • Speed typing isn't necessary, but when you're trying to debug something thorny and you're waiting for that one guy to stumble through commands.... hunting... pecking... typoing again and again while you have nothing better to do than resist the urge to rip the damn keyboard from his hands...

    I've seen bad typing waste as much as 50% of the time of four rather well paid people.

    Okay, so that's still better productivity than most meetings manage.

  • Comment removed (Score:5, Insightful)

    by account_deleted ( 4530225 ) on Saturday December 25, 2010 @05:00PM (#34667112)
    Comment removed based on user account deletion
    • Precisely. Typing in code isn't the same thing as typing an article or a comment on a blog. The language used isn't optimized for that, it's designed typically to be compiled or interpreted in a specific way.

      Consequently, while it might be nice to type really fast, the reality is that you can't do it because you simultaneously need to be making sure you're typing the correct code. A similar problem to computer processors, they could do a lot more calculations if we were OK with the calculations not being
  • Comment removed based on user account deletion
  • The answer is "No" (Score:5, Interesting)

    by BitHive ( 578094 ) on Saturday December 25, 2010 @05:05PM (#34667130) Homepage

    Any reasonably intelligent person should be able to find the flaws in Atwood's analogies and synthesize several decent counter-arguments by themselves. The notion is ridiculous on its face and if the quality of this guy's analogies is any indication of his mental acuity then I'm surprised anyone reads his blog at all. I'm not sure why such a laughably flawed statement should prompt anything but derision, but Slashdot being what it is today, I suppose it is the right place for such a discussion to take place.

    • by Monoman ( 8745 )

      Good point. We might even take more points from him for his flawed argument than for another's slow typing. :-)

  • by Kjella ( 173770 ) on Saturday December 25, 2010 @05:05PM (#34667136) Homepage

    Because poor typing skills will lead to you writing less readable code with a lot more shorthand. Shorter variable names, shorter function names, if you don't got good typing skills you'll end up coding using lots of do( x ); where parse( record ); would be far better. You can pretend it doesn't happen, or you can pretend it doesn't matter, but you inevitably drop the "fluff" because it's "slowing you down". I've tried it, it actually requires more typing to write code you'd want to come back to later, all that context that's spinning up in your head telling you what all the variables are and the abbriviations mean will be lost. Being able to type it out quickly and effortlessly without losing the flow of the code you are working on is a big advantage. It's not the typing speed itself though, it's getting to the point where your typing doesn't interfere or slow down your thinking. But when you're typing naturally without thinking that is a highly skilled typer..

  • by Opportunist ( 166417 ) on Saturday December 25, 2010 @05:06PM (#34667146)

    Frankly, I can deal with programmers who are "slow" typists. Within reason of course, but in general, unless they're coding in Pascal (and even then, they will probably have learned by now how to quickly type those 'begin's and 'end's) or another language more suited to writing novels than code, what big difference will it make provided they know how to code?

    What matters to me is their ability to use an English keyboard layout and do not have to insist in their own language. This becomes especially obvious in a multi language team (i.e. where English is the language of choice even if nobody has it as his native language because, well, it's the ONLY language they share), where you might be forced to use someone else's machine for something only to find out that you can't find ANY important characters because they're conveniently tucked away somewhere safe.

    But more important, have you ever noticed how all those important brackets and punctuation that you NEED in 99% of the languages are near impossible to type without breaking your fingers on non-English keyboard, especially if that language has to deal with a lot of diacritical characters? On most non-English keyboard the { and } brackets are only reachable with the combination of Alt-GR and 7-0. And let's not even talk about the "Polish writing keyboard layout", which is a nightmare to program with. I still think they did it on purpose, I cannot imagine that anyone could actually code using such a layout.

    If you are programming, and you happen to "suffer" from one of those layouts, try switching to an English layout. When I started to code, I was wondering who the FU.. could come up with the idea that { and } would be sensible to use for something you need, like, every other character. Once I switched to English, it started to make sense.

    • But more important, have you ever noticed how all those important brackets and punctuation that you NEED in 99% of the languages are near impossible to type without breaking your fingers on non-English keyboard, especially if that language has to deal with a lot of diacritical characters? On most non-English keyboard the { and } brackets are only reachable with the combination of Alt-GR and 7-0. And let's not even talk about the "Polish writing keyboard layout", which is a nightmare to program with. I still think they did it on purpose, I cannot imagine that anyone could actually code using such a layout.

      If you are programming, and you happen to "suffer" from one of those layouts, try switching to an English layout. When I started to code, I was wondering who the FU.. could come up with the idea that { and } would be sensible to use for something you need, like, every other character. Once I switched to English, it started to make sense.

      Agreed. I switched to a UK layout about 10 years ago, as I was living in the UK and started programming more seriously. In retrospect I wonder how I managed to use Linux, including shell scripting, HTML, latex etc. with a Finnish keyboard prior to that. For typing in Finnish, there is fortunately a way for fast switching in Xorg.

      As for typing speed and programming, there are also things like comments and documentation. For these it is great if you can write extended natural-language text without frustrat

    • by Kjella ( 173770 )

      Man, what an ethno-centric, you're the kind that gives Americans a bad reputation.

      1) My native language would be very annoying to write on a US keyboard. Try finding the alt codes for æøåÆØÅ if you don't believe me.
      2) I know where all the symbols are in my layout, trying to use two layouts is like if I'd randomly switch your keyboard between dvorak and qwerty.

      If you're going to use multiple keyboard inputs, you can easily configure a computer to work that way. There's a little

      • by Opportunist ( 166417 ) on Saturday December 25, 2010 @06:20PM (#34667500)

        1) I'm not from the US. My native keyboard contains no æøåÆØÅ but instead öäüÖÄÜ and I raise by an ß. May I still play? Btw, we use QWERTZ instead of QEWRTY, just to make things more interesting. And I'm kinda sure that your standardization bureaucracy found a neat way to substitute those æøåÆØÅ characters like we did with oe for ö and ue for ü, etc. It's hardly impossible to emulate those characters without having an ASCII-table crib sheet.

        2) Of course I do know where all the symbols are on my native keyboard layout. I learned typing and also programming using one. And yes, with the more recent Windows and Linux versions it became easier to actually switch between layouts, which is why I do now definitely recommend switching to a US layout for programming, since it is trivially easy to switch to and fro between "programming" and "writing" mode.

        If you read my post again without the implicit imagination that I'm trying to press for some US-centric keyboard layout imperialism, you might notice that I wanted to show that it becomes heaps easier to program using a US keyboard layout, and you don't break your fingers every time you're supposed to type { or }, or pretty much anything else you need for "normal computer operation". Oh, btw, on my native keyboard, the backslash is AltGr-ß. What's more irritating even is that @ is AltGr-q. Do you know how irritating it can be to accidentally hit AltGr-Tab instead on a Windows machine? Compare that to the fairly uncomplicated handling on a US keyboard.

        Makes sense now?

  • ...any branch of CS/IT, study of which includes time-limited exams during which you have to churn out large quantities of functional but utterly boring code.

    Oh, and also if you happen to be applying for a job of John Travolta's personal coder. [youtube.com]

  • I'd argue that for programming, in which typing is a necessary step while not being the desired product unto itself, typing slower or typing faster is not the point. Effort spent typing is the point. As a distraction, typing becomes problematic for programmers. Being one myself, expressing a complex relationship in code would be hindered by any increase to the distraction of typing that code.

    Expending ten times the effort on typing, would quickly reduce the quality and cohesiveness of my code -- which is

  • I would definitely put more of an emphasis on typing accuracy than speed... It saves more time/money in the long run. You can be the fastest typist in the world but if every 3rd key is the backspace then you're losing some serious efficiency.
    • by SJS ( 1851 )

      I work with someone like that. He hits a lot of keys in a very short period of time... but almost half of them are the backspace key, because he almost never hits the key he wants to hit.

      It sounds like he's getting a lot of work done. If you look over his shoulder, you might find out he's spent the past five minutes trying to scp his editor's configuration file from one machine to another.

  • it matters a lot (Score:5, Insightful)

    by MonoSynth ( 323007 ) on Saturday December 25, 2010 @05:19PM (#34667236) Homepage

    Touch typists generally use more verbose variable names and more comments, because it's much more natural for them to type a lot of words. This makes their code a lot more readable, which saves money in the end since a *lot* of the cost of software is in maintenance and the only performance factor that really counts is not cpu cycles, memory usage or bandwith utilization, but euros, dollars, rupees, yens or whatever your legal tender is. The programmer's time is (one of) the most costly aspect(s) of software development. A crufty codebase is much easier to read and maintian with comments *really* explaining fixes and variable names explaining what they're used for. I see so much code with comments like '// Issue #24654' or variable names like 'i' or 'j' in functions that span more than 50 lines (or whatever fits in one screen).

    Of course there's more than typing speed involved in making maintainable code and I'm sure there are non touch typists who force themselves to make their code readable, but being able to type fast without thinking helps a lot.

  • I graduated from HS over 30 years ago, and I still remember touch typing as one of the two most valuable classes I ever took. Touch typing skill are valuable because it does get one away from hunt and peck. But typing speed has absolutely nothing to do with coding, since when I code, 90% of my time is spent looking at the screen and thinking about the code. Half of the rest is spent copying/moving code segments around. The 10% spent entering text are done a line or two at a time. The speed increase mad

  • I assume that anyone, barring physical handicap, can learn to type and will progressively get faster until they can express their thoughts somewhat directly. It's not a matter of the "think vs type" time ratio, it's not a matter of the logic acumen, it's not a matter of the raw speed. (Obviously the logic acumen is most important of all, but that's another skill that is usually developed over time.) I must say that without other information, I must assume a slow typist is an inexperienced computer user.

  • I'd agree with the guy based on the premise that if someone can't type quickly then he mustn't have spent a lot of time typing ergo hasn't spent a lot of time coding.
    That's a reasonable assumption to make, however this is not to say that someone who types quickly is a better coder- - but someone who keeps staring at the keys[1] would be a bad coder.
    Does this make any sense to anyone else?

    [1] Unless you gave him an unfamiliar or in some way strange, to him, keyboard.
  • I've always been a very fast typist; many people I've worked with have noticed and commented on my typing speed. An Indian contractor I was working with wanted to know how I got that fast -- had I taken a class or used some typing training software that he could use so he could become as fast. I told him it was just something that came naturally to me and that I didn't really think typing speed was very important for software developers, because actually typing in code is a very small part of the process. B

  • by shish ( 588640 ) on Saturday December 25, 2010 @05:52PM (#34667360) Homepage
    this comic [smbc-comics.com] seems to be accurate and appropriate every time a slashdot article title ends with a question mark...
  • I know of many cases in the last 20 years when my fingers have been blazing as I'm coding. Not writing code from scratch - but doing lots of find/replace (before IDEs had all these refactoring helpers). I can't remember the specific scenarios, but I know there have been times when my coworkers have heard the keys blazing non stop at high speed for several hours and wondered what the heck I was doing.

    I seem to recall it around lots of manual typing of database field names in multiple places, maybe adding o

  • A true hunt-and-peck typist is concentrating on finding the letters when typing. A touch typist devotes almost no conscious effort to typing. If I try some unfamiliar keyboard layout, so that I can no longer touch type, I find that my coding has two mutually exclusive phases--thinking and typing. When using a layout for which I can touch type, there is only one phase--thinking. Thus, I think it is important that a coder be able to touch type.

    As far as touch typing speed goes, it probably doesn't matter too

Those who do things in a noble spirit of self-sacrifice are to be avoided at all costs. -- N. Alexander.

Working...