Slashdot Mirror


Does Typing Speed Really Matter For Programmers?

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."

62 of 545 comments (clear)

  1. it matters for first post! by Anonymous Coward · · Score: 5, Funny

    ps - first post!

  2. Re:Depends on what language you use by Shados · · Score: 3, Interesting

    Except in Java with all the tools you have at your disposal, if you're typing 1/2 or even 1/3 of the code you're writing, you're doing it wrong.

  3. More important - having a Model M by anti-NAT · · Score: 5, Funny

    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.

    --
    The Internet's nature is peer to peer - 20050301_cs_profs.pdf
    1. Re:More important - having a Model M by jasenj1 · · Score: 2

      I prefer Apple's aluminum keyboard. You can slice your rivals' heads off with one fell swoop.

      - Jasen.

  4. Fast Well by AmericanInKiev · · Score: 2, Interesting

    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.

  5. How Absurd by eldavojohn · · Score: 5, Interesting

    '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.

    --
    My work here is dung.
    1. Re:How Absurd by Zumbs · · Score: 4, Insightful

      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.

      --
      The truth may be out there, but lies are inside your head
    2. Re:How Absurd by melikamp · · Score: 4, Insightful

      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.

    3. Re:How Absurd by Jamu · · Score: 3, Interesting

      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.

      --
      Who ordered that?
    4. Re:How Absurd by GreatBunzinni · · Score: 2

      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 developing software.

      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.

      Notice the relevant detail here? You are claiming that someone who hasn't yet got used to a particular keyboard layout, but is certainly more proficient in a more familiar keyboard layout, is also capable of churning good code. That is, your anecdotal example boils down to "he was forced to switch to a foreign keyboard but he still writes good code, although slower". The thing is, no one suddenly becomes dumber or forgets his experience and academic knowledge just because he switches keyboards. Yet, those who never bothered to develop their typing skills most certainly never bothered to invest their time gaining any experience or academic knowledge related to software development. Hence, they aren't as good as those who did invested their time. See the difference?

      --
      Slashdot, fix your code or at least hire someone who is competent at it to do it for you.
    5. Re:How Absurd by TheRaven64 · · Score: 5, Interesting

      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.

      --
      I am TheRaven on Soylent News
    6. Re:How Absurd by professionalfurryele · · Score: 3, Interesting

      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.

    7. Re:How Absurd by buchner.johannes · · Score: 2

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

      --
      NB: The message above might reflect my opinion right now, but not necessarily tomorrow or next year.
    8. Re:How Absurd by ohiovr · · Score: 2

      Ahem... Franz Liszt. I rest my case.

    9. Re:How Absurd by DCFusor · · Score: 2
      I type blindingly fast -- and am also just about the best coder I've ever met (and I'm not alone in that opinion). But I agree with the two posts above - that's not so important. The main thing knowing you can do the typing part super fast gives you is the confidence to spend more time planning what to implement, so that when you type, there's better code and less of it. When I know I can get a lot of code in in a short time, there's more time for planning, comments, overviews for maintainers, you name it -- and those things are important to the final quality output.

      Fewer better lines -- I don't care the language or whether it's code or documentation -- are better, end of story.

      I used to work in devstudio (ver 6 and down) when yes, you could get a ton of code written in no typing on your own - but only if you really knew MFC internals, and what all those strange macros would expand into. There was no "simplification" or "cheating" in that tool, actually, the ones who thought that made good programming easy are the blue screen creators. Now I work mostly embedded or linux, and mostly use very simple tools -- gedit, makefiles, scripts....works fine.

      I do have to say, not having to worry diddly about typing, not even having to look at either screen or keyboard, is cool. But not necessary.

      --
      Why guess when you can know? Measure!
    10. Re:How Absurd by sconeu · · Score: 3, Interesting

      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.

      --
      General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
    11. Re:How Absurd by smellotron · · Score: 2

      I have seen it in the workplace. It's incredibly frustrating to watch a two-index-finger typist write code. That level of typing speed really discourages creativity in the development process, simply because it is laborious to go back and tweak anything.

    12. Re:How Absurd by Mr.+Slippery · · Score: 2

      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!

      Actually, no, you can hit that key with any finger and it still works. And that's why standard "touch typing" is broken for computers, especially for coding: it's meant for English text that makes very rare use of characters like {}[]/\, whereas code uses them frequently; and futhermore it's meant for a keyboard without cursor control keys.

      I mostly I type with two fingers on each hand. I took my first programming class in 1981, and have been making a living at it since 1991. I've also written probably a million words of BBS, USENET, email, and web forum postings, plus a book of significant length. Four finger typing has gotten me by so far, because it takes me much longer to figure out what to type than to type it.

      --
      Tom Swiss | the infamous tms | my blog
      You cannot wash away blood with blood
    13. Re:How Absurd by Compaqt · · Score: 2

      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'm not a lawyer, but I play one on the Internet. Blog
    14. Re:How Absurd by Bigjeff5 · · Score: 2

      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 (not terse) and self-descriptive than a fast typist's code.

      As far as I've ever seen, 95% (probably more, actually) of a programmer's time is spent thinking, not typing (that includes writing good comments). That means someone who types half as fast is going to get the job done a whopping 5% slower (clearly, a deal breaker there), and someone who types twice as fast is going to get it done a whopping 2.5% faster.

      Seriously, typing speed is practically irrelevant. (For the record, I type around 60-70 wpm, but when programming anything at all challenging that drops to maybe 10 wpm, overall average)

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
  6. Not really important if somewhat proficient by www.sorehands.com · · Score: 3, Insightful

    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%.

  7. Practically Immaterial by Giant+Electronic+Bra · · Score: 3, Insightful

    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.

    --
    "Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
  8. Code monkey or engineer? by Anonymous Coward · · Score: 4, Insightful

    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.

  9. Don't measure WPM by Leto-II · · Score: 5, Insightful

    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);

    --
    Do not anger the worm.
    1. Re:Don't measure WPM by blake182 · · Score: 2

      You should use a StringBuffer for performance reasons. Just sayin'.

    2. Re:Don't measure WPM by BlueScreenO'Life · · Score: 2

      Console.write(System.Configuration.ConfigurationManager.AppSettings["strIrony"];)

      -------------------
      in app.config:
      -------------------

      <configuration>
      <appSettings>
      <add key="strIrony" value="You realize you've used a literal as well, right?"></add>
      </appSettings>
      </configuration>

  10. It's *thinking* faster that counts by webbiedave · · Score: 2

    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.

  11. Programming != Data Entry by thegarbz · · Score: 3, Insightful

    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?

    1. Re:Programming != Data Entry by Z34107 · · Score: 5, Insightful

      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 playing his Prelude in C# Minor versus a newer interpretation. 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.

      --
      DATABASE WOW WOW
  12. I don't type very fast when I'm coding by IICV · · Score: 3, Informative

    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.

  13. Re:Depends on what language you use by bytesex · · Score: 2

    The problem lies in the mentality 'I'm a java programmer, *therefore* I use an IDE with autocompletion'.

    --
    Religion is what happens when nature strikes and groupthink goes wrong.
  14. Correlation:typing speed and coding experience by GreatBunzinni · · Score: 5, Insightful

    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.

    --
    Slashdot, fix your code or at least hire someone who is competent at it to do it for you.
    1. Re:Correlation:typing speed and coding experience by LordNacho · · Score: 2

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

    2. Re:Correlation:typing speed and coding experience by luis_a_espinal · · Score: 4, Insightful

      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.

    3. Re:Correlation:typing speed and coding experience by eulernet · · Score: 2

      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 "Intellisense" feature. When you type, the editor tries to guess what you want to type and takes a large amount of CPU to guess, but this guy rarely uses Intellisense.
        2) Focus. This coder is our most focused one. He's able to work when there is noise around him, always typing slowly but concentrating on his task, and since he's independent from the IDE popups, he's typing at a constant (but slow) rate.
        3) Amount of work. Since he's slow, he spends a lot of time on his computer. Probably 10 to 12 hours every day. He's very dedicated.
        4) Thinking while typing. He's thinking a lot for every word that he types. So his code tends to not be ridden with bugs.
        5) Writing short portions of code. He's always trying to optimize the amount of lines he'll type. This may appear dumb, but the less lines you type, the less bugs you'll get.

      Speed typing is not a criterion about coding's experience, because I know fast typers that write terrible code.
      On the contrary, fast typers will rely on their ability to write the biggest amount of lines instead of focusing on writing the smallest amount of lines (see point 4 above).

      BTW, I'm a very fast typist (using only 2 fingers !), but I'm very slow when I write in english, since it's not my mother tongue.
      I'm pretty sure I don't leave typos, even though I don't reread my lines.

  15. Its the Cognitive Load by SWestrup · · Score: 5, Insightful

    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.

    1. Re:Its the Cognitive Load by Xtifr · · Score: 2

      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 around 30 wpm. Anything above that is probably gravy (and yes, I'm noticeably above that).

  16. Yes, and no... by MoeDrippins · · Score: 5, Interesting

    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.

    --
    Before you design for reuse, make sure to design it for use.
  17. Of course it does by jmerlin · · Score: 4, Insightful

    to a point. If you're horribly terribly slow at typing on a computer, you won't be able to effectively execute ideas as they happen, sometimes you really just need to pound out that ~150 lines of code you have sitting in your brain queue, if you have a significant lag between the time of inception and the time of completion, you're stuck on the same idea for a long period of time -- you can't quickly type it up, compile/test, debug it, then move on all during that while you had in mind what you needed to do next. Instead you're hopelessly focused on the single task at hand.

    However, how many programmers spend so little time working with computers that they don't have a natural typing speed of 60+ WPM? Surely most do, although I don't know anyone that can type as quickly as I do, they aren't slow at all. I'd imagine at around 50 WPM it ceases to matter really except that at 110+ you end up doing a lot of little corrections and formatting changes to your code. I find myself re-editing my code in several iterations at times, doing my thinking in text rather than all abstractly in the mind (it's easier to add up a large column of numbers on paper than it is in your mind btw), write out a quick obvious case implementation, do a quick optimization pass, then debug and write a unit test if needed.

    I think the problem with counting in lines of code is that 1 BLOC != 1 GLOC. (bad vs good). 10000 bad lines of code can probably be replaced realistically with 1000 good ones (you may get ratios of up to 100:1 if you see code like on TDWTF). If a programmer consistently pumps out 5000+ lines of code a day with no problem may be far less productive realistically than someone who only makes little more than ten percent of that but has fully debugged it, implemented strong algorithms and well researched data structures and design patterns, and even has a unit test to verify that future modifications work as expected. In the end, it matters, sure, but I do think it's more about the intelligence and skill of the programmer, not how quickly they type.

  18. The answer is "No" by BitHive · · Score: 4, Interesting

    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.

    1. Re:The answer is "No" by Monoman · · Score: 2

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

      --
      Keep the Classic Slashdot.
  19. Yes by Kjella · · Score: 2

    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..

    --
    Live today, because you never know what tomorrow brings
  20. More important: Knowing the English keyboard by Opportunist · · Score: 4, Insightful

    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.

    --
    We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    1. Re:More important: Knowing the English keyboard by TeknoHog · · Score: 2

      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 frustration.

      --
      Escher was the first MC and Giger invented the HR department.
    2. Re:More important: Knowing the English keyboard by Opportunist · · Score: 3, Interesting

      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?

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
  21. Re:Depends on what language you use by MichaelSmith · · Score: 5, Insightful

    Most of the work do is maintenance. Finding bugs in 20 year old code. If I change two characters in one line on one day and close one bug, then thats a good day.

  22. it matters a lot by MonoSynth · · Score: 4, Insightful

    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.

  23. Re:No by michael_cain · · Score: 2

    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 :^)

  24. Re:Depends on what language you use by drunkennewfiemidget · · Score: 2

    This is not an argument FOR java. This is an argument against it.

  25. Re:Depends on what language you use by msauve · · Score: 3, Funny

    "Most of the work do is maintenance. Finding bugs in 20 year old code. If I change two characters in one line on one day and close one bug, then thats a good day."

    So, you're saying it would have taken you half a day to add an "I" between "work" and "do" in the first sentence of your reply? That's slower than any hunt-and-peck typist I've ever met.

    --
    "National Security is the chief cause of national insecurity." - Celine's First Law
  26. SMBC is right again by shish · · Score: 2

    this comic seems to be accurate and appropriate every time a slashdot article title ends with a question mark...

    --
    I mod down anyone who says "I will be modded down for this", regardless of the rest of their comment
  27. Re:Depends on what language you use by arivanov · · Score: 4, Insightful

    You can have that in any language.

    It is simply a matter of choice. Most C/Perl people I know chose to have autocompletion off as it is not particularly useful (aside from getting braces right). C++ is on the fence. Most of Ruby developers I have worked with are definitely in the "my IDE types 2/3rds of the code for me" camp.

    IMHO if your IDE is typing 2/3rds of what needs to be typed without getting it wrong then there is something fundamentally wrong with the language. The autogenerated verbosity simply does not need to be there in that case.

    --
    Baker's Law: Misery no longer loves company. Nowadays it insists on it
    http://www.sigsegv.cx/
  28. Mod parent up by bussdriver · · Score: 2

    You are not a professional programmer until you realize that most the work is debugging.

    1. Re:Mod parent up by Yetihehe · · Score: 2

      So why are they named debuggers, not reverseengineers?

      --
      Extreme Programming - Redundant Array of Inexpensive Developers
  29. Re:Depends on what language you use by MichaelSmith · · Score: 2

    The challenge is finding the bugs

  30. Re:text is one thing, symbols quite another by Haeleth · · Score: 4, Insightful

    Enter vim, you rarely need to remove your fingers from the home row. ;)

    Except, you know, every three seconds, unless you have remapped your keyboard so that the most important command in vim is not assigned to the far top left corner of the keyboard.

  31. Re:Depends on what language you use by devent · · Score: 5, Insightful

    I don't think so. I think it's something fundamentally wrong with the language if the IDE can't get 2/3rd of the typing right for the developer.

    Take dynamic typed languages like Python, Groovy. Half the time I need to look up what the type is and what methods are there to use instead that the IDE is just auto complete it for me. With C++ you have static typing but the language is so complex that auto completion is almost useless.

    I'm not a language purist. If the code is verbose but helps the IDE/compiler to understand the code better so the IDE can generate 2/3rd of my code for me why should I care about the verbosity? Actual, sometimes verbosity is a good thing, it helps to read the code and understand it later.

    --
    http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
  32. Re:Depends on what language you use by Peach+Rings · · Score: 4, Insightful

    Much more expressive and dense source code.

    A wall of symbols isn't preferable when you're trying to understand the algorithm that the programmer has implemented.

  33. Re:Depends on what language you use by snemarch · · Score: 3, Insightful

    IMHO if your IDE is typing 2/3rds of what needs to be typed without getting it wrong then there is something fundamentally wrong with the language. The autogenerated verbosity simply does not need to be there in that case.

    Really depends on the type of autocompletion, IMHO.

    I'll take (reasonably) verbose variable, function and class names over unix-C-style abbreviations any day - but it does require an IDE with decent autocompletion if you don't want to go insane... But given a decent IDE with "camelhumps" style autocompletion you end up typing less than the unix C programmer, while getting clearer source code.

    I find that I spend a lot longer thinking about code architecture than on actual typing - even if using Notepad++ instead of an IDE - goes for all of the languages I use (C, C++, Java, C#). But it's definitely still nice having tools that reduce repetitive mechanical strain as well as letting me navigate large-ish codebases comfortably.

    --
    Coffee-driven development.
  34. all programming IS typing by ohiovr · · Score: 2

    How many programmers do you know that use Dragon Naturally speaking? Face it, a lot of programming and markup is mundane shit. Say you are a hunt and peck typist and you'll eventually need to write 4000 lines of code, tell me you are not really any better than if you can type at 40 wpm vrs 10? Is a mechanic with 2 fingers going to be as productive as one with 10? We have a word for this, its called a disability. If you are a hunt and peck typist you owe it to yourself to learn touch typing. It only takes 2 weeks, one hour a day, to be at least 25 words per minute and then after that you only get better. Of course there is code that requires absolute brilliance to come up with a single 40 character line. It might take an hour to make that line. I'm not saying I'm a brilliant programmer, because I am not, but I do know that if I'm having problems with a single line of code I might have to rewrite it 10 times to get it right. But we are not all algorithmic scientists working on global illumination shaders.

  35. Re:Depends on what language you use by Hooya · · Score: 3, Interesting

    > why should I care about the verbosity?

    one word. maintainance.

    typical code spends less than 10% time in development. the rest in production and maintenance. IDE (or a tool, as in RoR) generated code is still code that has to be maintained. the more code you have, the more bugs you have and the more shit you have to wade through to find your bugs.

    Also, if something like an IDE can generate the code, isn't that by definition 'boilerplate'? if it's boilerplate, why couldn't it be part of the language itself?

    compare and contrast the @synthesize in ObjC with the getters/setters in java. Sure, in java the IDE generates those for me. but I still have to wade through those in the source code to find the method I actually wrote. Couldn't java just implement some default implementation for getters/setters through some annotation? a la POJO annotations for EJB - compare that to the XML mess that was there before.

    that's just one example.

    to me, if i'm copying and pasting code anywhere, i'm doing it wrong (code duplication, bug duplication and what's worse, fixing one part doesn't mean i've found and fixed all the same bugs). but java just begs copy and paste. sure there are great tools (Netbeans, Eclipse) to help mitigate that - but that's just it - all the tools are still mitigating a shitty language.

    i'm not a language purist either. over however many years i've been doing this, i've found that there are some languages that let me express my thoughts quickly, concisely and elegantly whereby i don't even have to step through code in a debugger to see where i messed up - it just becomes obvious on re-reading the code. java is not one of those languages.

  36. Re:Depends on what language you use by chthonicdaemon · · Score: 2

    This article has a good discussion on tool mavens vs language mavens. OP is obviously a tool maven. I'm a language maven. I also think that being able to have the typing happen without having to think about it makes coding a lot more natural and enjoyable. But then I use emacs...

    --
    Languages aren't inherently fast -- implementations are efficient