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

545 comments

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

    ps - first post!

    1. Re:it matters for first post! by Anonymous Coward · · Score: 0

      Argc... The preprocessor isn't working. I would have gotten the first post with #include "FirstPost.h" otherwise.

  2. lazy by Anonymous Coward · · Score: 0

    The most important this is to be lazy very very lazy.

  3. Depends on what language you use by rrohbeck · · Score: 0

    Yes, for Java you'd better be able to type 100 WPM.
    Me, I prefer C, C++ and Perl. Much more expressive and dense source code. Yes I'm a lousy typist.

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

    2. 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.
    3. Re:Depends on what language you use by Peganthyrus · · Score: 1

      i wonder if there are java ides that automatically *fold away* all the declarations they autocomplete for you? just how succinct would java be if all of its automatically-generated-by-the-ide verbosity was also auto-hidden from you, until you decided to look under the hood?

      is there an elegant language hidden beneath the layers of machine-generated noise in java?

      --
      egypt urnash minimal art.
    4. 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.

    5. Re:Depends on what language you use by siddesu · · Score: 1

      well, there's groovy for that.

    6. Re:Depends on what language you use by SJS · · Score: 1

      You think C++ is more concise than Java?

      It is to laugh.

      Perl... now Perl isn't always terribly friendly on a touch-typist. But maybe that's just because I haven't mastered the opposite-hand-shift like I should.

      --
      Pick One: http://www-rohan.sdsu.edu/~stremler/sigs/sigs.html (Note - disable Javascript first!)
    7. Re:Depends on what language you use by sqldr · · Score: 1

      Java likes to use XML a lot. Try typing XML at any reasonable speed without knitting your fingers into a nice warm scarf.

      --
      I wrote my first program at the age of six, and I still can't work out how this website works.
    8. Re:Depends on what language you use by drunkennewfiemidget · · Score: 2

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

    9. 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
    10. Re:Depends on what language you use by Anonymous Coward · · Score: 0

      The free availability of tremendous amounts of high quality libraries is an argument against the platform? I don't even use Java, but I'm glad I don't need to deal with a dipshit like you.

    11. 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/
    12. Re:Depends on what language you use by Anonymous Coward · · Score: 1

      Yea, because Visual Studio doesn't do that for C++, C#, J++, VB, JavaScript...

      Oh wait, it does.

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

      The challenge is finding the bugs

    14. Re:Depends on what language you use by Surt · · Score: 1

      idea will do that for you.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    15. Re:Depends on what language you use by oliverthered · · Score: 1

      if you have a problem with the amount you have to type, you are obviously not thinking enough about what you are typing.

      I prefer overly verbose code to overly verbose logic and patterns.

      --
      thank God the internet isn't a human right.
    16. Re:Depends on what language you use by Anonymous Coward · · Score: 0

      I prefer overly verbose code to overly verbose logic and patterns.

      Is there a difference?

      I don't so much mind typing all the

      MyVerboseClass<SomeGenericParameter> myVerboseGenericallyParameterizedClassObject = new MyVerboseClass<SomeGenericParameter>();

      stuff, but reading it and understanding the logic is a chore that an IDE cannot help with so much, and all the pointlessly redundant details do get in the way of the reader and make it harder to follow the code.

      And it doesn't help that Java is explicitly and deliberately designed to be usable by programmers who aren't clever enough to cope with sophisticated languages, and therefore has very limited abstraction capabilities which force things to be expressed in relatively verbose ways and using relatively verbose patterns, and that also makes it harder to maintain.

    17. Re:Depends on what language you use by buchner.johannes · · Score: 1

      I don't think GP was talking about autocompletion only. Refactoring (moving or extracting) class/method, generating classes/constructors/getters/setters/...
      Those I have not seen in any other language to this extent. Java is so great in this regard because it is statically typed and doesn't have too much language expression options (which also makes it verbose). And I'm not even mentioning the code analysis and testing tools.

      --
      NB: The message above might reflect my opinion right now, but not necessarily tomorrow or next year.
    18. 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
    19. 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.

    20. Re:Depends on what language you use by Shados · · Score: 1

      As someone pointed out below, I'm not talking about autocompletion. All languages can have that, even freagin Javascript and COBOL.

      But in Java and .NET, among others, the tools can go very far. Auto-completion is just a bare bare minimum.

    21. 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.
    22. Re:Depends on what language you use by Anonymous Coward · · Score: 0

      is there an elegant language hidden beneath the layers of machine-generated noise in java?

      class Answer {
        public static void main (Args) {
                print("Nope\n");
        }
      }
      EOF
      %javac Answer.java
      %java Answer
      Nope
      %

      See, it's still crap.

    23. Re:Depends on what language you use by Anonymous Coward · · Score: 0

      Why? Coding Java is faster than coding C. Most Java IDEs are way better at auto completion, so you'll type maybe half the characters that a C coder will type. And then let's not forget the fact that you'll type a lot more C to accomplish the same thing a Java programmer does using built-in libraries or some language constructs. In the end, the C coders will be the slower ones.

    24. Re:Depends on what language you use by oliverthered · · Score: 1

      oh yeh, there's a difference.

      sudo to give the jist.

      CompanyEvent = Company.Management.Calander.GetEvent(OliverTheRed.System.Date.Time.Now.Format("YYYYDDMM HH:MM:SS")

      is preferable to:

      a = 56;
      b = System.Date;
      c = Time.Now;
      a = Time.Now + a /2;
      g = a.ToString
      a = g.Left(a,4)
      b = a.Right(2)
      g = a.ToString
      etc.....

      e.g. thinking about how to do it nicely, but with a bit of verbosity (I wouldn't really do the first, I'd usually do it tidier) is much more preferable to worrying about wordyness verbosity, because your just writing what your thinking as you go along (well some people do think like that) and not actually working out how to do it in a nice clean way.

      Ideally both the code and the logic and structure should be pretty obvious, even in Java. [do one thing and do it well, be that a class, interface, function, loop, if statement, naming convention, whatever] (I suppose there are some very rare mitigating circumstances for some possible performance requirements etc...)

      Now if you want a real bitch, immutable data types!!!! slow as hell, written for people who can't code (especially as there are no mutable ones in there)

      The real coding difference is really a nice obvious saving the type at the correct point, as and when and if required. Over fucking around with the immutable data-types that don't give you much flexibility.

      --
      thank God the internet isn't a human right.
    25. Re:Depends on what language you use by next_ghost · · Score: 1

      Stretching the algorithm over code as long as War and Peace isn't preferable either. You're going to forget a lot of important context when reading meaningless junk. The code has to be as short as possible to make ideas obvious but not any shorter.

    26. Re:Depends on what language you use by oliverthered · · Score: 1

      I think one classic 'readability' example was some guy (who wasn't that experienced) saying that they preferred to use an iterator and concatenate a token seperater on each iteration then remove it at the end.

      Because it was easier to read than doing length of array - 1 (or -2 dependant on what you length and index are) and the just adding array[array.length] on at the end without the separator.

      lovely, now do the first with a stream.

      --
      thank God the internet isn't a human right.
    27. Re:Depends on what language you use by rrohbeck · · Score: 1

      Agree. Churning out new code is the exception, generally only during the early phases of a project. Then comes integration, testing and debugging. Sometimes even documentation, yuck.
      I just spent almost a whole week on one bug :(

    28. Re:Depends on what language you use by jhol13 · · Score: 1

      Instead of variable "a" you can have variable "autoCompletion". Instead of typing "autoCompletion.SetPreference(completionSetting)" you can type "au[completion key].Se[completion key]com[completion key]" plus perhaps a few other strokes.

      Well, maybe methods like "SetBackgroundColor" are wrongly named, SBC anyone?

    29. Re:Depends on what language you use by petermgreen · · Score: 1

      You think C++ is more concise than Java?
      When comparing like elements of the language Java and C++ are about equal on verbosity. Indeed java borrowed much of it's syntax from C++.

      However C++ has features (most notablly operator overloading* but that isn't the only one) java doesn't which allow certain types of code to be made far more compact.

      Also a programming environment is not made up of a language alone. Your coding conventions and the interface conventions of libraries you use make a huge difference to the verbosity of code.

      *And yes I know operator overloading is a love-hate thing. My personal opinion is that it is a tool that has it's place but is often misused.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    30. Re:Depends on what language you use by Mitchell314 · · Score: 1

      It's pretty easy, actually. Just keep one finger over the shift key, and another finger over the angle bracket keys.

      --
      I read TFA and all I got was this lousy cookie
    31. Re:Depends on what language you use by alienzed · · Score: 1

      If your 'code' was a 'paper', and your IDE (Word) would catch 98% of the structural and grammar mistakes. You wouldn't be describing english as having a fundamental flaw just because because a machine can help us type....

      --
      Never say never. Ah!! I did it again!
    32. 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.

    33. Re:Depends on what language you use by smash · · Score: 1

      Would be keen to see the amount of code/keystrokes typed for an obj-c programmer with xcode vs a java programmer with say, eclipse.

      --
      I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
    34. Re:Depends on what language you use by Phopojijo · · Score: 1

      I think the key is not how fast of a typist a programmer is... more that they know their way around a keyboard... because if they don't, they probably weren't programming for long.

    35. Re:Depends on what language you use by fractoid · · Score: 1

      Sounds like it'd turn into Python-with-C-syntax.

      --
      Rampant carbon sequestration destroyed the Dinosaurs' tropical paradise. I'm here to help repair the damage.
    36. Re:Depends on what language you use by Cederic · · Score: 1

      Thing is, any decent programmer would take
      Company.Management.Calander.GetEvent(OliverTheRed.System.Date.Time.Now.Format("YYYYDDMM HH:MM:SS")

      and fix the typo and turn it into a method:

      getEvent (oliverTheRed)

      Suddenly the code is clean, easily readable and still easier to maintain than using a, b, etc.

      I think a lot of java hatred comes from people that don't know how to program.

    37. Re:Depends on what language you use by cgomezr · · Score: 1

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

      That would be true if code only needed to be written, not read. In many cases, autogenerated verbosity makes code more readable and therefore saves time.

      Compare throwing an ArrayIndexOutOfBoundsException ("ar" + Ctrl+Space + Return in Eclipse) to throwing an "OOBExc" or similar that you type yourself. I'd rather have the first one: the IDE types the long name for me and it makes the code easier to understand.

    38. Re:Depends on what language you use by Alex+Belits · · Score: 1

      Refactoring (moving or extracting) class/method, generating classes/constructors/getters/setters/...

      Something must be fundamentally wrong if you need all those things autogenerated.

      THE WHOLE POINT OF GETTER/SETTER METHOD IS THAT IT IS NOT TRIVIAL AND ENFORCES CONSISTENCY -- otherwise it's a fancy way of having a public member. Generated code does jack shit for it.

      --
      Contrary to the popular belief, there indeed is no God.
    39. Re:Depends on what language you use by Yetihehe · · Score: 1

      In java you actually don't need getters and setters. If only thing your setter is doing is setting a variable, why do you need it, just set a variable yourself. In ObjC you HAVE to set a variable through setter, because variables are not available from outside of object. On the other hand if your setter is doing something besides setting a variable, like refreshing screen or mangling some data, in objc you have to write the setter yourself anyway.

      --
      Extreme Programming - Redundant Array of Inexpensive Developers
    40. Re:Depends on what language you use by devent · · Score: 1

      You right, the more code, the more bugs. That's why I like precise language with less features but verbose and strict language so I can use the IDE tools. With a precise language that have less features I don't have to think so much what happens behind the scene and if the tools are good I don't mind the verbosity so much.

      Java falls in this category. It is strict and verbose so the compile/IDE can understand the language very good which results in great IDEs and tools. It have a minimum set of features so I know exactly from the code what is going on.

      The opposite is C++. C++ code is so complex that the tools are very expensive and not good at all and there will happen a lot behind the scene because there are so many sometimes hidden features. You can't read a few lines of C++ code and know what the code will do, you need to read and understand a lot more.

      Yes, you have a lot boilerplate in Java but I tend to make my classes and methods very short. A class is not more then 400 lines of code and a method is not more then 5 lines of code. I sure hope we get closures in Java so I can remove a lot anonymous interfaces from my code. I write POJO objects and object with a lot getter/setters in Groovy.

      But ObjC is a wrong example here. Just to create a new object I have to write this??

      MyObject *o = [[MyObject alloc] initWithString: myString];

      And the constructor is this??

      -(id) init { // I have to branch the code? WTF?? if ( self = [super init] ) { // perform initialization of object here } return self; }

      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.

      Hm strange. I write programs in Java now for 4 years and I almost never use the debugger in Java because the code is so clear. There are no hidden things, and the code is compact (for a static types language with no closures).

      Compare this with C++ where you have so many sometimes hidden features and with C# with is the same as C++. Hidden features are like RAII, operator overloading, pointer/references. In C# you have operator overloading again, extension methods, delegates, struct/class. There are hidden, because it's not obvious from the code if this features are used or not so I need to read the code way over the current context to understand the code. Call me old fashion, but I don't like it.

      --
      http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
    41. Re:Depends on what language you use by Teckla · · Score: 1

      > why should I care about the verbosity?

      one word. maintainance.

      Terseness does not necessarily make source code easier to maintain. Information that is too dense often has the opposite effect: it makes it harder to grok.

      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.

      While I agree Java could be more terse in this area without a loss of readability or maintainability, in popular Java IDEs you can simply collapse getter and setter methods. Or, you can navigate the code using the class outline. As a result, the problem is a very minor one, at best.

      Also, some people actually prefer explicit getters and setters so that you know something could be happening behind the curtain; that is, it might not be a simple assignment or read.

      For example, in languages like Java, you know x.y = z; is a fast member assignment. x.setY(z); might prompt you to make sure your assumptions are correct, and that setY() doesn't have other side effects (such as silently and automatically limiting the range) -- or even worse, do expensive computation -- or even access the database!. Yes, yes, I know you're not supposed to do that, but in the real world, you work on teams that have some good developers and some bad developers, and inevitably you have to maintain code you're not impressed with.

      In other, more sugary languages, you may have no choice but to check your assumptions on every assignment and read because those languages hide useful information in the name of brevity.

      So much of computer programming is subjective. Always be deeply wary of anyone that says "this language construct sucks" or "that language sucks" or "this other language is too verbose". They're taking a highly subjective experience and extrapolating it as if it is a universally objective truth.

    42. Re:Depends on what language you use by oliverthered · · Score: 1

      ./ doesn't have auto-completion!

      getEvent (oliverTheRed)

      tells me fuck all I'm afraid. It's not self documenting.

      I would have something like:
      iEvents.GetEvent(iTime);

      though, and dependant on the action of the wrapping function the variable names may change to provide more information about what's actually going on in relation to the function logic.

      --
      thank God the internet isn't a human right.
    43. Re:Depends on what language you use by oliverthered · · Score: 1

      I exaggerated things, to extenuate over-wordyness over too much [lack of]logicness.

      --
      thank God the internet isn't a human right.
    44. Re:Depends on what language you use by oliverthered · · Score: 1

      I should say your more Python (typeless) form of coding may be superficially quicker, but your knowledge is limited by an understanding of the language use within the particular local context of the code.

      You can do the same in many languages, but types provide definitions for the language model used when writing the code. So although it may require more writing, it makes the understanding more definitive and less based on intuition (so more logical).

      Python may be intuitive, I wouldn't trust people's intuition though, let alone try to understand it in a 'logical' way, beyond phenotypes.

      --
      thank God the internet isn't a human right.
    45. Re:Depends on what language you use by Cederic · · Score: 1

      getEvent (oliverTheRed)

      tells me fuck all I'm afraid. It's not self documenting.

      Hey, you chose oliverTheRed as a variable name. I can't help that it's a shit one.

    46. Re:Depends on what language you use by Cederic · · Score: 1

      I've never written production Python code (as opposed to the 8 or so languages I have done). Any parallels between my style and Python are purely due to Guido's genius. ;)

    47. Re:Depends on what language you use by oliverthered · · Score: 1

      The best argument I've head yet for python is it's quick to prototype in, so why bother with anything else.

      that's also the best argument I've heard for making cars out of balsa wood.

      Writing something in a language doesn't mean that you've either done it well, or that it's applicable to a different style of language.

      So I've seen some quite horrific XSTL and lots of bitching from people who've never programmed in something like prolog for instance. (including CS grads and Phds [my god their full of it sometimes!])

      That would be the do one things and do it well, don't try to shoe horn an elephant into a slipper.

      --
      thank God the internet isn't a human right.
    48. Re:Depends on what language you use by oliverthered · · Score: 1

      Nope, it was a namespace or static class the possessive article.

      like, for instance.
      Sun.
      or
      String.

      when pedantic: pedants.

      --
      thank God the internet isn't a human right.
    49. Re:Depends on what language you use by xouumalperxe · · Score: 1

      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.

      Not really. I can't speak for other IDEs, but at least netbeans is pretty clever with initials. If a java class has a method called getSomeValue, then object.gsv <hit autocomplete> will look for both methods starting with gsv (unlikely there are any), and camelCase methods with g S V as initials (which will, at most, match getSomeValue and getSomeVariable, and show those in a popup for me to pick). You might argue that getSomeValue() is an overly verbose method name (I'd call it explicit), but other than that I fail to see how this highlights anything fundamentally wrong with the language.

    50. 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
    51. Re:Depends on what language you use by Bigjeff5 · · Score: 1

      Full-blown python applications annoy the hell out of me from a user's perspective

      They are slow oh so prone to breakage.

      Why the hell would you prototype in something that you can't make a decent production app out of?

      Python is very good at complicated scripting tasks. Please use it for complicated scripting tasks.

      I often feel the same way about Java, with the exception being that it is entirely possible to write clean, efficient, and fast Java code (I honestly don't think such a thing is possible in Python, I've never seen it). Most Java developers suck though, at least as far as optimizing their code goes, so I end up with clunky Java apps instead.

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
    52. Re:Depends on what language you use by plover · · Score: 1

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

      Why? Why is this a problem? I don't understand all this resistance to use tools to help people think, help people speed up, help people be more productive.

      I learned to code 38 years ago, and trust me, autocompleting IDEs are useful when compared to typing out every letter! Why should I have to remember every signature of every method, or type it in long-hand every time I need it? Why not hit <tab> and let the machine do the fill-in work? The end result will be no different whether I type it or if the machine types it. It'll just get into the machine faster.

      And if I'm able to discard my buggy whip and embrace these new-fangled horseless carriages, even at my advanced age, you should have no excuse for not being able to adopt autocompletion as well.

      --
      John
    53. Re:Depends on what language you use by gl4ss · · Score: 1

      even with such tools, it's good if you can do a lot without your fingers leaving the keyboard to reach for the mouse, even if you're using autocompletion. and how often is a project just same type of files that you need to edit?

      besides than that, you're sitting at a keyboard an awful lot if you're a programmer. it's only natural that a programmer would become a pretty good typist. besides than that, everyone should learn typing. I wouldn't say that typing speed matters that much, but that typing comes without the person thinking about "now I press q, now I press s" matters an awful lot.

      --
      world was created 5 seconds before this post as it is.
    54. Re:Depends on what language you use by Hooya · · Score: 1

      > But ObjC is a wrong example here.

      You're right. No arguments there.

      I was thinking more of a language that's a cross between erlang and lisp.

      Strangely, weird as the syntax is for erlang, I had the easiest time 'debugging' the one moderate sized app that I wrote in it. It was originally in Java - grew frustrated after about 20,000 lines of code. Re-wrote in erlang - came out to about 2,000 lines. Much easier to digest the code in my head.

      I loved OOP in lisp. I was able to build up a serious DSL which meant that once I made sure the 'extensions' were good, I could use a much higher level of abstraction of what I was working on. Much easier to digest the code in my head.

      Now, those two languages aren't 'mainstream' and the only other mainstream language example that I could think of that has elements of some type of compiler generated code was ObjC and its @synthesize.

      > Call me old fashion

      I wouldn't do that. After all, to be really old fashioned, you'd have to go beyond not trusting just the abstractions at the language level. You'd have to not trust the abstractions a language compiler provides and start checking the assembly. Or even start peaking at the ELF to make sure ;)

    55. Re:Depends on what language you use by orasio · · Score: 1

      Spring ROO uses aspectJ to hide generated code.
      No getters/setters, no persistence code, pretty simple.
      It could be done in the IDE, using only AspectJ, but I like ROO.

    56. Re:Depends on what language you use by Shados · · Score: 1

      Obviously becoming a good typist is like having good oral skills in 2010 (2011 i guess?), especially for someone in an IT related field. However, being a .NET developer, using Visual Studio with every add-in under the sun, what made me a faster, more efficient coder wasn't my typing speed. It was....

      (wait for it)

      Playing Starcraft. Being able to hit countless keyboard shortcuts and macros without needing to think about it made me able to use Visual Studio (or any other keyboard shortcut heavy IDE, so it could be Emacs/VIM for non-Microsoft developers) way, way better.

    57. Re:Depends on what language you use by AC-x · · Score: 1

      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

      Or if you're doing your variable and method names right.

      For example take this line of code (C# in this case, as I use it at work)

      Ioc.Resolve<IMessageService>().SendMessage(currentUser.EmailAddress, messageContent);

      With VisualStudio autocomplete I could type out that whole line only using the following keypresses:

      Ioc.R<IM>.S(uc.E,me);

      That's a 4x saving on keypresses while still maintaining decent variable names. Other things like using /// To autofill all the method summary documentation tags and automatically importing all the methods from an interface are all very useful time saving features.

    58. Re:Depends on what language you use by AC-x · · Score: 1

      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.

      This is something that c# does very well, you can use placeholder gets and sets that get autoexpanded at compile -

      public string SomeProperty { get; set; }

      You can even define public gets / private sets for read only properties (set the property from within the class, only get from outside)

      public string SomeReadonlyProperty { get; private set; }

      At any time you can expand the get/set methods to include code if you want to do a custom implementation.

    59. Re:Depends on what language you use by Anonymous Coward · · Score: 0

      A fast typist more likely would have commented the code thoroughly and helpfully.

      Just sayin'

    60. Re:Depends on what language you use by drunkennewfiemidget · · Score: 1

      'High quality' does not mean what you think it means.

    61. Re:Depends on what language you use by oliverthered · · Score: 1

      Well the quality of CS grads has dropped to perthetic. Reading the /. post about people taking biology at University just learning things by wrote and not actually learning critical thinking or principle-based reasoning sticks it home hard. That the education system in both the US and the UK is now focused on how much you can remember (it's easy to give an exam of that) vs how much you can work out.

      Personally I think that exams shouldn't be closed book, or at least be open book with some restrictions.
      Who in the real world doesn't have access to research and reference material at their fingertips.

      Say reverse polish notation to a CS grad or Prologue / Hascal and you seem to get a blank look.
      A level ITC (which is a level below a degree here in the UK) has exam questions like.
      What do you need to set-up a internet site.

      With answers like
      An internet connection
      A computer
      A web server software.

      May have well been.
      A power cable
      A consultant
      A Hard disk.

      What if your running a SSH server or torrent tracker? What if your using the cloud or hosted system.... Hell you could even do it on a mobile phone now a-days (though that's a computer)

      And the exams where full of buzz words I've never even heard in my life.

      Truly shocking.

      CS Grads from 10 years ago could actually write assembler or prologue, or write a 3D graphics engine. Now so hot on OO I suppose back then. But even that's not taught properly.

      Math is just as bad in many ways. I've a friend who was a lecturer for years, and he say's it's gone down hill like a tonne of shit. Calculus isn't about teaching limits any-more, it's about remembering formula. I dropped out almost 20 years ago because that's what my math teacher was doing.

      No wonder there are so many idiots at the top of the system, the ones who say what they system is. A self fulfilling prophecy.

      --
      thank God the internet isn't a human right.
    62. Re:Depends on what language you use by oliverthered · · Score: 1

      There's prototyping things like patterns or algorythms and that you may well do in something like Octave/Matamatica/MathCad or whatever.

      I may prototype in JavaScript or a quick RAD language or python 'hollywood software' as a friend calls it.

      Good to show clients and play around with things on a very high level, without actually having much functionality.
      Or alternatively playing around on a very low level without any glue, or worries about real world performance or optimizations.

      That should be a part of iterative development.
      But it should more into 'real world' stuff, which can then result in 'alpha' versions and such. Which now gets called prototyping now-a-days.

      --
      thank God the internet isn't a human right.
  4. text is one thing, symbols quite another by ChipMonk · · Score: 1, Insightful

    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.

    1. Re:text is one thing, symbols quite another by SwedishPenguin · · Score: 1

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

    2. Re:text is one thing, symbols quite another by Anonymous Coward · · Score: 0

      ...except those of us who have mapped mathematical symbols to Caps Lock/Alt Gr + homerow characters using XModMap.

    3. Re:text is one thing, symbols quite another by Anonymous Coward · · Score: 0

      You are exposed, admin. Trying to hang with coders.. HA! Now go back a reinvent XModMap like you are supposed to.

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

    5. Re:text is one thing, symbols quite another by Anonymous Coward · · Score: 0

      Vim users use Ctrl + [ instead of escape. Hardcore vim users remap the ctrl key onto the caps lock key.

    6. Re:text is one thing, symbols quite another by crf00 · · Score: 1

      It is not really that inconvenient once you have made the habit. I started using vim recently and soon I have made the habit of immediately pressing esc whenever I finished typing sentences, even when I'm not in vim. Given that the delay between my last letter and pressing esc is no longer than typing other letters, and our brain usually need to pause a while and think for much longer moment on what to do next, it doesn't really slow me down much. [ESC]

    7. Re:text is one thing, symbols quite another by cheer_xiao · · Score: 1

      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.

      Not really. ^C works as well, without the need of remapping.

    8. Re:text is one thing, symbols quite another by Anonymous Coward · · Score: 0

      Buy a Happy Hacking Keyboard and you're in VIM heaven. 'Esc' key is 1 inch away from 'A' key and 'Caps Lock' is replaced with 'Ctrl'. I have yet met any HHK using developer who is not topnotch, especially the HHK Pro users.

    9. Re:text is one thing, symbols quite another by Anonymous Coward · · Score: 0

      Ctrl+[ does the same thing as escape.

    10. Re:text is one thing, symbols quite another by Anonymous Coward · · Score: 0

      Have you heard about "CTRL+["?

    11. Re:text is one thing, symbols quite another by 31eq · · Score: 1

      And to remap your keyboard, put this in your .vimrc:

      imap <Tab> <Esc>
      inoremap <S-Tab> <Tab>

      Then you can use to tab key to get out of insert mode. And, if you need to type a tab, use shift-tab.

    12. Re:text is one thing, symbols quite another by Anonymous Coward · · Score: 0

      Have you heard that some keymaps have [ on CTRL+8? How do you press ctrl+ctrl+8, using both ctrl buttons and then reach for the 8?

      Any text editor which need configuring, remapping of keys and what not, is stupid. It's a text editor, all it needs to do is to let people edit text files, without any goddamn configurations.

      That's why pico and nano win every time. They can be used to edit text without any learning curve, configs or remappings. They just work, while emacs and vi just don't.

    13. Re:text is one thing, symbols quite another by TheRaven64 · · Score: 1

      Some Vim users use their caps lock key to enter command mode. This has the nice side effect that you have a light on your keyboard telling you if you're in command or insert mode.

      --
      I am TheRaven on Soylent News
    14. Re:text is one thing, symbols quite another by Anonymous Coward · · Score: 0

      Any text editor which need configuring, remapping of keys and what not, is stupid. It's a text editor, all it needs to do is to let people edit text files, without any goddamn configurations.

      hurr.jpg

    15. Re:text is one thing, symbols quite another by Anonymous Coward · · Score: 0

      ctrl+[

      Best combination ever

    16. Re:text is one thing, symbols quite another by BrokenHalo · · Score: 1

      I maintain that the quickest editor for entering raw text is still TECO. It is also (probably) the fastest editor, period. Its only drawback was/is the amount of "meatware" memory required to remember all those commands.

      Incidentally, for those here who are too young to remember, Emacs started out as a set of Editor macros for TECO. The difference is that it also stood for "Eight Megabytes And Continually Swapping". ;-)

    17. Re:text is one thing, symbols quite another by data2 · · Score: 1

      Except, you know, never, because by default you can also use ctrl+c to enter command mode. Although this is not widely known

    18. Re:text is one thing, symbols quite another by Anonymous Coward · · Score: 0

      Or you could just use c-[ as an alternative.

    19. Re:text is one thing, symbols quite another by Anonymous Coward · · Score: 0

      Esc = Ctrl-[

      I haven't touched the Esc key in vi in many, many years.

    20. Re:text is one thing, symbols quite another by Anonymous Coward · · Score: 0

      Ctrl-[ == ESC. Just map Ctrl to where it's meant to be (who uses CAPS LOCK, anyway?)

    21. Re:text is one thing, symbols quite another by Talderas · · Score: 1

      Er... how?

      Just how are you capable of using only the capslock+ asdfghjkl;' + Enter keys?

      Maybe I'm missing something, but I'm not sure how you could even write code with just that. There seems to be some very important keys missing. e i o u. I'm pretty sure most functions would use one of those four vowels. Heaven help you if you need to do any math in your code and you need a non-user inputted variable.

      Maybe I'm just underestimating your definition of rarely, or maybe your definition of home row.

      --
      "Lack of speed can be overcome. In the worst case by patience." --Znork
    22. Re:text is one thing, symbols quite another by sco08y · · Score: 1

      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.

      Heh... vim and emacs trolls can *still* generate a dozen identical replies.

      (Yes, loved vim especially the . command, switched to emacs because after several years switching modes *still* irritated me.)

    23. Re:text is one thing, symbols quite another by Golddess · · Score: 1

      Not to mention that comparing programming to playing a piano is just plain wrong. A more accurate comparison would be to compare programming to composing a piece of music to be played on a piano.

      --
      "I'm not sure I like the fugnutish tone you used in your post!" -RogL (608926)-
    24. Re:text is one thing, symbols quite another by Golddess · · Score: 1

      And upon posting, I notice the same thing was basically already said. Ah well.

      --
      "I'm not sure I like the fugnutish tone you used in your post!" -RogL (608926)-
    25. Re:text is one thing, symbols quite another by Anonymous Coward · · Score: 0

      what, you mean the single easiest key on the keyboard to find and press without looking and without fumbling? indeed, what a silly place to assign the most important command!

  5. 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 Anonymous Coward · · Score: 0

      Yes, now you come to mention it a Model M does have enough weight to work as an effective blunt instrument...

    2. Re:More important - having a Model M by anti-NAT · · Score: 1

      I own two!

      --
      The Internet's nature is peer to peer - 20050301_cs_profs.pdf
    3. Re:More important - having a Model M by Anonymous Coward · · Score: 0

      I own about ten, use 2 at work, 3 at home and the rest is reserve.

      Not for sale.

    4. Re:More important - having a Model M by Anonymous Coward · · Score: 0

      Do you dual wield or use one as a shield?

    5. Re:More important - having a Model M by Osgeld · · Score: 1

      I own one for my main home computer, justifying it to my wife (as a gag I only paid 3$ + tax for it, and its just like new for a 92 model) as being able to beat any would be burglars to death, all thanks to its quick release RJ style plug and hefty construction

    6. Re:More important - having a Model M by Surt · · Score: 1

      Both, with shield bash, obviously.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    7. Re:More important - having a Model M by Fnord666 · · Score: 1

      because you'll be able to kill your programming rivals with one fell swoop.

      Even better is that with the model M you can just wash the blood off afterward.

      --
      'The tyrant will always find pretext for his tyranny.' - Aesop's Fables
    8. Re:More important - having a Model M by jms · · Score: 1

      I use a vintage 1984 Model M "compact" model -- with no keypad. I can type 100WPM on that keyboard. Any other keyboard and my speed falls in half.

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

    10. Re:More important - having a Model M by Anonymous Coward · · Score: 0

      But you have to sharpen it first. At least the Model M has a bit of weight to it.

    11. Re:More important - having a Model M by Bigjeff5 · · Score: 1

      Tried it, the aluminum just bends unless you can swing the thing at 120mph (don't worry, I know for a fact that you can't swing it anywhere near that fast).

      Stick with the Model M.

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
  6. 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.

  7. Are you kiddig? by Anonymous Coward · · Score: 0

    I can tyep fast, ot see it and still produce Greay cdoe!

  8. 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 micheas · · Score: 0

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

      I find that there is an indirect relationship between code quality and typing speed in junior programmers.

      Programmers that type quickly are more prone to write one off disposable programs, and hence are just more practiced. Once you have seven years of coding experience or so, I doubt it matters.

      The observation is probably something that was noticed early on and just never really reevaluated.

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

    4. Re:How Absurd by SharpFang · · Score: 1

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

      --
      45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
    5. Re:How Absurd by bickerdyke · · Score: 1

      But after several years of coding you probably got enough typing practice to have some decent typing speed anyway.

      --
      bickerdyke
    6. Re:How Absurd by cheekyjohnson · · Score: 1

      Programmers that type quickly are more prone to write one off disposable programs, and hence are just more practiced.

      Sounds more like an issue with dedication than anything else. Being able to type at a reasonable pace should be all you need. I don't know about anyone else (though other people did mention it), but when I'm programming, I tend to stop and think about the most efficient way to implement something. Most of my time isn't wasted on typing, but on that. Being able to type slightly faster likely won't make much of a difference.

      --
      Filthy, filthy copyrapists!
    7. Re:How Absurd by Anonymous Coward · · Score: 0

      I don't think it's necessarily typing speed for its own sake. I think he sees it more as an indicator of how fast a given person's mental processes are likely working, for better or worse. And that probably includes quality as well. No different really than us stupid Yankees sneering (internally, or if we forget to turn off the external speaker on our internal dialog...) at someone with a serious southern drawl, new yawk or bawstahn accent, etc.

      I once worked with someone who was a serious hunt-and-peck typist, but he was a hell of a programmer. 60+ wpm hunt-and-peck, probably.

      For the slow typists, if they have the time, they could also be pretty good, because they're probably keenly aware of their impediment and compensate for it in other ways (like, perhaps, really clean, efficient and well-thought out code). Not someone you want working though if you have to fix some code yesterday, though.

      There's three options: Good, Fast, Cheap. Pick any two.

    8. Re:How Absurd by MichaelSmith · · Score: 1

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

    9. Re:How Absurd by sqldr · · Score: 1

      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.

      --
      I wrote my first program at the age of six, and I still can't work out how this website works.
    10. Re:How Absurd by hedwards · · Score: 1

      That's what I was thinking about. Most of what you want in a programmer isn't measured by WPM. You could type a hundred WPM and still be completely useless if what you're typing is junk. Admittedly, I don't do a lot of programming, but much of my time spent programming is designing and contemplating how to solve the problem correctly.

      Correctly as in securely, efficiently and in a way which I can read later on. Fast typing is from my point of view somewhat counter productive as short burst of flurry don't really make that much difference when you're trying to write quality code.

      But then again, I used to be able to hunt and peck at 30+ WPM when I don't need to touch type.

    11. 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?
    12. 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.
    13. Re:How Absurd by drunkennewfiemidget · · Score: 1

      Atwood is braindead.

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

    16. Re:How Absurd by drewhk · · Score: 1

      I feel the same. I spend most of the time at my job thinking, not typing. That said, there are moments once in a while, when I feel like the code is just flowing out of my brain, through my body and fingers, directly into the screen. Now these moments make me really appreciate touch typing.

    17. Re:How Absurd by Anonymous Coward · · Score: 0

      I tend to agree with Cook's assessment: After attaining medium proficiency in typing, the gain in productivity of faster typing is minimal.

      Right, and Cook was examining people who type adequately, and the original rant was about people who can NOT type adequately.

    18. Re:How Absurd by BBF_BBF · · Score: 1

      You certainly missed the point completely. You picked one sentence out of the whole article to pick on and ignored the conclusion.

      I would bet that if your Greek professor was "forced" to use English QWERTY keyboards for the rest of his career, he'd grow proficient in typing on it.

      Cook's point is that somebody's who's daily job requires the use of a keyboard should NOT be a slow hunt an peck typist, he/she should have at least a BASIC proficiency in typing.

    19. Re:How Absurd by Lorens · · Score: 1

      [ten lines of quote and quote of quote followed by three lines of comment]

      Bu what of the WPM of programmers who copy-paste whole pages of code?

    20. Re:How Absurd by Surt · · Score: 1

      Not only easier to type as 15 loops, but then more factorable and testable that way as well.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    21. Re:How Absurd by Anonymous Coward · · Score: 0

      It sure would be nice if a programmer wrote a design document or two as well.

    22. Re:How Absurd by tomhudson · · Score: 1

      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!

      No you don't. I learned touch-typing in high school. I don't need to look at the keyboard, but I also don't need to keep my fingers strictly on the home keys.

    23. 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.
    24. Re:How Absurd by ohiovr · · Score: 2

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

    25. Re:How Absurd by Anonymous Coward · · Score: 0

      A coding context?

    26. Re:How Absurd by Anonymous Coward · · Score: 0

      I think your overcomplicating this. Pretty much anyone who uses computers a lot for a few years ends up being able to type competently. If I come across a program who can't type, I wonder "how little has this tard actually used computers" or "does he have a learning disability or something?". I'm not saying if you can't type at a million words per minute you're an idiot, but if you call yourself a programmer, yet you hunt and peck, I'm not gonna waste my time on you

    27. Re:How Absurd by micheas · · Score: 1

      slower than that of the programmers that use shell scripts to write their code :)

    28. 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!
    29. 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.
    30. Re:How Absurd by Elros · · Score: 1

      I wonder of this is less of a WPM contributes to coding ability and more of a lack of WPM indicates a lack of experience at a keyboard (and hence lack of coding ability).

    31. Re:How Absurd by LihTox · · Score: 1

      This is my thought too: someone who types very slowly (without a physical handicap) is probably someone who hasn't spent a lot of time at a keyboard. The converse isn't necessarily true, though; 100-WPM secretaries aren't all natural programmers.

      I know that programming (and specifically, typing in BASIC programs out of magazines) was where I learned to type. By the time I took a typing class in school in 9th grade, I was too good at my own "blind typing" method to bother with that home-row business. Of course, kids don't type programs in from magazines anymore, and today's computers are much less dependent on the keyboard than my old Commodores, so maybe I'm making an old-fogie assumption.

    32. Re:How Absurd by Anonymous Coward · · Score: 0

      The only certain thing about pair programming is that it decreases the speed of programming. Sometimes it increases the quality enough to offset this decrease but not always. It seems that it is most useful when the task is something that the two programmers aren't competent enough to do on their own; then the pairing lets them catch some errors early and reason their way toward a solution. Like a lot of extreme programming techniques it is a way to get useful work from bad programmers. Like unit tests, which are slightly useful and something to occupy bad programmers in the team so that they don't write as much of the real code that is actually used.

    33. Re:How Absurd by next_ghost · · Score: 1

      The comparison is not braindead because you're arguing by the wrong direction of causation. Low typing speed simply screams "beginner". Good programmer with enough experience will have decent typing speed (unless there's some physical impairment involved) simply because he's spent several years typing code.

    34. Re:How Absurd by jhol13 · · Score: 1

      I would argue pair programming decreases code quality: the other person distracts and annoys too much.

    35. Re:How Absurd by Anonymous Coward · · Score: 0

      What I consider more important is learning to type without looking at the keyboard. That way you can concentrate on the code and not the typing itself.

    36. Re:How Absurd by zippthorne · · Score: 1

      I dunno. I think there's something to be said for being able to enter in what you just thought of quickly, while you're still able to hold onto the thought. Perhaps this is more relevant as you get older, though.

      In other words, even if you don't think at 400 characters per minute, your quality might still benefit greatly from being able to sustain bursts of typing at 800 cpm.

      --
      Can you be Even More Awesome?!
    37. Re:How Absurd by i_approve_this_msg · · Score: 1

      Is this anecdotal, or just a theoretical? Because although it sounds theoretically correct, I wonder if reality is like that, and I don't know one way or another.

    38. Re:How Absurd by johanatan · · Score: 1

      Unless we're talking about live coding

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

    40. Re:How Absurd by Anonymous Coward · · Score: 0

      How complex of a thought can be typed, when the thought is interrupted by not knowing the keyboard.

      I doubt someone who can't learn a keyboard, will be as effective at turning thought to typed code.

      Fast typing doesn't mean a thing, except they know the keyboard well. I know lots of programmers that don't use the home row in the traditional way. Needing (), [],{},',", and ; frequently makes the traditional home row a lousy place to keep the hands.

    41. Re:How Absurd by sideslash · · Score: 1

      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.

      On the one hand, I agree that a particular WPM shouldn't be an absolute prerequisite for advanced programming classes. I am a software engineer, and informally mentor a partially handicapped teen neighbor of mine -- he can't type very fast, but does excellent work, and basically is a living example of why Jeff Atwood is full of baloney.

      On the other hand, I see nothing wrong with forcing normal, healthy high school students to improve their typing. They may be bored in typing class, they may hate it, but it will probably be useful to them at some point.

    42. Re:How Absurd by bliz1985 · · Score: 1

      A slow typist may want to write code as well as possible the first time round to avoid refactoring to follow the company's naming convention and code review. If the slow typist is using an IDE with autocompletion, he only needs to type the meaningful symbol name at declaration, so it may not be as much of a disincentive as if he's using notepad.

    43. Re:How Absurd by Anonymous Coward · · Score: 0

      Funny, the only coders I've known who obsess about using shorter names 'to save keystrokes' are the same ones who obsess about typing speed.

      The quote is right in exactly one implication: being a slow typist says 'something' about the programmer's priorities. It actually doesn't say much about whether they are the 'right' priorities, but at least it tells you s/he doesn't have the type of *wrong* priority that hurts readability (optimizing for code-writing-speed above all things).

    44. 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
    45. Re:How Absurd by raftpeople · · Score: 1

      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.

      Really?

      Do you seriously believe you can sum up the behavior of 50million coders with this sweeping set of generalizations?

      Here's a tip: when you post something so unsubstantiated (and quite likely incorrect), you may want to click the anonymous box.

    46. Re:How Absurd by bm_luethke · · Score: 1

      A simple Words per Minute test also excludes a number of quite qualified programmers that I happen to belong too - Dyslexics. My WPM sucks royally, I can't spell to save my life. Were it not for the nice little red lines under words and the ability to right click and find a correct spelling (and it often takes a few attempts to get close enough) my posts would look like a strange five year old posted them (my handwriting looks like a three year old did - bad spelling *and* terrible penmanship). As is a a great deal of the strangely worded sentences are work arounds for the issue. There are times that I just can't even get close enough that the spell/grammar checker can figure out what I want.

      I type quite quickly if one were to count "typo's" as only things I didn't mean to hit. That is, the myriad "thier" was intentional and thus not a reduction against my WPM. Indeed, in every job I have had even the secretaries comment on how fast I type, yet I get a TON of red underlines. Were most of them not simply my inability to spell that would be OK, indeed I know the vast majority of times I mis-hit keys (and backspace them out), but that doesn't matter when you have a severe difficulty in telling "their" from "thier" if not for the red underlines the spell checker added.

      And yes, this makes weakly typed languages a real pain if they get to be any size at all. However, for the most part it is so common an error outside of when I was first learning it is quickly checked with other automated tools.

      --
      ------- Sorry about the spelling, I suffer from two problems. Dyslexia makes it difficult to spell well, lazy makes it
    47. Re:How Absurd by Anonymous Coward · · Score: 0

      Agreed - plus it took me about a day to learn to touch type - it's so easy. Also do these guys ever write documentation? Email people about a release? If so then not being able to type slows them down. It's just so easy to learn - why not invest four 2 hour sessions in it and the rest is just practice?

      If someone doesn't know this, what else haven't they learnt recently because they shy away from learning new tasks they find boring but secretly know will deliver better productivity?

      People here are typing 500 words about how typing slowly doesn't matter. This reply took me hardly any time - now I'm off back to google reader - maybe I'll read something that will make me a better coder, whilst they sit there, tongue out, tap-tap-tapping.

      To me this debate is a non-starter.

    48. Re:How Absurd by Mask · · Score: 1

      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.

      Being a fast typist I don't mind writing a lot of comments that I intend to delete at the end of the day. I don't mind writing 2 or 3 variants of the same code just to see what approach is more understandable and maintainable. I don't see the slow typists writing comments describing every parameter, pre-condition, and post-condition. When one argument of a method changes its meaning, I don't see the slow typists rewrite method's description when it is much clearer to do so.

    49. Re:How Absurd by Anonymous Coward · · Score: 0

      ...except that "English QWERTY" is not all that different from "Greek QWERTY", and I doubt he ever wrote MATLAB programs using Greek characters.

    50. 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
    51. Re:How Absurd by smallfries · · Score: 1

      Really?

      The "sweeping generalisation" was that people who type slowly will type less. Not that hard to believe. If you insist on him being logically complete then he could expand it: people who type slowly *must* either type less or spend more time typing.

      Do you believe that slower typists put in more hours, or just accept that when posting something quite so stupid you should click the anonymous box?

      --
      Slashdot: where don knuth is an idiot because he cant grasp the awesome power of php
    52. Re:How Absurd by Anonymous Coward · · Score: 0

      You've scored one for the other side of the argument. Your post has 6 sentences. Of those 6, 5 of them (numbers 1,2,4,5, and 6) are assumptions you make, not facts (if you define a fact as something that can be demonstrated to be true 100% of the time). So even though I have no doubt that you dashed them off quickly, your points serve to prove that the coherence of what a person produces is more important than the speed at which they produce it.

    53. Re:How Absurd by TheRaven64 · · Score: 1

      It's anecdotal. I haven't performed a study on this, but it matches my observations. I can often spot the slow typists just from their code. It also correlates with my own code. I never bothered to learn to type well, I just picked up fast typing through practice. I avoided typing comments and long function or variable names when I typed slowly, because it was a lot of effort. Now, I'll quite happily spend time writing a few paragraphs explaining why a particular approach was chosen.

      --
      I am TheRaven on Soylent News
    54. Re:How Absurd by Alex+Belits · · Score: 1

      I use short variable names so I can fit meaningful code into 80 columns.

      What means, I can use screen layout with two editor windows side by side, plus (on a regular screen that would be overlapping) two terminals where I run that code, all without switching to another desktop or turning toward another monitor.

      How all those "convenient" (read: full of eye candy and crutches for retards) IDEs were developed into being completely unusable in this manner, is beyond me.

      --
      Contrary to the popular belief, there indeed is no God.
    55. Re:How Absurd by Anonymous Coward · · Score: 0

      I type about 80-100wpm, and while I agree that for some complex areas of code speed doesn't matter at all, I know that if I could type as fast as I think means I would never have to interrupt my train of thought and would even code better.

      There have been times where my typing speed has been greatly impacted (hand injuries, not wearing glasses, etc) and I know for a fact it not only affects the speed of my code but even the quality of (again, less-complex sections... developing algorithms shouldn't even be done on the computer first, only after it's been planned), because I'm constantly pausing my thought processes just to get it into the computer.

    56. Re:How Absurd by Anonymous Coward · · Score: 0

      But, you are able to type faster. I agree with the pragmatic assessment that cogitation weighs heavier than typing speed in one's ability to code well. However, anyone who does a significant amount of coding will ipso facto spend a lot of time typing. A good programmer will pick up typing as a matter of course. So if someone can't type, I'd submit they haven't really done a lot of coding.

    57. Re:How Absurd by sqldr · · Score: 1

      As I say.. experience makes you a faster typist
      I'm one of those rare sysadmins who can code.. infact my group won the 2009 scene.org award for best 64k demo of the year :-) I spent ages making it possible to rebuild our dev boxes with a mouse click so that developers can have root on them. if they completely fuck it up i can rebuild it in 10 minutes. This has never happened. Developers aren't as stupid as sysadmins make out. Ok, some are, but they don't mess about with the apache configs. I leave that up to the senior ones.

      I keep complaining about the second best sysadmin in our team inlining templates in his puppet code. When I object, he says it's down to "personal taste". When I talk computer science stuff to him he says "i never did all that compsci stuff!". I could lend him some books but he considers that an attribute. I don't tolerate ignorance.

      As it happens, Mr willful ignorance doesn't type too fast either. That said, people do complain about the chainsaw noise coming from my keyboard. It's office etiquette not to piss your colleagues off with mental typing :-)

      To you're quite right.. adding comments or making a meaningful class hierarchy is a chore unless you have experience where it becomes an almost sub-conscious default brain action, and typing fast is a result of spending a lot of time behind a computer, and experience comes with typing. I'm starting to sway in the direction of "I don't trust a non-fast typist"!

      --
      I wrote my first program at the age of six, and I still can't work out how this website works.
    58. Re:How Absurd by sqldr · · Score: 1

      but I also don't need to keep my fingers strictly on the home keys.

      I do.. and I be I type faster than you :-). XML was invented by someone who wanted to give me RSI.

      Out of interest, which finger do you hit closing curly brace with?. I'm on a UK keyboard here, but I'm pretty sure the american ones are in the same place right by the enter key.

      --
      I wrote my first program at the age of six, and I still can't work out how this website works.
    59. Re:How Absurd by sqldr · · Score: 1

      You have to see me type. You're wasting three fingers! Most people complain about the chainsaw noise coming from my keyboard, but, well, I can't demonstrate it on facebook, but I am fast. Anything involving right pinky (i'm left handed) pisses me off

      The word "opulent" takes seconds off my life :-)

      --
      I wrote my first program at the age of six, and I still can't work out how this website works.
    60. Re:How Absurd by sqldr · · Score: 1

      btw.. I learned to type on an Amiga. Those keys have a lot of travel. If you hit the baseboard your finger bounces back ready to hit another. I use one of those ergonimic microsoft split keyboards. I got RSI once. I'm left handed.

      I use the mouse at work (switching windows) with my right hand. Then I go home and aim for head-shots with my left hand. It's the mouse, not the keyboard which gives you RSI. Never had it since.

      --
      I wrote my first program at the age of six, and I still can't work out how this website works.
    61. Re:How Absurd by Anonymous Coward · · Score: 0

      Not true at all. I'm a hunt'n'pecker ;-) and use the longest, most explanatory variable names I can. And, being a programmer with an English Lit degree, I comment the heck out of my code. I've found very fast keyboarders using no comments and 2 byte variables (and reusing them) more often than not.
      I've been programming for 30 years. Yeah, I'd like to type faster, but my code works and people coming behind me can read it.
      What's amazing to me is the bigoted opinions some people have of other people who don't do things the exact same way that they've decided must be the best.
      The "key" to good programming is the thought process, not muscle memory. If fast twitch fibers were worth that much over conceptual ability, my cat would would be a better programmer than you'll ever be. But it sounds like that might be the case in any event because you didn't think it through very well.
      Think before you type a bloviated opinion. Or utter one. Or better yet, keep your silence and don't even try thinking - it's not your strong point.
      By the way, "bloviated" means just exactly what it sounds like it means. Don't bother to look it up; think of a beached whale that thought it knew how to navigate.

    62. Re:How Absurd by martyros · · Score: 1

      After attaining medium proficiency in typing, the gain in productivity of faster typing is minimal.

      What do you think about the argument that someone who can type fast is more likely to be liberal / more complete with comments that he writes in the code?

      --

      TCP: Why the Internet is full of SYN.

    63. Re:How Absurd by Anonymous Coward · · Score: 0

      That broad generalization is as silly as the OP. Gosh, if only I typed faster I'd write clearer code, or perhaps I could write novels instead of short stories.

    64. Re:How Absurd by Anonymous Coward · · Score: 0

      Atwoods comment was focused at the fact that there is no reason for you not to at least be a proficient typist. He never said you need to be able to type 100 WPM or whatever, but that you should be able to type well, which generally means being able to touch type to some degree. This is simply because it is easy to do.

      Car analogy: Touch typing is akin to learning to double clutch. You don't need to know how to do it to race, but learning it makes you that much better at it and it is a relatively simple activity to learn when compared to the activity at hand of actually racing.

    65. Re:How Absurd by DavidTC · · Score: 1

      Indeed, I'm confused by this debate.

      If you type a lot, you will start touch typing. It's not some debatable thing like whether you 'need' to learn or not.

      You either a) can't type well, b) were taught to type in a class, or c) just typed so much you could type well. (Or some combination of b and c)

      Asking if it 'matters' for programmers is just stupid. If they can't type at some reasonable level, they have no experience programming. As you pointed out, the question is the wrong direction of causation.

      So, basically, Jeff Atwood is right...people who cannot type quickly (Unless they have some physical disability that slows them down) should not be taken seriously as programmers. Or as novelists, if they're claiming to be that, or as keyboard testers. Just like a guy who uses training wheels probably shouldn't be taken seriously as a bike messager. That, in and of itself, doesn't determine how well the job is done, exactly, but it sure as heck indicates how much experience they have.

      Now, how much they 'follow typing rules' is interesting thing to think about. Some people are entirely self taught, some people clearly learned the rules at some time but barely follow them, and some people seem like they're giving a touch typing demonstration of how to hold your hands. I don't know if this has any bearing on the skill of the programmer, although I suspect that people who are self taught at programming are slightly more likely to be self taught at typing, too.

      --
      If corporations are people, aren't stockholders guilty of slavery?
    66. Re:How Absurd by DavidTC · · Score: 1

      I do a weird hybrid. My left hand is almost always exactly right, with fingers on the home row.

      My right hand, OTOH (No pun intended.), is all over the place. It has to deal with brackets, parens, arrow keys, number pad, and on top of that, the mouse. So I tend to just use the first two fingers with the pinky for Enter. When I'm actually typing blocks of text, like here, I can force myself back to the home row and do it 'right', though.

      --
      If corporations are people, aren't stockholders guilty of slavery?
    67. Re:How Absurd by Bigjeff5 · · Score: 1

      Low typing speed simply screams "beginner".

      Even if they code test you give at the interview screams "brilliant"?

      What a narrow minded and, frankly, idiotic point of view.

      One of the best programmers I know never learned to touch-type. He cranks out code in a half-dozen languages (for different projects, obviously) via hunt-and-peck at 30 wpm if you're being extremely generous.

      On the other hand, I have a journalist friend who types at somewhere around 90 wpm, and couldn't write a batch script to save her life.

      What exactly does typing speed have to do with programming? Despite what you see in movies (the few times you see programmers in movies), no programmer I've ever seen sits down and cranks out line after line after line of brilliant code at 80+ wpm speeds. Most good programmers spend the majority of their time thinking about the code, and then a small amount of time typing it in. If you spend 5% of your time actually typing characters, someone who hunt-and-pecks at 30 words per minute is only going to take 5% longer to do the job than someone who types at 60 wpm (about average for a decent typist - though typing code is slower). With auto-complete that difference in speed disappears almost completely.

      Like Cook said, even Stephen Hawking is likely only going to be about 15% slower than a person who types 60 wpm, and only about 20% slower than a person who types 150wpm.

      This isn't technical writing, typing just isn't all that important for programming, why the hell would you make it a serious criteria? If Atwood can't take slow typists seriously as a programmer, then I can't take Atwood seriously as a manager.

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
    68. 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
    69. Re:How Absurd by Bigjeff5 · · Score: 1

      Not that hard to believe.

      Perhaps, but there is not one whit of evidence to back it up.

      people who type slowly *must* either type less or spend more time typing.

      But do they type less or do they spend more time typing? The GP clearly thinks they type less, but it's just as likely that they simply spend more time typing. Good coding habits are good coding habits, whether it takes you ten minutes to document a section of code or 20 is completely irrelevant.

      "Easy to believe" and "true" are two very different things. You may want to remember that, it's a useful thing to keep in mind in all of life's endeavors.

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
    70. Re:How Absurd by Bigjeff5 · · Score: 1

      Cook's point is that somebody's who's daily job requires the use of a keyboard should NOT be a slow hunt an peck typist, he/she should have at least a BASIC proficiency in typing.

      That was Atwood's point. Cook's point was that Atwood's point is completely irrelevant and idiotic.

      I agree with Cook.

      One of the best programmers I know never learned to touch type. He has been hunting and pecking for the last 15+ years. He writes solid, reliable code. I can't speak to the readability of it, but I can speak to its reliability, since my ISP runs on his code.

      How exactly does slow typing affect the quality of the work?

      People seem to be confusing bad programming habits with slow typing. It's complete bullshit. Since most programmers type pretty fast, the vast abundance of poorly commented, overly-terse code puts that lie to bed. Typing isn't even a significant portion of what a programmer's time is spent on, how can typing speed possibly be a significant deciding factor in the quality of a programmer's work?

      This is nothing more than narrow-minded workplace prejudice. Simple as that.

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
    71. Re:How Absurd by Lucrian · · Score: 1

      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.

      Yes, being able to type faster doesn't make you necessarily much more productive. However, having bad typing technique (which generally includes typing slowly) is very harmful to programmers. I think this whole conversation is just going towards the least important part of typing technique; people focus on WPM, which is really not the main factor. The other parts are how you sit move your hands and actually type without fatigue and stress. This won't necessarily make you much more productive, but if you look like L from Death Note when programming and scrunch over and then type with really bad typing technique, you dramatically increase your chances of getting a typing related injury. I believe that all programmers should be expected to have a certain degree of typing technique, not for pure WPM speed, but so that they protect themselves from things such as tendonitis and carpal tunnel, which WILL have a negative effect on their ability to program. Oh, and I'm a pianist and not a programmer. I've heard far too many stories of promising musicians giving up their careers because of physical injury. In this regard, I believe that it is important for both musicians and people who use computers frequently (not just programmers) to possess good technique.

    72. Re:How Absurd by Anonymous Coward · · Score: 0

      Well put. This actually makes the “composing for piano” simile quite valid; a person with great composition skills, but who's horrible at performing (let's assume he can't synthesize it), will obviously not be able to write as well as a composer whose tiniest whim can immediately be heard directly from the instrument.

    73. Re:How Absurd by ckedge · · Score: 1

      You know what does suffer aggregiously at the hands of people who can't type and/or have to hunt and peck?

      Documentation, Bug Reports, and Design Documents, everything important that isn't code. You find a person that types and you find complete thorough paragraphs of text. Hunt and peckers no matter how quickly they can peck - brief one liners that leave out 95% of the important details.

    74. Re:How Absurd by Anonymous Coward · · Score: 0

      Why are there so many egotistical idiots in this field who think they are the best coder ever? ALL of these people that I'VE meet are, in reality, barely adequate programmers.

    75. Re:How Absurd by tomhudson · · Score: 1
      Usually I give it the middle finger.

      About 15 years ago, I had some surgery where I ended up in the OR pretty much awake, but dopey. So, after hearing the surgeon give everyone heck for not prepping me properly, I *heard* him jam the IV in, accompanied by a crunch, in the crook of my right elbow.

      Managed to get all the way down from 10 to 1, but for a LONG time my right ring and pinky just didn't work at all. Nerve damage, but I wasn't going to complain. They *did* save my life, after all.

      So for the first few years thereafter, I had to type with only two fingers and the thumb on my right hand, and even then, I'd get spasms in the ring and pinky when the numbness would leave.

      The sense of numbness is still partly there on the right side of my right palm. and radiates to the end of my pinky, and along one side of my arm to the elbow, but I've regained full functionality, mobility, and even some sense of contact through the tingling, but ... I just use whatever finger happens to be closest - sometimes the middle finger, sometimes the ring finger ...

      It's not like I have to think about typing - it's just something I do ...

      -- Barbie

    76. Re:How Absurd by sqldr · · Score: 1

      Here's some good news.. after winning the 2009 scene.org awards, we have this bloke doing music for us. It's amazing how awards attract talent! http://www.youtube.com/watch?v=B4iRfUAhA9E

      --
      I wrote my first program at the age of six, and I still can't work out how this website works.
    77. Re:How Absurd by smallfries · · Score: 1

      You seem to be missing the forest for the trees. If they spend more time typing then they spend less time writing code. If they write less to compensate then the original post explained how this impacted the quality of their code.

      No, it cannot be assumed that they take either route A or route B, but as both routes lead to a worse place for coding then it is safe to assume that a worse place for coding will be reached.

      Although your point holds in general, when both choices lead to the same result it no longer matter which choice is taken. Lastly, if you are being quite so picky then it is important to be absolutely correct yourself: "easy to believe" is a synonym for "reasonable probability of being true". As such the two things are not "very different", but merely different.

      --
      Slashdot: where don knuth is an idiot because he cant grasp the awesome power of php
    78. Re:How Absurd by Rinikusu · · Score: 1

      I took typing in high school. Twenty girls, 2 dudes. Just sayin'.

      --
      If you were me, you'd be good lookin'. - six string samurai
    79. Re:How Absurd by Anonymous Coward · · Score: 0

      Using a modern IDE the cost of longer identifiers is low - one types the longer identifier when defining it, then simply choosing it from a list each further time it's used.

      Have to agree about comments / documentation, though, although I find writing the doc to define the methods a useful exercise, no matter what.

    80. Re:How Absurd by Golddess · · Score: 1

      The "sweeping generalisation" was that people who type slowly will type less.

      I thought the "sweeping generalization" was that programmers who type slowly will intentionally avoid detailed comments and descriptive variable names.

      --
      "I'm not sure I like the fugnutish tone you used in your post!" -RogL (608926)-
    81. Re:How Absurd by Anonymous Coward · · Score: 0

      I absolutely agree. It's not so much the typing speed for writing code, but the ability to fluidly and efficiently write comments, documentation, specifications, email communications, etc. During my 20+ years in this business thus far, I am certain I have written far more lines of communication/documentation than actual lines of code, but that non-code is an equally important part of the job. Back in college we as students would whine about why we had to take literature, writing, and/or speech courses? It didn't take long in the Real World after earning my degrees to learn it is because one must be able to communicate well to really succeed in this field.

      But don't you dare suggest taking away my spell checkers... :-)

    82. Re:How Absurd by Anonymous Coward · · Score: 0

      Correct! Everyone read this. I'll wait...

    83. Re:How Absurd by Anonymous Coward · · Score: 0

      You mean hit backspace until the error is gone and then re-peck the missing material.

    84. Re:How Absurd by Flwyd · · Score: 1

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

      I type way fewer WPM on a smartphone or tablet than I do on a keyboard. I think if I tried to program on a phone, a general sense of oppression and hatred of my situation would express itself in an inferior software product that threw NullPointerExceptions at random.

      What's important is not how fast you can type words, but how effectively you can connect the problem-solving part of your brain to your code input method.

      --
      Ceci n'est pas une signature.
    85. Re:How Absurd by hesaigo999ca · · Score: 1

      Unless you are under a deadline fast approaching and you are given a last minute update that must work 100% because it is going live in the next build which is in 2 hours...I have never in my life thought it could happen (or should be allowed to happen) but I have done it a few times in the present company i work for, and I have to say it is pretty slick to be able to code 150WPM and turn in your project smooth as silk when they come calling...

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

    1. Re:Not really important if somewhat proficient by SJS · · Score: 1

      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 affecting the productivity of others -- all because you're too damn lazy to learn to type.

      It's not really about raw speed. Typing should be an unconscious reflex... you want words and symbols to appear on the screen, and they should do so, without you having to think about it. That way you can think about the problem at hand, and not about the act of entering the code to solve the problem.

      --
      Pick One: http://www-rohan.sdsu.edu/~stremler/sigs/sigs.html (Note - disable Javascript first!)
    2. Re:Not really important if somewhat proficient by hedwards · · Score: 1

      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.

    3. Re:Not really important if somewhat proficient by jamesh · · Score: 1

      It's not really about raw speed. Typing should be an unconscious reflex... you want words and symbols to appear on the screen, and they should do so, without you having to think about it. That way you can think about the problem at hand, and not about the act of entering the code to solve the problem.

      That's more or less what I was going to post so I'll just agree with you. As long as you can get your ideas down fast enough that you don't forget them by the time the next idea comes along, then you can type as well as you need to. Also, once you have the basics in place - hands on the home row, hitting the right keys with the right fingers, etc - an increase in speed will come naturally as you do it more.

      One thing I wish I could learn is how to type well with someone looking over my shoulder. I can type as fast or faster than most programmers, but as soon as someone is standing behind me watching my accuracy goes to crap.

    4. Re:Not really important if somewhat proficient by Surt · · Score: 1

      Speed (rather than haste) can also make lots of tests verifying the correctness of a much smaller amount of production code.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    5. Re:Not really important if somewhat proficient by SJS · · Score: 1

      Stop imagining them in their underwear.

      --
      Pick One: http://www-rohan.sdsu.edu/~stremler/sigs/sigs.html (Note - disable Javascript first!)
    6. Re:Not really important if somewhat proficient by bbtom · · Score: 1

      I heard about a job advert that a large multinational in London's Square Mile put out. They needed a receptionist/secretary. They needed to be able to type and use MS Office. The typing requirements? 40 WPM. They had to reduce it down to 40 WPM to actually get applicants for a secretarial position. That tripped my "WTF? Something is wrong here." detector.

      I don't understand why touch typing is not part of every school curriculum in every Western nation. They spend enough time teaching people Word and Excel these days, why not teach touch typing? In a society where a huge chunk of people will end up in an office in front of a computer all day, it seems like a basic component of literacy. If you are writing things, there's a pretty high chance those things will be written in some electronic form.

      I can touch type pretty fast (90+ WPM) but that's because my mother (who had been to secretarial college and worked as a legal secretary) taught me how to touch type on a manual typewriter.

      --
      catch (HumourFailureException e) { e.user.send("You, sir, are a humourless idiot."); }
    7. Re:Not really important if somewhat proficient by Anonymous Coward · · Score: 0

      While coding not so much. While writing that long ass boring doc no one will ever read... 70wpm lets you *FLY* thru it.

      It is a useful skill. People should stop trying to find excuses to not have a skill. If you are going to be programming you will at some point be writing help docs, spec sheets, memos, emails, etc... You will be thankful you have it then.

      What about the comment you are about to put into your code that you just spent 2 hours making? You understand it at this point. You are now 'done', but cant be bothered to put in the comment because it 'takes to long'. But if you can bash it off it is not so bad.

      If you cant bother to learn the skill of using a typewriter; when you will be using one everyday, what does that say about your flexibility of learning new other useful skills? It may mean you are a 'just enough' coder. It doesnt look good on you.

    8. Re:Not really important if somewhat proficient by Belial6 · · Score: 1

      That is what keeps coming to mind every time I hear the debate on teaching kids to write in cursive. They spend large amounts of time to teach a written font that has had it's use primarily replaced by a writing method that isn't taught at all to most students.

    9. Re:Not really important if somewhat proficient by Thing+1 · · Score: 1

      Start believing in a higher power?

      --
      I feel fantastic, and I'm still alive.
    10. Re:Not really important if somewhat proficient by datacart · · Score: 1

      I completely agree. We have a saying in our office that all of the developers use: Fast + Sloppy = SLOW

    11. Re:Not really important if somewhat proficient by ljgshkg · · Score: 1

      I agree. As a programmer, I spend more time thinking than typing. You usually can't think as fast as you type. Most likely, you'll do both together, thinking, typing, reading/check APIs etc., all together. Typing faster, you'll really end up sitting there thinking without typing at the same time, that's all.

    12. Re:Not really important if somewhat proficient by next_ghost · · Score: 1

      The most important thing in programming is not to lose your train of thought. Decent typing speed helps a lot.

    13. Re:Not really important if somewhat proficient by bbtom · · Score: 1

      Well, in the UK, kids go to school for twelve years. That should surely be enough time to teach cursive and touch typing as part of an integrated writing curriculum!

      --
      catch (HumourFailureException e) { e.user.send("You, sir, are a humourless idiot."); }
    14. Re:Not really important if somewhat proficient by Fulcrum+of+Evil · · Score: 1

      Aside from signing your name, what use does cursive have? Learn it if you feel like messing with quill pens. Otherwise, just don't bother.

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    15. Re:Not really important if somewhat proficient by Belial6 · · Score: 1

      Sure, and calligraphy, and wood block printing, and the Klingon font, but that doesn't mean that there are not better things to do than learn a depreciated font.

    16. Re:Not really important if somewhat proficient by TapeCutter · · Score: 1

      When I went to highschool they had touch typing classes, however since I was a boy I was not allowed to attend. Only girls did touch typing because only girls grew up to be typists. I do about 35wpm hunt and peck, as do most of the other senior developers where I work.

      --
      And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
    17. Re:Not really important if somewhat proficient by voidphoenix · · Score: 1

      I disagree. If you're losing your train of thought as you type it in, then you haven't thought about it enough. I think the solution should be clear and crystallized in the mind before any typing begins.

    18. Re:Not really important if somewhat proficient by Cederic · · Score: 1

      That to me is the key issue. It's taking the physical interaction bottleneck out of the creative process.

      It's also a theory behind pair programming. One person deals with the physical typing, getting the syntax right, laying things out and spelling, the other person thinks about solving the problem.

      People don't multitask well. Good typists spend more of their time programming and less of their time typing programs in.

    19. Re:Not really important if somewhat proficient by CAIMLAS · · Score: 1

      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.

      Unfortunately, you're not talking about the topic at hand: we're talking about slow typists vs. fast typists, not slow typists vs. overly hasty programmers - those two aren't mutually exclusive.

      The fact is, in order for a slow typist to actually produce something similar to a fast typist, he must also be substantially smarter.

      The faster typist can make up for his lack of cleverness with thorough comments. He can also get the code out faster into a useful form, allowing for him to test its validity and assumptions - and then go back to fix it later.

      Unless you're going to form it all in your head, you've got to write -something- down first, whether on a napkin, prototyping, or bad code. It might as well be semi-useful code (and then come back and clean it up).

      As a fast typist who's a self-admittedly bad programmer (well, OK, mediocre) who writes good documentation, I'm proud to say that I've had people tell me that my code is easy to read and they were able to make modifications quickly. Finding what you want, where you want it in a timely fashion, goes a long, long way over digging through half as much code that has no comments.

      --
      ~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
    20. Re:Not really important if somewhat proficient by Alex+Belits · · Score: 1

      And tests would be wrong, too.

      --
      Contrary to the popular belief, there indeed is no God.
    21. Re:Not really important if somewhat proficient by next_ghost · · Score: 1

      If you don't have decent typing speed, you have to make a mental context switch between thinking about the code and typing it in. The longer the context switch lasts, the more it breaks your train of thought. Once you get decent typing speed, you don't do any context switching anymore, you can think and type simultaneously. Also, you don't type in just one idea a day. If your typing context switch lasts long enough to break your train of thought, you often have to refocus from scratch on any followup ideas. That's both a waste of time and possible source of bugs.

    22. Re:Not really important if somewhat proficient by DavidTC · · Score: 1

      I used to think I typed worse when someone was watching me, but I've come to realize I don't type worse, I correct worse.

      When no one is watching, I correct typos nearly subconsciously. I'm watching the screen and I see a wrong letter, and it's 'back and fix' instantly. If some psychologist did an experiment where I estimated the number of errors I made while typing something, and then check that, I'd be way under.

      When someone is watching, for some reason, I wonder if they noticed and think I'm not typing well, and often the entire correction blows up and I don't fix it right automatically and then have to fix it manually. And now I've spent 3 seconds instead of .5, and, worse, I paused to think about it so now I have to figured out what I was typing and start going again, so that's another 2 seconds.

      --
      If corporations are people, aren't stockholders guilty of slavery?
    23. Re:Not really important if somewhat proficient by Bigjeff5 · · Score: 1

      It looks pretty, and these days getting a note written in cursive makes a really good impression.

      I've taken to occasionally practicing my cursive skills just for that purpose.

      Plus sometimes it's just nice to be fancy.

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
    24. Re:Not really important if somewhat proficient by headbone · · Score: 1

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

      When it comes to typing speed, I disagree. Yes, much of my programming is sitting and thinking, but once I decide how to tackle a certain difficult task, and sort it out in my head, I wish I could type faster. (I touch-type approx. 70 wpm and am missing my right index finger.) Sometimes I write pseudo code to be filled in later so that I can get my inspiration poured out of my brain. I think experience, rather than typing speed will create better code. I (typically) no longer make common mistakes like = when I meant := etc. A good programmer that can type fast will likely code faster than a good programmer that types slow. That said, though, I do agree that a rushed project facing a looming deadline will suffer, and there, indeed, haste will make waste.

  10. 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
    1. Re:Practically Immaterial by jamesh · · Score: 1

      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.

      Wow. Old School. There is a lot to be said for getting the essence of the design laid out before you write the first piece of code, but a lot of what you said goes back to the days of punch cards and batch jobs with long wait times where the 'measure twice, cut once' approach to programming really paid off.

      And even writing the requirements, specification and design documents involves a lot of time at the keyboard, unless you really are old school and doing it on pen and paper. When doing this I normally sit down at a computer and write down everything I know about the problem, and if I can't get my ideas out as fast as I think of them then i'm going to miss something.

    2. Re:Practically Immaterial by artg · · Score: 1

      Yup. If Atwood thinks typing speed is the limiting factor (ie he's I/O bound) then there are a number of possible solutions, only one of which is increasing the I/O speed. A better engineering solution (remember - the best engineer is a lazy engineer) is to modify the environment so that less typing is needed for the same result. When I look at code for modern graphical environments I'm horrified by the code density (in terms of source code) - there's simply way too much typing to achieve very little. This is what needs fixing, not typing speed.

    3. Re:Practically Immaterial by Giant+Electronic+Bra · · Score: 1

      Well, maybe. You get into the question of levels of abstraction. I could easily enough design say a set of libraries that would let you do a lot of stuff in a given problem area with minimal code. The question is if such a high level abstraction will be a good solution. The more abstract the code you're working with the more likely it is to be inefficient or to lock you into choices that are awkward.

      I think that's the main reason coding is still being done at basically the same level of abstraction it was 40 years ago. The only way we're going to write less code is to figure out ways to automatically generate output that is more sophisticated and more tuned to the specific problem. Code generators are really attempting to do that, just by inserting another layer of generated source between the coders and the compiler. It sort of works.

      --
      "Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
  11. Really? by Anonymous Coward · · Score: 0

    So the ability to lay out logic, proper code structure, or beautiful code, as fast as possible is the epitome of programming?

    I suppose of the millions of programmers on the planet, none should have to reevaluate or rewrite their code at any point as well. We're all pinnacle programmers from the gate, aren't we?!?

    1. Re:Really? by fishbowl · · Score: 1

      >So the ability to lay out logic, proper code structure, or beautiful code, as fast as possible is the epitome of programming?

      Quality and completeness of documentation might be.

      Persuasive and grammatically correct writing might also be part of getting your software project accepted and paid for.

      --
      -fb Everything not expressly forbidden is now mandatory.
  12. 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.

    1. Re:Code monkey or engineer? by ThirdPrize · · Score: 1

      Repeat after me

      Type two letters, ctrl + space, cursor up or down to find right variable name, enter. Really, they should give intellisence it's own key on the keyboard.

      --
      I have excellent Karma and I am not afraid to Troll it.
    2. Re:Code monkey or engineer? by jms · · Score: 0

      Yes, but good architects draw fast because they get lots of practice. It's like playing an instrument, or athletics, or any other skill. The more you do it, the better you get. Good programmers usually can type fast because they program a lot. But it's the fact that they spend a lot of time programming that makes them good programmers, not the fact that they can type fast. Fast typing is a side effect of spending enough time programming that you get good at the physical mechanics. If you can't type fast, then you're like a guitar player who can't find the notes on the fretboard. It's a sign that you aren't practicing enough.

      The last part of this comment makes me laugh. If you're sitting around "processing the rest of the design" while "code monkeys" do the actual programming, then you are not an engineer. You are a manager, and you are not doing the programming. You may think that you are doing the very important thinking part of the job, but actually it's your "code monkeys" who are working their asses off trying to implement the half-baked designs of the "engineers" who not only never get their hands dirty writing code, but look down on the "code monkeys" who actually write the code and make it work.

    3. Re:Code monkey or engineer? by BeanThere · · Score: 1

      I'd say a better analogy would be saying "You can't be a good bricklayer if you don't lay bricks fast", which does actually make sense, since speed would be extremely important to bricklaying (quality being the other primary measure). I'm not sure what mythical theoretical team you work in where you can just think out the broad overall design and have a so-called "code monkey" "just do the implementation". There is an almost fractal-like complexity that is intrinsic to the nature of programming that just makes this not very realistic. Also any real-world application IS 20% serious problem-solving and 80% simpler stuff. Any real programmer will spend a lot of time both thinking and "laying bricks". The speed at which you can think dictates the quality of the 'programming bricks' you lay; the speed at which you can type dictates the speed you can lay the 'programming bricks'. Personally I find my ability to type at 100+ wpm extremely indispensable to my productivity, all day long, every day. Being able to process emails faster, and write documentation and proposals faster and more clearly, are also directly linked to my productivity, since any serious programming job also involves documentation, email, etc.

    4. Re:Code monkey or engineer? by offsides · · Score: 1

      Typing speed is to programming != piano key speed is to pianist. A better analogy would have been to ask about a hunt-and-peck composer, and frankly there's probably tons of them out there. I'm sure a composer who primarily plays guitar might only hunt-and-peck on a piano, but so what? I agree that you probably need a rudimentary typing skill to be a a reasonably efficient programmer, but efficiency != quality, and writing code fast may lead to more bugs that have to be fixed than someone who has to think about what they're typing and fixes them as they go...

    5. Re:Code monkey or engineer? by SoupIsGoodFood_42 · · Score: 1

      Thing is, you don't even need to be able to draw very well to be an architect or a designer. You just need to be good enough to convey your ideas to others. And in the day of CAD and other drawing aids, you can get away with drawing skills of a 3yo.

    6. Re:Code monkey or engineer? by Cederic · · Score: 1

      You do realise a standard IT architect job interview will be failed if the interviewee doesn't get up and show competence at drawing diagrams at least once in the interview, without being prompted to do so?

      It doesn't matter how good you are at thinking of something if you can't translate it to a communicative form - drawings for architects, code for programmers. Reduce the time spent on the mechanics of the job and stop interrupting the creative flow.

    7. Re:Code monkey or engineer? by Anonymous Coward · · Score: 0

      Actually, Frank Lloyd Wright was a very fast drawer. He once drew a house so fast, that an assistant that was sharpening pencils for him had trouble keeping up.

    8. Re:Code monkey or engineer? by damaged_sectors · · Score: 1

      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.

      Typing is writing, programming is writing. Whether you are typing pseudocode on the fly (because you are practiced), actual code, or documentation, accuracy in translating thoughts into words is important.

      I consider learning to touch type almost as useful as learning to speed-read. They're both things that a programmer does a lot of, and any task the is often repeated bears examining for improvements. Unless of course, you don't have deadlines.

      However - planning and testing are more important (IMO) than execution, and accuracy beats output any day. I'm not sure how you'd weight the importance of those things - but 5 words a minute with 100% accuracy is better than 40 words a minute with 90% accuracy. It can't be measured just in terms of output, and probably varies between individual programmers but... when you finally have the idea in your head as to how you are going to deal with the problem, accurate touch-typing (typing fast ain't the same thing) enables you to write what you think without being distracted hunting for keys - and hampered by the fact that you cannot hunt and peck as fast as you think. Of course that all rests on the premise that we "think" at roughly the same speed as we talk.

      When I write code I tend to do so in long sessions - firstly walking or just idling while I think about the task and try and fit the entirety in my head - then (don't interrupt me) I want to "get it down". Usually as pseudocode, then triple space and replace the pseudocode with actual code (self-documenting). It's when I want to write the pseudocode that the touch-typing is most useful - actual code writing speed doesn't really matter because I can interrupt that, go away on holidays, come back, and still the plan is obvious in the pseudocode.

      I know a number of good programmers who cannot touch-type - I don't have any opinions on whether they produce more, of less, useful code than I. What is consistent though - is that they all produce programs that are a pain in the arse to maintain because only they can work out what the hell the program is doing - it's never self-documenting, and rarely has sufficient, or useful, comments.

      Note: this post took maybe 5 minutes to post - it will have errors (I'm not even going to check), I have been sucking down the Solstice spirit, and there are people talking to me while I type this - try that using hunt and peck

  13. 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 Anonymous Coward · · Score: 0

      StringBuilder sb = new StringBuilder("You");
      sb.append("Should");
      sb.append("Be");
      sb.append("Using");
      sb.append("Stringbuilder");
      sb.append("and");
      sb.append("not);
      sb.append("+=");
      System.out.println(sb.toString());

    2. Re:Don't measure WPM by gparent · · Score: 1

      System.out.println("Whoosh!");

    3. Re:Don't measure WPM by Oligonicella · · Score: 1

      System.out.println("As all you've used is literals, neither of you are very bright.");

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

      That would output "YouShouldBeUsingStringbuilderandnot+=". Yay for CamelCase!! Is System.out an SMS? (Well, in fact it wouldn't even compile because of the syntax error in the "not" line, but you get the drift).

    5. Re:Don't measure WPM by blake182 · · Score: 2

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

    6. Re:Don't measure WPM by IchBinEinPenguin · · Score: 1

      // start with a salutation
      Hi Leto,

      // whitespace

      // brief introduction
      I'm a software engineer.

      // show off
      I've been writing programs for over 2 decades.
      // might need to change that bit later.....

      /* ****** DON'T NEED THIS
      // enumerate languages
      I've written in just about everything from C to REXX to Python and Basic.
      */

      // scold
      I couldn't help but notice that your program lacked proper comments.

      // be obnoxious
      I also couldn't help but notice the glaringly obvious flaw in your program.

      // be condescending
      In case you can't find the problem I'll give you a hint: Null Pointer Exception.

      // whitespace

      // sign off
      with friendly regards,

      Me

      // PS
      // dammit... I'll bet someone will have beaten me to this joke 'cos I didn't type it fast enough!

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

    8. Re:Don't measure WPM by Cederic · · Score: 1

      By assigning output to the static string "We" it is correctly initialised. System in java is a static object that initialised by the VM prior to program execution.

      So I can't see your NullPointerException.

    9. Re:Don't measure WPM by Anonymous Coward · · Score: 0

      Not so, because code quality cannot be measured in how verbose or sparse it is.
      Good code is maintainable, easy to replace and does what it does with the minimal amount of code (but not at the expense of readability)

    10. Re:Don't measure WPM by ewanm89 · · Score: 1

      So ineffecient creating and discarding that many string builder objects, just create one,append it all together then convert to string and discard at the end.

      import java.lang.StringBuilder;
      ...
      StringBuilder output = new StringBuilder();
      output.append("We");
      output.append(" should");
      output.append(" really");
      output.append(" be");
      output.append(" counting");
      output.append(" lines");
      output.append(" per");
      output.append(" minute.");
      System.out.println(output.toSting());
      ...

    11. Re:Don't measure WPM by Anonymous Coward · · Score: 0

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

      But for the fast typist:

      String output;
      output = "We";
      output = output + " should";
      output = output + " really";
      output = output + " be";
      output = output + " measuring";
      output = output + " lines";
      output = output + " of";
      output = output + " code";
      output = output + " per";
      output = output + " minute.";
      System.out.println(output);

      Seriously, though, if your editor has shortcuts and code completion, that can save a lot more time than being a fast typist.

    12. Re:Don't measure WPM by Anonymous Coward · · Score: 0

      System.out.println(output.replaceFirst("of code", "of good code"));

    13. Re:Don't measure WPM by Anonymous Coward · · Score: 0

      I agree. It's getting really old going back to re-factor code where people have used += in their loops.

    14. Re:Don't measure WPM by Anonymous Coward · · Score: 0

      This is one way I tell the bad java programmers from the good ones, do they blindly follow myths like the stringbuffer performance myth vs googling the subject to confirm or deny what they've heard?

    15. Re:Don't measure WPM by Anonymous Coward · · Score: 0

      This java code wouldn't compile...

      You need to fix the first line...

    16. Re:Don't measure WPM by Anonymous Coward · · Score: 0

      StringBuilder. Get up-to-date on your Java versions ....

      But as the other posts have implied, StringBuffer/Builder would make absolutely no difference for this bit of code.

    17. Re:Don't measure WPM by Bigjeff5 · · Score: 1

      As long as you aren't looping the concatenation (and often even if you are), the compiler will catch the problem and use StringBuilder instead.

      If it doesn't, your compiler sucks monkey ass, and you should get a new one.

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
    18. Re:Don't measure WPM by IchBinEinPenguin · · Score: 1

      So I can't see your NullPointerException.

      Neither can I, now that I'm concentrating on the code rather than on my typing speed.

    19. Re:Don't measure WPM by javamage · · Score: 1

      Actually, the Java compiler will automatically convert that code into a StringBuilder, and the above code is much easier to read... (If the code concats strings in a loop, the compiler usually cannot optimize it)

    20. Re:Don't measure WPM by Anonymous Coward · · Score: 0

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

      StringBuffer doesn't actually have an appreciable affect on performance.

      StringBuilder on the other hand I've heard does. But I haven't run any tests myself.

    21. Re:Don't measure WPM by Anonymous Coward · · Score: 0

      Better yet, use StringBuilder....it's not synchronized.

    22. Re:Don't measure WPM by Anonymous Coward · · Score: 0

      Also you can't measure locpm (lines of code per minute) in java, cuz in java you write things like:
      ((Integer)measures,getTypingSpeedofAHumanBeing()).getIntValue();

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

    1. Re:It's *thinking* faster that counts by luis_a_espinal · · Score: 1

      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 aggressive) coding. I cannot see how someone can translate their streams of thought into code while struggling with the keyboard. Either a person develops decent typing skills or that person never really gets into that *zone* of coding productivity.

      Another example is when you are not necessarily doing new design and development, but repetitive maintenance and extension of simple systems that you understand well. Say, adding simple struts actions, or modifying deployment scripts or one-time shell scripts to take care of something. You cannot do those by drawing a design on paper before coding. You code and try as you go.

      The only time that you see good programmers spending much more time without actual coding is when working with highly formal processes (.ie. like those required by the DoD or DoE.) But even then, you spend a lot of time typing documenting what is on your head, your vision of what the system will be like and your arguments (and sometimes proofs) of why it should be so.

      No matter how you cut it, the majority of time might not be into coding, but a substantial chunk of it will be typing in one manner or another.

    2. Re:It's *thinking* faster that counts by luis_a_espinal · · Score: 1

      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 the keyboard at less than 40 words per minute, that will make me go "uh huh."

    3. Re:It's *thinking* faster that counts by Anonymous Coward · · Score: 0

      This person has the right idea. It is all about the time spent in theory. Yes, typing fast helps a lot if you suddenly have many ideas to implement/test simultaneously, but (and I may just not be creative enough, certainly only speaking for myself) I find this doesn't happen very often and that I usually spend more time thinking about covering my ass in smaller situations longer.

      The butterfly effect is evil in code, esp when maintaining someone else's work-- more so if in a time crunch.

    4. Re:It's *thinking* faster that counts by SoupIsGoodFood_42 · · Score: 1

      Even better than thinking fast is thinking smart.

  15. 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 MarcoAtWork · · Score: 1

      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 "yadda yadda, I already know what this should look like" vs "never seen this before".

      --
      -- the cake is a lie
    2. Re:Programming != Data Entry by Anonymous Coward · · Score: 1

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

      You...don't actually know any pianists, do you?

    3. Re:Programming != Data Entry by Anonymous Coward · · Score: 0

      If you get 1000 applicants for a job, and 900 of them are applying to every single job advertised just to get out of McD's ? An automated typing test can really thin out the pool without an HR department the size of the company. Of course, it would make more sense to have a coding proficiency test, but the relative ordering of things is quite another matter.

    4. Re:Programming != Data Entry by pilgrim23 · · Score: 1

      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 productivity. Someone just finish a performace review and have some of the HR metrics left over?

      --
      - Minutus cantorum, minutus balorum, minutus carborata descendum pantorum.
    5. Re:Programming != Data Entry by mikael_j · · Score: 1

      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 analogy would be two photographers, their understanding of what makes a photo bad, good or amazing are equal. They have identical cameras but one photographer knows his camera so well that changing the settings is instinctive, he sees an opportunity for a good shot and without even thinking about it he adjusts the camera's settings. The other photographer also knows what settings the camera should have, it's just that he has to stop and think about how to make those changes (thinking: "Oh, which wheel was for changing the exposure time, was it this one? Oh no, wait. The other one. Oh, wrong direction..."). Which photographer do you think will produce the highest ratio of amazing/good to bad photos?

      That's really the problem with programmers who type slowly, when typing takes so much active thought that they get sidetracked by it (and yes, I've met guys like that, they figure out how to do something and halfway through writing the code they lose track of the beautiful solution they came up with because they were busy trying to remember how to make a semicolon...).

      --
      Greylisting is to SMTP as NAT is to IPv4
    6. Re:Programming != Data Entry by Anonymous Coward · · Score: 0

      Hmm, boilerplatish code always makes me think how can I avoid it. So I usually type it even somewhat slower.

    7. 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
    8. Re:Programming != Data Entry by Anonymous Coward · · Score: 0

      A pianist needs good timing. Programmers generally don't; they don't have to finish the next 3 lines of code at certain points. They don't even have to write code in the order executed. It's a flawed analogy.

      Do programmers need to type faster than they think? If so, why is requiring them to type faster than they think a good idea?

    9. Re:Programming != Data Entry by Anonymous Coward · · Score: 0

      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?

      Because when you're done with all the other stuff you have to actually input the code in question. Management isn't going to extend your deadline for a week to give you time to enter your data at 20 WPM.

      Don't get me wrong, you don't need to be some world-class typing champion. But there IS a minimum level of competency required.

    10. Re:Programming != Data Entry by Anonymous Coward · · Score: 0

      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.
       

      This is incredibly offensive to pianists

    11. Re:Programming != Data Entry by mikael_j · · Score: 1

      It's not about requiring programmers to type faster than they think, it's about there being an advantage to being able to type fast enough to keep up with your thoughts without having to actually think about every other key press.

      --
      Greylisting is to SMTP as NAT is to IPv4
    12. Re:Programming != Data Entry by noidentity · · Score: 1

      A pianist is the equivalent of a data entry clerk.

      Nice. So in the piano player analogy, the computer is the piano player. I guess Mr. Atwood has one of those computers lacking a memory, so that he has to code in each instruction as it's executed. My advice to him: upgrade your hardware, man!

    13. Re:Programming != Data Entry by Anonymous Coward · · Score: 0

      Despite being an insightful comment (being an amateur pianist myself with a fair number of years behind me I do agree), I must say that the grandparent's comparison was likely a generalization.

      Assuredly, pianists do not simply plunk the keys exactly as written, otherwise there would be no real difference between pianists. However, discounting extremely rare performances, primarily in jazz, pianists do play the notes on the paper. Oftentimes ornamentation may be added, but you can't really take a piece of music and play something completely different, then call it the same piece of music.

      Data entry clerks, obviously, have far less leeway as to what they'd like to type, but pianists are not completely free in their interpretations of a piece either. You cannot take something like Twinkle Twinkle Little Star and suddenly start playing the theme from Star Wars. Programmers, of course, are completely free since they're creating something completely new.

    14. Re:Programming != Data Entry by Fulcrum+of+Evil · · Score: 1

      The point here being that a pianist plays every note every time. Computer guys play it until it works well enough, then it just runs.

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    15. Re:Programming != Data Entry by Anonymous Coward · · Score: 0

      The interpretation can be analogous to how fast one can type. It's a skill, and I never said it's all about how fast or technical the pianist is. The ability to interpret sheet music does not suddenly give you the ability to compose a symphonic piece for the whole orchestra.

      Maybe data entry clerk is a bit harsh. How about glorified receptionist, capable of whipping together some very basic VB script in her documents?

      But regardless of the analogy the point is still that a programmer does not type glorious amounts of shit at speed. He designs. There's a key difference and once which shouldn't be judged on ability to enter code into a computer quickly. Coming up with awesome algorithms and sweet looking code in their head quickly, yes, but actually translating that to fingers no.

    16. Re:Programming != Data Entry by Anonymous Coward · · Score: 0

      Ah, someone who knows what they're talking about.. how novel. I have question related to this subject that I wanted to ask someone with a clue: what percentage of classical music's (eg mozart) sound do you think is described by the sheet music ? Obviously, if the sheet music described everything perfectly there would be no room for the interpretation mentioned above, so.. given the differences possible.. what proportion of the information is supplied by the sheet ?

    17. Re:Programming != Data Entry by CAIMLAS · · Score: 1

      Ok, so a pianist is the rough equivalent of a pretentious, literate data entry clerk who wears a beret. (The original point is still valid: a pianist is a poor analogy for a programmer.)

      --
      ~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
    18. Re:Programming != Data Entry by eugene+ts+wong · · Score: 1

      Those 2 videos were excellent comparisons. Personally, I feel that when you play things too fast or too slow, it can really alter the overall experience of the piece. As for those 2 videos, they were each great in their own right, as far as I am concerned, for my purposes, however, I think that Peter Roper-Curzon should have slowed it down to let his audience experience what Rachmaninoff offered.

    19. Re:Programming != Data Entry by thegarbz · · Score: 1

      Copy this sentence: "The quick brown fox jumped over the lazy dog." You did that pretty quick didn't you?

      Now write a Hello World!! program in C, but store the phrase "Hello World!!" in a string. Notice that when you get down to writing the string you will stop to think, now what is that variable called?

      When you don't stop to think you can churn out characters at an incredible rate. But as soon as even a slight bit of thought needs to be put into what you right it becomes a real upper limit in your typing speed. This is the same thing that causes novelists not to churn out a new book every 3 weeks. Putting thought into what you write ultimately is more limiting that the inability to touch-type, and even your boilerplate-ish code will need some thought (what are the variables you're testing, what method are you coding up).

      Sure I'm a rocketman when it comes to typing "main { }", but it's the bit in between the brackets which will slow me down.

    20. Re:Programming != Data Entry by Anonymous Coward · · Score: 0

      It's funny. Back in 1981 when I started, we used coding sheets and sent the paper out to a company to type up the cards. Then in TSO we had to change all the O's to zeros, the L's to 1's, etc. But back then it would have taken me forever to punch cards - and I tried - because one error and you through the whole card away.
      Hundreds of millions of lines of code that were written that way are still in service and have worked probably longer than OP has been alive.
      The people at the typing company are long gone. I'm still writing code that works.
      Wish I could type faster, but I'm happy enough just to build stuff that works.

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

    1. Re:I don't type very fast when I'm coding by javakah · · Score: 1

      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 help you catch those, but in other cases (such as using the wrong variable), you can far more time looking for a mistake than the time lost by slowing down a bit and not making the mistake in the first place.

    2. Re:I don't type very fast when I'm coding by Anonymous Coward · · Score: 0

      I mostly work according to this method:

      1. Write a few small pieces of code that work really well.

      2. Solve the rest of the problems by copy-pasting the code that already works, changing indexes and variable names where appropriate.

      3. Testing, testing, testing. Make minor adjustments where needed.

      4. More testing.

      5. Did I mention testing?

      I bet that less than 10% of my time is spent typing actual code on the keyboard.

    3. Re:I don't type very fast when I'm coding by Anonymous Coward · · Score: 0

      You've come close to why typing speed matters. A lot of professional work is documentation. The actual coding phase becomes less of your job description as you climb that old latter.

      For instance, a lot of government contract work requires a LOT of documentation to support the acceptance of the software throughout its life cycle. And this, my friend, is tedious. So, I figure, the slower you type, the less time you spend doing the stuff you actually enjoy (design/implementation/integration). And, maybe, come in somewhere near your budget.

    4. Re:I don't type very fast when I'm coding by snowgirl · · Score: 1

      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?

      Because a proper engineer does detail things this greatly prior to even starting anything. It's a sad indictment of programmers that we typically do not follow rigorous design processes.

      --
      WARNING! This girl exceeds the MAXIMUM SAFE standards established by the FDA for BRATTINESS
  17. Eh? by Anonymous Coward · · Score: 0

    Speed is something you get by typing more, and programming skill comes from programming more. Luckily, unless you're programming with punched cards, the latter helps the former.

    So what's the debate again? (Obviously haven't RTFA)

  18. 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 SharpFang · · Score: 1

      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.

      --
      45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
    4. 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.

    5. Re:Correlation:typing speed and coding experience by DCFusor · · Score: 1
      Failed typing in high school -- guess I spent too much time observing the mostly opposite sex in that class, but really, I just couldn't get good at it. But now type faster than almost any other human -- and it was from coding experience. Once I found something I loved to do, that did it....Now I can do it while listening to the radio and talking to someone without looking or slowing down -- but as the parents say, that's because I wrote one heck of a lot of code and the typing just came naturally as a result.

      Hard to see how some utter klutz is also going to be a good designer -- if you can't handle your own body, I feel for ya, but I'm not likely to hire you.

      --
      Why guess when you can know? Measure!
    6. Re:Correlation:typing speed and coding experience by DCheesi · · Score: 1

      My typing speed maxed out in high school typing class. 15 years of daily programming has done nothing to increase it beyond that level.

      There is a wide variability in individuals' ability to type fast; it's one of those things where innate talent really *is* as important as learned skill. But there is no evidence I'm aware that that particular talent is in any way correlated with superior programming ability. It's a matter of physical coordination, which is based in the cerebellum, and has nothing to do with cerebral functioning.

      Of course, I consider myself well into the "moderate" range (~50wpm), so maybe I'm not who you're talking about (but then that's Cook's whole point). And I would hope that any serious programmer would take the time to take a typing class, so 2-fingers is indeed a bit suspect. But even now I stumble a bit with the occasional special character (and doubly so when another person is watching). Heck, if I had good coordination, I would would have been an athlete instead! (or a pianist...)

    7. Re:Correlation:typing speed and coding experience by DCheesi · · Score: 1

      Wow, almost the exact opposite of my response. If your post wasn't older, I'd almost think you were trolling me ;)

      To wit: If you can't understand the tremendous difference between physical coordination and abstract reasoning/creativity, I feel for ya, but I'm not likely to hire you...

    8. Re:Correlation:typing speed and coding experience by GreatBunzinni · · Score: 1

      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.

      Your analogy is wrong from the start. You are assuming that stating that someone types fast implies that whenever that person is in front of a keyboard writing code, all that person does is mindlessly machinegunning code "in the fastest way". That is wrong.

      Fast typists, in this context, refers only to those who, during the years, managed to develop the ability to feel at ease with a keyboard and therefore manage to, whenever it is called for, type stuff fast. The ability to type fast is being used as a synonym of being a skilled typist, in the sense that those who are unable to type fast never managed to develop their typing skill. Maybe they are still forced to look at the keyboard while typing, maybe they only type with their index fingers, including the space key. What matters is that they suck at typing and therefore are unable to type as fast as those who spent a considerable time in front of a monitor hacking code away.

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

      I agree completely. I can type faster then I can think and I think while I type. I have observed fast typists and they just squirt down text, then just as backspace over it, and redo again as needed. It's like they think with their fingers. Fine if that works for them, but I build it in my head and then transcribe to keyboard. If I could type faster then 4 fingers I would just have to backspace more. That primarily applies to text, I actually program much slower then that. In any case, at 30 WPM, a perl master could code the universe on 10 minutes.

      --
      The reason we subjugate ourselves to law is to better procure justice. If law does not accomplish this purpose then it m
    10. Re:Correlation:typing speed and coding experience by FoolishOwl · · Score: 1

      That's pretty much what I understood the point to be. It's not that typing quickly and accurately is a critical job skill, per se, so much as that typing quickly and accurately is a natural consequence of spending hours at a keyboard.

      I'm more on the systems administration side of things, and long before I started working in IT, I noticed that sysadmins were the fastest typists around. I spent a lot of time as a temp data entry clerk, and generally, data entry clerks don't type as fast as sysadmins.

    11. Re:Correlation:typing speed and coding experience by Garen · · Score: 1

      A person that doesn't spend enough time coding will simply code at sucking.

      Brain segmentation fault: received SIGSEG_PERSON_TYPED_POST_TOO_FAST (aborting).

    12. Re:Correlation:typing speed and coding experience by eulernet · · Score: 1

      As you said, typing fast is a skill we acquire.

      Not everybody is interested in developing this skill.

      As I said above, our guy types slowly, but he spends a lot of time behind a computer, so he's not interested in developing his typing skill.
      And even though computers are not a passion for him, his code is very good.

      I have to admit that he's the only one I met in my computer's career (>20 years), and after looking at his way of working, I had to revise my opinion, since I was thinking the same way as you before.

      I also met several people who were typing with Intellisense, and it was impossible to follow what they were doing, and I'm still not sure that their way of working was efficient.

      If you try pair-programming, you'll also realize that you'll type slower, but there will be much more thought in every line you type.

      I remember the old days, when I wrote all my code on paper, and I typed it when it was finished, and even though this works for only small parts of code (though I wrote large programs this way), I still believe this is the right way to code: think then type.
      It's the thinking part that must take most of the time, and the time for typing is irrelevant.

    13. Re:Correlation:typing speed and coding experience by Anonymous Coward · · Score: 0

      you are wrong. typing with 2 fingers yikes!!!!!!

    14. Re:Correlation:typing speed and coding experience by javakcl · · Score: 1

      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 have to agree with this. If I couldn't type moderately well, I would lose my train of thought halfway through writing the code. And, I would be cutting corners trying to get it done before I lost my train of thought. And, I would hate my job. Anything that makes your job harder makes you like it less.

    15. Re:Correlation:typing speed and coding experience by Anonymous Coward · · Score: 0

      "A slow typist is not a decent coding?" Not to put too fine a point on it, but methinks you could use some coaching in the writing department yourself. Yes?
      Your typing quickly did not adequately express the sentiment I believe you might have wanted to convey.
      I've read detailed designs where, instead of "a miracle occurs here" it's been "upon this point, do the appropriate." Same diff.

    16. Re:Correlation:typing speed and coding experience by DavidTC · · Score: 1

      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.

      Indeed. Human beings learn how to automate steps. No one thinks about how to walk, or open doors, or point their mouse at something.

      Good programmers figure out what needs to happen, figure out how to make that happen, and it's on the screen.

      For great programmers, 'what' and 'how' are the same thing, because they've done that step so much. They just figure out what needs to happen, and it's on the screen.

      But key there is 'it's on the screen'. Not 'type some stuff to put that on the screen'. That just happens.

      If it's not just happening, you do not have enough experience at the process. You are figuring out how to balance yourself on one foot while moving the other foot forward, or how to pull the doorknob and turn it at the same time.

      This isn't even something that's particularly restricted to programmers. I suspect someone who's written a novel does the same thing. They think about what they want on the screen, and, bam, it's on the screen.

      --
      If corporations are people, aren't stockholders guilty of slavery?
    17. Re:Correlation:typing speed and coding experience by Bigjeff5 · · Score: 1

      That's an idiotic assumption. Old-school legends of code, the guru grand-masters who began programming by practically inventing it, the grey beards who are masters of their craft, rarely touch type.

      This post by SumoRunner on a Joel on Software discussion of typing's relevance to programming explains why:

      I never learned touch typing. When I was in school in the 60s, girls took typing and boys took mechanical drawing. Girls took home economics and boys took shop. That's just the way it was.

      When I started working in an engineering office in 1972 all typing was done by secretaries. We wrote everything in long hand and gave it to them to type. Programming was done in pencil on a big 80 column form sheet and the punch cards were typed in by keypunch operators.

      It wasn't until about 1975 that we got our own office teletype for remote job entry and started typing in our own programs. So to this day I have a very odd way of typing, not just two fingers but not all ten either. I have no idea which finger is going to seek out which key at any given moment but somehow I find them.

      Meanwhile over the last 36 years I've banged out a hell of a lot of code. Nobody's ever counted the number of lines. Sometimes a good day can even result in a negative line count. In fact I'd call that a very good day.

      In other words, typing speed means fuck all to programming ability.

      Chances are these days you'll learn to touch type as you learn to program. It's very much worth it, as you don't have to think about what you are typing to type. It's not exactly a huge burden, though. In fact a friend of mine does a strange 3-finger hunt-and-peck typing style that is nowhere near as fast as my typing speed, yet he runs circles around me when it comes to developing code (and that includes all the nitty-gritty tech-writing aspects of it).

      Why? Because he's a better programmer than I am. Programming is a part of my job, but not a major part. Programming is all he does, and he is very good at it.

      According to you and Jeff Atwood, however, I'm clearly the better programmer, for some reason I cannot fathom. My aunt can type over 120 wpm, perhaps she should be a programmer? Never mind that she can barely turn on a computer successfully, she types fast! She's obviously a great programmer!

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
  19. 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 Dilligent · · Score: 1

      This, absolutely!

      I believe thats what the summary suggested, you can go ahead and learn to type as quickly as possible, but there's a limit as for how fast your mind can come up with code that actually solves the problem.

      I can type quite fast, even though i only use thumb to ring finger on my right hand and the index finger on my left hand. This is not a limit for me though, because the bottleneck is the mind and not the fingers. Same with language in generel, english is not my native language and i while i don't have to actively think about what I'm expressing, i still not to kind of fill an internal buffer, not unlike a CD-R application writing.

      So yeah, go for eliminating bottlenecks. There's this old saying about optimising:
      1) Don't do it. 2) Don't do it, yet. -- Meaning, look for bottlenecks first!

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

      Oh, and while I'm at it, I should probably go and proof-read sentences I edited before posting :)

    3. Re:Its the Cognitive Load by hedwards · · Score: 1

      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 correct keys at the correct times.

      Or in other words, reducing cognitive load only works if you actually reduce the load. Shifting it from locating a key to checking that you typed what you meant to is at best a zero sum transaction.

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

    5. Re:Its the Cognitive Load by Anonymous Coward · · Score: 0

      Here here!

      += you will be less inclined to implement large scale, complex system, if it will literally make you tired to type it.

      also - the faster you type, the faster you can try something 10 different ways, etc -
      whereas the 'strain' of doing that wouldn't even make it feasable otherwise.

      and on and on.

    6. Re:Its the Cognitive Load by ivec · · Score: 1

      I really would not worry about WPMs; but how would I look at a programmer who has never bothered to learn touch-typing?

      A self-respecting programmer ought to learn touch-typing, just as he ought to know more than one programming language, ought to read and educate himself to new techniques, and ought to master an editor, and to use other tools that relate to his field of activity (profiler, packet-sniffer, debugger, ...).

      Looking for the next key to type takes away some of your attention; and you don't want a programmer to pick short variable names only to save himself some typing (seen before...).

    7. Re:Its the Cognitive Load by DavidTC · · Score: 1

      Shifting it from locating a key to checking that you typed what you meant to is at best a zero sum transaction.

      Uh, not really. What you meant to type is presumably already taking up memory space in your head. You can hardly type stuff if you don't know what you're trying to type.

      If you have 'int i=0' in memory location 1, you can think 'I need to type location 1' and then at the end of the line you glance at it and ask 'Is what I am looking at the same as location 1?'. One memory slot.

      Obviously, if it's not, you've been interrupted, and the wrong text has also taken up a memory slot now, but there's not any way around that. (I've discovered that I personally am correcting a lot of errors as I type without actually noticing, and that it I need to do the compare at the end of every line while programming, and every five words or so when in typed conversations.)

      Interestingly enough, not only is the 'Is the text I am looking at the same as the text I am thinking of' a very fast comparison, it's actually a pretty error-prone one. We've all stared at code and not seen problems because we 'already know what it says' and our brain doesn't notice errors. But typing slower doesn't solve that.

      Meanwhile, hunting and pecking is actually looking for a letter, which requires you to think about each individual letter in the sentence and, even worse, the physical layout of the keyboard. You can't tell me that doesn't take up at least one more memory slot.

      However, you're right in that people rarely need to type at 'max speed', but I think part of the problem with this conversation is that some people are talking 70 wpm vs 150, whereas others are talking about 35 wpm vs 70 wpm, or something like that. No one's saying that programmers will be superhuman typists, or they'll follow the 'typing rules', just that it's very hard to type for more than, let's say, 5000 hours without learning how to type at a reasonable speed without looking at the keyboard. If that's via the index fingers, that's fine.

      --
      If corporations are people, aren't stockholders guilty of slavery?
    8. Re:Its the Cognitive Load by Bigjeff5 · · Score: 1

      I don't think that's true at all.

      Most new programmers use cryptic identifiers and don't comment a thing. It doesn't matter if they type 150 wpm or 15.

      It's not until a programmer has to go back through terse, comment-free code (even if it's their own!) and try to figure out what the hell is going on that they realize the value of descriptive identifiers and helpful comments.

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
  20. Typing speed is very important, however... by MarcoAtWork · · Score: 1

    ... "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 their editor as a dummy typewriter. Of course if you have a fast typist fully conversant in their editor (especially emacs ;) ) it can make their productivity quite amazing when they are "in the zone".

    --
    -- the cake is a lie
    1. Re:Typing speed is very important, however... by DavidTC · · Score: 1

      I've never seen the point of rectangular copy and paste. What is that, for keeping indenting yet changing the level? Just get an editor that lets you hilight multiple lines at once and Tab or Shift-Tab them.

      All the programming languages I work on are line-based, not rectangle-based. I want whole lines, not whole rectangles.

      OTOH, I feel the same way about the people who don't know you can click before the first character of a line and drag it down to get entire lines at once, so spend ten seconds positioning the mouse before the first character. Or miss the indent of the first line and have to fix that when done.

      --
      If corporations are people, aren't stockholders guilty of slavery?
    2. Re:Typing speed is very important, however... by The+boojum · · Score: 1

      Aside from changing indentation, I've used it for things like turning single column tables into multiple column tables, removing common prefixes from a list, removing commas from aligned numbers, moving table columns in LaTeX source, and moving pieces of ascii diagrams around (for block comments designed to be renderable in ditaa.) Those are just some uses that I can think of off the top of my head.

      I find it one of those things that doesn't seem very useful until you have an editor that can actually do it. Then you suddenly start finding uses for it.

    3. Re:Typing speed is very important, however... by Larryish · · Score: 1

      I had a keyboarding class for one semester of high school, but have been using computers as much as possible (programming, gaming, writing, generally farting around) since the early 80s.

      Instead of touch typing, I use sort of a bastardized 4-finger hunt-n-peck. The fingers know some common sequences of letters. As a result, the typing looks more like "flailing at the keyboard" than actual typing.

      This typing test:

      http://www.typeonline.co.uk/typingspeed.php

      gave a result of 54 wpm with 4 errors.

      So much of what is done at a computer (for anybody who isn't a casual email-and-Facebook user) involves control keys and symbols... is touch typing really useful?

  21. Atwood is clueless by Anonymous Coward · · Score: 0

    Anyone who thinks typing ability is important to creating useful computer program is probably a clueless programming wannabe.

    My most important work in the course of developing a program happens during requirements gathering and algorithm development which is done with a pencil and paper.

    Anyone who just sits down and starts typing (for anything more than a couple lines of shell script) is an uneducated and inexperienced novice and anyone who hires someone who designs and writes at the keyboard deserves what they get.

    Signed,
                              A retired old fart who began with FORTRAN and COBOL and is still writing personal use stuff in C++ and Python

  22. No by Eudial · · Score: 1

    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.

    --
    GAAH! MY PRINTER IS ON FIRE!!! PUT IT OUT! PUT IT OUT!
    1. 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 :^)

    2. Re:No by TheRaven64 · · Score: 1

      Modern IDEs autocomplete documentation and explanatory comments for you? That's pretty neat. I obviously need to upgrade. The difference between an okay programmer and a good programmer is not in the code the compiler sees, it's in the code that the next person reading the code sees. It's possible to write the same algorithm in two different ways that will generate exactly the same AST, but only one of which is readable and easily comprehensible by another human. See the Obfuscated C Contest for extreme examples of the other kind.

      --
      I am TheRaven on Soylent News
    3. Re:No by Eudial · · Score: 1

      Modern IDEs autocomplete documentation and explanatory comments for you? That's pretty neat. I obviously need to upgrade. The difference between an okay programmer and a good programmer is not in the code the compiler sees, it's in the code that the next person reading the code sees. It's possible to write the same algorithm in two different ways that will generate exactly the same AST, but only one of which is readable and easily comprehensible by another human. See the Obfuscated C Contest for extreme examples of the other kind.

      Good programmers write code that doesn't need a multi-paragraph description and line-by-line comments. The structure of the project should obviously be documented (how does the modules connect, and so forth), and any caveats or unexpected behavior in for example boundary cases, but beyond that, good code documents itself.

      This is a pathological degree of documentation (but none the less all too common):

      /** Adds two numbers
            @return The sum (a + b)
            @arg a The first number
            @arg b The second number */

      int sum(int a, int b) {
          return a + b;
      }

      The function does what it says on the box, so you don't need to comment it.

      --
      GAAH! MY PRINTER IS ON FIRE!!! PUT IT OUT! PUT IT OUT!
    4. Re:No by TheRaven64 · · Score: 1

      Good programmers write code that doesn't need a multi-paragraph description and line-by-line comments.

      Spoken like someone who's never worked on a nontrivial project. The comments are there to explain why a particular approach was chosen, what the pre and post conditions are, what the invariants are, and so on. If you're using a language like Lisp, Erlang or Eiffel, then some of these can be in the code. If you're using a language like C, then they can't. If you're writing a public library, then each of the methods should have a documentation comment that can be extracted and presented to people who aren't looking at the code.

      Your sum example is nonsense, because the comment is useless. Yes, it should say 'Returns the sum of two numbers,' but it is missing two pieces of crucial information that any decent programmer would put in the comment:

      • Why does this function exist at all, when it's just wrapping a basic operator in the language? This is the most important, because it either doesn't exist (in which case the function should not), or it is quite subtle and needs to tell the next person to work on the code not to remove it.
      • What is the behaviour on overflow or underflow (wrapping, trapping, saturating, undefined)?These are obvious for someone familiar with the language looking at the implementation, but they should be part of the interface documentation.

      Without this, the doc comment is useless. Someone coming to the library will see the sum() function and wonder what it's for. Someone seeing it used will not know why it's used, or what happens in corner cases (is it the same as the + operator, or something different?).

      --
      I am TheRaven on Soylent News
    5. Re:No by DavidTC · · Score: 1

      good code documents itself.

      Uh, no. Obvious code documents itself.

      You need to document why you're doing something that isn't immediately obvious.

      Perhaps that's what you meant by 'unexpected', but that's not really the same thing. It's entirely possible to see what code is doing, but have no idea why on earth it would need to do that.

      In fact, having 'unexpected' code is probably the bad idea. Do not document that, just don't do that. Code should not do things people do not expect that code to do, with a very very few exceptions for weird optimizations that are necessary. Don't use Duff's Device unless there's a really good reason. (Remember, premature optimization is the root of all evil.)

      Or, in other words, document why, not what. When code was written, it was written for a reason. If any programmer cannot look at the code and figure out the reason that needed doing, it needs documenting. (Whereas if they can't figure out what's it's doing, or how it's doing what it's doing, it needs new code, not comments.)

      Which, incidentally, means that your sum() example needs documenting, because it doesn't appear to serve any useful purpose. Is there a particular reason that someone would need a function call to add two numbers, considering it's a built-in language feature? Pretending there was a reason, and this wasn't just a silly example, you need to tell us that reason. (Perhaps you're storing a pointer to that, and bunch of other functions, and need to call one of them without knowing in advance which one?)

      And, incidentally, writing a function that probably shouldn't exist because it's so short to show how much 'needless' documentation there is is stupid. There's a damn good reason to document parameters and results for function in a standard format. It's a standard place to state exactly what the function is expecting, so people don't get tripped up when they pass NULL and it blows up.

      Of course, people who complain about documentation like that have probably never worked on a project where different people are responsibly for different aspects.

      --
      If corporations are people, aren't stockholders guilty of slavery?
  23. what about mental load of slow typists by Locutus · · Score: 1

    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 looking for a key or backspacing because I typed wrong and even looking for the backspace key when I do mistype.

    So if coders write their code down on paper and then transpose it into the computer, TFA is good enough but I doubt that's what is happening. If they code using UML diagrams then that would be helpful too but I don't see much of that.

    LoB

    --
    "Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
  24. 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.
    1. Re:Yes, and no... by Anonymous Coward · · Score: 0

      Agree completely. Programming is a pure thought process. If your typing speed is getting in the way of your thoughts, then it's making you less productive, sometimes significantly so. And I have seen this time and time again. The best programmers I know are great on the keyboard; the worst programmers I know are hunt and peckers. This is anecdotal from my life, but I've noticed the correlation for some years now. Yes, most of the time one is programming one is NOT typing, one is thinking, but when it is time to put thoughts into code, if the typing and finding of keys is another thought process that is heaped on top of the problem solving, it's only going to make you a less effective programmer.

    2. Re:Yes, and no... by DCFusor · · Score: 1

      For some problems, it's not just noodling out a solution. Sometimes (think hard realtime stuff) you just can't complete the top-down without knowing something of the performance from the bottom up side -- and if you trust the books or the model in your head, you're setting yourself up for disappointment. Do you really think that anything utterly cool, fast, well written still contains most of the code originally written? Maybe it's all that other 70% or more of the code you want to be able to type fast -- the stuff that tells you how to do the rest, where you learn how the libs work, where you learn how it all interacts. Once you know all that, more often than not, typing the final program is not an issue much.

      --
      Why guess when you can know? Measure!
    3. Re:Yes, and no... by Eskarel · · Score: 1

      Thing is though, if you're doing the whole hunt and peck you're allocating thought to finding the keys, so you're actually further reducing rate_of_thought. No on says you need to type a thousand words a minute, but touch typing is really a rather useful skill.

      Not to mention the fact that despite the prevalence on Slashdot of people who claim that they're "true" programmers, and who seem to do no documentation and claim to spend 99% of their time thinking about what they're typing and very little time typing, there are actually dramatically few jobs like that, and even fewer bosses who will actually put up with that sort of thing.

    4. Re:Yes, and no... by EnsilZah · · Score: 1

      If you can type faster than you are currently thinking/creating/"solutionizing"...

      Does your language of choice happen to be Objective-C?

    5. Re:Yes, and no... by Anonymous Coward · · Score: 0

      Not to mention the fact that despite the prevalence on Slashdot of people who claim that they're "true" programmers, and who seem to do no documentation and claim to spend 99% of their time thinking about what they're typing and very little time typing, there are actually dramatically few jobs like that, and even fewer bosses who will actually put up with that sort of thing.

      Yeah, I'm finding it a bit weird.

      Yes, when you program, you end up doing a lot of stuff besides sitting there and typing. Like typing a test thing out and running it. Or throwing in some debug statement and running that. Or all sorts of stuff besides magically sitting down and pumping out code...but most of it requires, tada, typing also.

      Programmers do not sit and stare into space. There might be 60 second of staring before starting something to think about two different ways of doing it, or even five minutes writing something down, but then there's an hour of typing, at least. (And the 'writing something down' is probably *also* typing.)

      At least half the code programmers write is entirely bound by typing speed. They know what they want to say, they want a damn loop, where they compare each position in the array to a known value, which took more time for me to describe and you to read than to 'think of using'. And it takes even longer to type. That's the 'easy' code. (As programmers become better, more and more code becomes 'easy' in that they already know how to solve it without real thought.)

      The rest of the code, the non-easy stuff, is pausing to think for a second (Literally, yes, just a second or two), and figuring out exactly what order of operations the boolean tests in this if statement need (or whatever) and then typing, and then pausing again. Not both at the same time. You can't solve actual programming problems while writing a line of code. And the idea you can think while hunting and pecking is just absurd. No. Just no.

    6. Re:Yes, and no... by Bigjeff5 · · Score: 1

      Thing is though, if you're doing the whole hunt and peck you're allocating thought to finding the keys, so you're actually further reducing rate_of_thought.

      That's only true if you are new to hunting and pecking, and happens to be 100x greater problem for the new touch-typist.

      If you've been coding daily for a year or more there is no way in hell you are much, if any, thought to finding the keys. Just like if you've been touch-typing daily for a year you don't have to think about where each finger goes. For the first few months though, a new hunt-and-pecker will kick the pants of you for typing speed.

      The one and only advantage an experienced touch-typist has over an experienced hunt-and-pecker is speed. You are using 9 fingers (sorry, only one thumb counts ;) instead of two, and the result is at least a 2x and up to an 5x typing speed improvement over the long term.

      Where a hunt-and-peck has to watch the keys to ensure he hits the right one, a touch-typist must constantly evaluate what they just typed to ensure they did not commit a typo. It's the same thing, only different.

      It's definitely worth it to learn to touch-type, frankly typing is a chore without it. But to think it has any more than a very minor affect on a person's programming ability is ignorant.

      Atwood looks down on hunt-and-peck programmers because he assumes they don't care about their craft enough to learn to touch-type. That's as stupid a reason as I could ever come up with to look down on someone. There is absolutely no merit to it. A good programmer is a good programmer because he programs well. That includes good documentation, good comments, and meaningful identifiers. Touch typing has fuck all to do with it.

      For the record, I learned to touch type 15 years ago, and I think everyone who uses computers should invest the time and effort to learn how. It's very much worth it - it just makes communicating digitally so much easier. I'm not stupid enough to believe being able to type fast makes you a better programmer, though.

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
  25. it. certainly. does. when. you're. waiting. on. by Sarusa · · Score: 1

    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.

    1. Re:it. certainly. does. when. you're. waiting. on. by Bigjeff5 · · Score: 1

      If four of you were working on the problem, why didn't you have the fastest typist pounding out the commands?

      Sounds like you guys suck at teamwork. I hope they don't pay you all that much. (I kid! I kid!)

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
    2. Re:it. certainly. does. when. you're. waiting. on. by Sarusa · · Score: 1

      No, no, that's a fair question.

      The answer being, of course, that he was the Senior Developer and it was a bug in his system. Honestly, a single one of the other three could have found and fixed it in less time.

      We certainly sucked at management.

  26. I just finished reading by Anonymous Coward · · Score: 0

    I just finished raCoders at Work, Reflections on the Craft of Programming.

    The book is a series of interviews with influential programmers and several of them admitted to being slow typists, and thought it didn't matter that much.

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

    1. Re:Of course it does by hedwards · · Score: 1

      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 checked for precision and errors. But because we demand that consistency and reliability the engineers designing them have to spend that extra processing time ensuring that it works right.

      But, despite the bleeting of those damned grammer nazis, those typos back there hardly change the meaning of the sentence in any meaningful way, anybody with half a mind knows what I just said.

    2. Re:Of course it does by Thing+1 · · Score: 1

      But, despite the bleeting of those damned grammer nazis, those typos back there hardly change the meaning of the sentence in any meaningful way, anybody with half a mind knows what I just said.

      Yes, and despite the bleating of the compiler warnings, the typos in your code will lead to correctly functioning programs. I'm sorry, but quality is quality.

      --
      I feel fantastic, and I'm still alive.
    3. Re:Of course it does by Teckla · · Score: 1

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

      Someone that comes up with a solution in their head and somehow loses track of what's going on due to typing speed may want to consider a different career/hobby.

  28. Quantity vs quality by houghi · · Score: 1

    If a novelist writing 1000 words per day were able to type infinitely fast, he or she could save maybe an hour per day.

    That is assuming that a novelist already knows on what to type and does not change his story while he is typing.

    Perhaps they think of "journalists" or a better name would be "news paper fillers". A novelist will be payed by quality more then by quantity. A newspaper filler will be payed more by quantity.

    Just typing this short piece I went back 6 times to change (small) and I already knew what I wanted to say. (and changed 5 to 6, because I added the word small.)

    --
    Don't fight for your country, if your country does not fight for you.
    1. Re:Quantity vs quality by grcumb · · Score: 1

      If a novelist writing 1000 words per day were able to type infinitely fast, he or she could save maybe an hour per day.

      That is assuming that a novelist already knows on what to type and does not change his story while he is typing.

      If you don't know what you're going to write, you should probably back away from the keyboard. Conversely, if you don't change what you type, you probably shouldn't be writing at all.

      Perhaps they think of "journalists" or a better name would be "news paper fillers".

      Don't make me laugh. If you don't think that conveying the facts of a story to fit an exact word count is hard, or that short prose is more difficult than long, you've never written any amount of material for publication. That's precisely why bad news writing is so much more evident than bad prose in a novel.

      A novelist will be payed by quality more then by quantity. A newspaper filler will be payed more by quantity.

      No, a news writer gets paid according to the prominence of their stories, If they're bringing in good quality news (i.e. good reporting and good writing), then they'll get paid well. Novelists, on the other hand, get paid according to the whim of the publisher, and that is derived from an educated guess about how well the book will sell. Dan Brown makes millions from shoveling buckets of literary shit while Graham Greene (probably the best writer in English in the second half of the 20th C) remains a somewhat minor figure outside of literary circles.

      Just typing this short piece I went back 6 times to change (small) and I already knew what I wanted to say. (and changed 5 to 6, because I added the word small.)

      "Even when composing this short piece, I made no fewer than 6 small edits."

      Now for the moral that programmers have been struggling to express all through this thread: Good writers are good editors.

      --
      Crumb's Corollary: Never bring a knife to a bun fight.
  29. 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.
    2. Re:The answer is "No" by Anonymous Coward · · Score: 0

      Mod parent up

    3. Re:The answer is "No" by Anonymous Coward · · Score: 0

      In fact, I saw the article in question, went to his page, and disagreed with every single post on it, all within ten minutes. I just can't decide if Atwood believes everything he writes, or trolls in order to increase his page view count.

    4. Re:The answer is "No" by Anonymous Coward · · Score: 0

      Any reasonably intelligent person should be able to learn to touch type in a week. In my opinion, any programmer that hasn't learned to touch type either (a) not smart enough to be a good programmer, or (b) too stuck in his ways to learn new things.

      Neither is a good sign; I prefer to work with smart people who learn continuously.

    5. Re:The answer is "No" by artg · · Score: 1

      Well, I'd never heard of him before. Perhaps, outside of some small group of fans, this represents his true worth. And I won't be looking to find out what other opinions he might have - I can do without that sort of sloppy thinking, thanks.

    6. Re:The answer is "No" by Anonymous Coward · · Score: 0

      Any reasonably intelligent person should be able to find the flaws in Atwood's analogies...

      Huh? Analogies are not intended to be perfect. More so, being able to "synthesize several decent counter-arguments" does not make the other side wrong. In debate, it was always a given that anybody can do these things (i.e., find flaws and create counter arguments). This doesn't mean shit about which side is correct. And like the other AC said, anyone who isn't retarded can pick up touch typing in a few minutes. I exagerate, slightly.

    7. Re:The answer is "No" by BitHive · · Score: 1

      Nobody said analogies have to be perfect or that counter arguments are always valid. In this case though, the flaws are severe enough that correct counter-arguments are trivial to come up with. While it may be relatively easy to learn to type quickly, the quality of a program still has zilch to do with how quickly its source code was typed in. Such a suggestion is akin to saying that water poured too slowly is not as refreshing. Sorry, Jeff.

  30. Documentation and comments by TheBiGW · · Score: 1

    For the code itself, as other people have said, I would far prefer an expert to hunt-and-peck 100 lines of awesome than have some random person bash out 1000 lines of WTF at 150 WPM. Where the real difference comes in IMO is the documentation/commenting of said code. In my experience, if someone has difficulty typing quickly they are far less likely to document and comment their code as frequently as someone who can type well. So it's still worth learning even if you are an expert :)

    --
    Build a man a fire and he'll be warm for an hour. Set him on fire and he'll be warm for the rest of his life.
    1. Re:Documentation and comments by tombeard · · Score: 1

      Freshman engineer and a very poor typist. I wrote at a quite long (for me) Fortran program and had my zillion wpm journalism friend type it (onto punch cards) in for me. It took me a week to find all the D0 (not DO) loops. That was the first and last time I ever asked anyone to enter code for me. Maybe it is a problem with modern languages that leads people to think that the keyboard is some kind of typewriter. I know for a fact that it is actually a key entry pad of a programmable device and so I often input 1 key press at a time, carefully. I like it, it's way faster then toggle switches.

      --
      The reason we subjugate ourselves to law is to better procure justice. If law does not accomplish this purpose then it m
  31. 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
    1. Re:Yes by Anonymous Coward · · Score: 0

      And, of course, all those truly transparent two-letter utility names in Unix are the product of a time when programmers weren't typists.

    2. Re:Yes by RzUpAnmsCwrds · · Score: 1

      This is why you absolutely, positively should not try to write code without an IDE - or at least an editor that offers a wide range of completion options (unfortunately I find that the people who use Emacs or Vim don't actually use the completion features they have - perhaps because they aren't as good as a good IDE like Eclipse).

      Yeah, Eclipse takes 400MB of memory when I'm working on a medium-sized project. But it enables me to do what is right rather than having to do what is easy, because doing what's right is easy. I can use long identifier names when they're appropriate because they will be completed. I can use an interface if it's appropriate because Eclipse will auto-generate the method stubs anyway, so I don't have to type them twice. I can rename something if the name is inconsistent or confusing because it's easy to do. I can have my imports in the correct order and include only what's being used, because Eclipse does that for me. I can write Javadoc comments because Eclipse generates the right boilerplate.

      You can do all of this without any code completion or refactoring tools. But it's more likely that you'll make a mistake at some point and it's more likely that you will get lazy and develop bad habits like using undescriptive variable names.

  32. Yes it does by Anonymous Coward · · Score: 0

    http://dep.posterous.com/not-using-scrollwheel

    Typing speed matters especially when you are pairing with someone on some problem.

  33. Typing speed (editor speed) gives freedom. by knubo · · Score: 1

    I think it matters a lot. Here is my thoughts about typing speed:

    - Speed is good, but think first, program second.
    - If you can get what is in your head down into your editor faster, you will get quicker feedback on your code. You can then try out more stuff in a shorter timespan.
    - Not all of your code will be rocket science. A lot of code is and will be boilerplate code and the faster you get to get it down and out of the way the better.
    - If you don't have quick editor speed you probably don't know your editor and you end up doing stuff you should not have done. (your editor should)
    - You should document your code, maybe on a concept level (on an wiki or something similar). Then you need to write and if you don't type fast you'll use forever on this.

  34. 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 Kjella · · Score: 1

      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 keyboard layout hotswitch available if you have more than one layout and it works just fine under both Windows and Linux - probably Mac too. How about trying to find a solution instead of just demanding that the world should revolve around the US and that everyone should switch to a US layout?

      --
      Live today, because you never know what tomorrow brings
    3. 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.
    4. Re:More important: Knowing the English keyboard by Burnhard · · Score: 1

      Same with laptops. They are pretty awful keyboard-wise. If you're going to code or debug on one, it's almost always better to plug in a proper desktop keyboard.

    5. Re:More important: Knowing the English keyboard by dshk · · Score: 1

      When I learned touch typing I thought about learning both English and my native language keyboard layout. I had not tried it. It seems to me that it is unlikely that I can be proficient in touch typing on two very different keyboard layout. I also write code in English, but I write many things in my native language, like e-mails. I found a better solution. I use a Kinesis Advantage programmable keyboard, and I remap all these keys to actually usable positions. For example "{" is Alt-Gr S. I think that is even better than on the English layout... There are also software utilities for remapping keys, but, for example, on Ubuntu this is built-in functionality.
      Yes, it does not work on another machine. But I rarely work on another machine for a long time. If I do, then I bring my keyboard too.

    6. Re:More important: Knowing the English keyboard by dshk · · Score: 1

      Same with laptops. They are pretty awful keyboard-wise. If you're going to code or debug on one, it's almost always better to plug in a proper desktop keyboard.

      Yes, you have to plug in a large monitor, anyway. Or two :)

    7. Re:More important: Knowing the English keyboard by Anonymous Coward · · Score: 0

      I currently live in Japan, and I have found the Japanese keyboard to be quite good. For a start, the @ key is separate, right of the P and not requiring Shift, the square and curly braces are together on two dedicated keys next to the Enter key, colon and semicolon are on separate, no-Shift keys.

      But then, I'm not a hard-core programmer, just a dabbler.

    8. Re:More important: Knowing the English keyboard by Opportunist · · Score: 1

      Hell, using a word processor on a laptop keyboard is a nightmare as soon as you're getting to formatting! Just yesterday my dad asked me to format something he wrote. With their weird positioning of insert, pgup, pgdn, ... it is a PITA to move about in the document.

      Programming on a laptop is fairly easy compared to that. But still... I would prefer a normal keyboard over the sorry excuse laptops come with any time!

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

      Actually I touch type in both layouts well. Even with y and z swapped and most special characters remapped. Mostly because I use them for two very distinct roles: English for programming, my native one for writing.

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

      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?

        Perl might be the ultimate typing test for programmers? ;-)

        SB

    11. Re:More important: Knowing the English keyboard by Almir · · Score: 1

      This is, presumably, because most of the programming languages (you're likely to use) were created by English speakers, so the keyboard layout they are easiest to code with is UK/USA. Had the language been invented by a Polish guy, you can bet he'd be using an entirely different character set to end lines etc.

    12. Re:More important: Knowing the English keyboard by Anonymous Coward · · Score: 0

      I get you in general, but FYI, the grotesque Polish typewriter layout you mentioned is hardly used by anyone. Everyone uses what's known as "Polish programmers's layout" (despite the name it really is *everyone*), which is the US layout with some AltGr combos for diacritics. Hardware-wise it's plain US keyboards around here.

    13. Re:More important: Knowing the English keyboard by marga · · Score: 1

      Using a standard keyboard is ONLY important if the people involved are from different keyboard-layout regions. And what is important is that you agree on a standard, not that the standard be English.

      About what you mention of the brackets, you should take a look at the Latin-American Spanish keyboard that has {} without modifiers. I find this pretty convenient to code in {} using languages. Another possibility is to switch to Python, so that you only need to know where the : is.

      --
      Margarita Manterola.
    14. Re:More important: Knowing the English keyboard by ewanm89 · · Score: 1

      I happen to have worked with a german who actually hated having the German layout on his laptop when writing code, I would point out that most programming languages use ascii character set and no more not even most lating characters, so why would you want them when coding?

    15. Re:More important: Knowing the English keyboard by Opportunist · · Score: 1

      Well, English being the one most inventors of programming languages used means that it is probably also the one that lends itself well to the task. I didn't look at the Latin American Spanish one yet, thanks for the hint, I'll take a look.

      But Python... I kinda doubt it can replace C++.

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

      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.

      In Liepzig, Germany, I saw some little web terminals (running IE 6, natch) with a sticky on them explaining how to type the @ sign.

    17. Re:More important: Knowing the English keyboard by Anonymous Coward · · Score: 0

      "Polish writing keyboard layout"? The most common (used by 99% of people in Poland) keyboard layout is called "polski programisty". Yes, it's programmer's layout! - contrast with old "typist layout". It's identical to US keyboard - special characters are made using left-alt key modifier (alt+o=ó).

  35. Maintenance by findoutmoretoday · · Score: 1

    Once those fast typist have produced all those shitloads of code,  the program goes in maintenance.  And there you are happy to produce five lines of code at the end of the day, thinking that the same amount of thought on ten times less code would have produced better results.

  36. It might be of importance if you are studying... by denzacar · · Score: 1

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

    --
    Mit der Dummheit kämpfen Götter selbst vergebens
  37. 10 times more tired by holophrastic · · Score: 1

    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 why I've developed platforms with a huge increase in code density, thus requiring me to type even less -- equating to greater typing speed not unlike a having richer spoken vocabulary.

    Yes, it matters. Not to an infinite speed, but to a speed congruent to the complexity of the code being written, or to the speed of the mind conceiving that complexity -- whichever is lesser.

    This is reminiscient of the qwerty vs dvorak scenario. While any human sufficiently adept at typing will reach similar rates on either layout, the dvorak results in a reduced amount of finger movement, resulting in greater stamina without increased endurance. My next keyboard will take that further, inspired by the dvorak layout's optimization for English by adjusting some of those optimizations for programming, specifically within my platforms.

  38. K-locks? by Anonymous Coward · · Score: 0

    What happened to K locks?

  39. Confounding variable. by Anonymous Coward · · Score: 0

    I think what happens is that it takes practice to make a good programmer, and by practicing programming (writing experimental code, etc.) one naturally improves his/her typing speed. But speed, in itself, should not affect programming skills too much as long as it's not slow enough to disrupt one's thought flow.

  40. WPM isn't important, touch typing is. by Anonymous Coward · · Score: 0

    I can't imagine WPM as a measure of who is the better programmer. At the same time, I can't imagine anyone typing all day every day who was still a hunt-and-peck typist. I'm not saying that they're no good, I'm saying that if they had any sense, they'd do whatever it took to learn touch typing. You don't have to manage a high WPM: I was at no more than 30 WPM for years, until I had practiced enough that I'm in the 70-80 range now. But if you're using a keyboard all the time, it only makes sense to have learned to use it well.

    I had to take "Secretarial Office Procedures" in High School to learn this stuff. In spite of the name, the skills have served me very well. I don't think anyone can complain about having to buy typing tutor or whatever and spending a couple of weeks learning it. I certainly wouldn't take someone seriously as a skilled computer user if they couldn't manage touch typing at any WPM, unless they were somehow physically disabled.

  41. Does he also measure productivity by LOC? by Anonymous Coward · · Score: 0

    Because the same flawed logic applies.

  42. Keyboard for blondes by innocent_white_lamb · · Score: 1

    This is the most amazingly ridiculous keyboard I've ever seen.

    http://www.keyboardforblondes.com/

    --
    If you're a zombie and you know it, bite your friend!
    1. Re:Keyboard for blondes by iammani · · Score: 1

      Actually, there should only be one key - "Do What I Want" key.

    2. Re:Keyboard for blondes by Anonymous Coward · · Score: 0

      there should either be a "Be My Product" bit in the cpu, or the compiler should provide a "Be My Product" function.

    3. Re:Keyboard for blondes by Anonymous Coward · · Score: 0

      The funny thing is, I've worked with people who think that's how it works.

      Fixing a bug is just as simple as clearing the "bug" bit.

      Implementing a feature is as simple as telling the little man inside your product to behave differently.

  43. Quality vs. Quantity by Dutchmaan · · Score: 1

    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.

    1. Re:Quality vs. Quantity by SJS · · Score: 1

      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.

      --
      Pick One: http://www-rohan.sdsu.edu/~stremler/sigs/sigs.html (Note - disable Javascript first!)
    2. Re:Quality vs. Quantity by dshk · · Score: 1

      I agree, but by definition the fastest typist in the world rarely makes any mistake. In touch typing competitions a single mistaken key has a huge penalty. I don't remember the exact numbers, but even during learning, after 3 mistakes in two paragraphs the teacher stops reading the work... One mistake in a few hundred characters is usually acceptable.

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

    1. Re:it matters a lot by Anonymous Coward · · Score: 0

      I second this, but not so about the code, but comments and documentation.

      I have found people who are not, I guess you could say, "fluent" at typing tend to avoid it, because it's a pain in the ass for them. In the same way I tend to avoid using my second language.

      On one hand this can result in concise comments and documentation, on the other it can result in them being horribly lacking.

    2. Re:it matters a lot by noidentity · · Score: 1

      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

      Compare

      for ( int digit_index = 0; digit_index < 10; digit_index++ )

      for ( int i = 0; i < 10; i++ )

      I'll take the second version. A touch-typist may be able to type the first nearly as quickly, but my eyes will still take more time parsing the verbosity. Verbosity is good where a variable's scope is large or it's obscure and not used many times.

    3. Re:it matters a lot by h0ss · · Score: 1

      Yeah, no real programmer would use digit_index in a trivial loop. But if that loop becomes nested, or if the variable is used in multiple locations within that loop, it *can* matter.

    4. Re:it matters a lot by Anonymous Coward · · Score: 0

      //issue #24654 -> yup thats a bad comment, usually there is a verbose description of the problem which you can easily copy/paste.

      Variables like i and j are usually iterators which you can give any stupid name you want, usually not really interesting imo. Its usually more useful to explain what you are doing in a loop then worry about useful names. On a sidenote on that, functions of multiple pages is a matter of style. You can make 4 or 5 functions of say 10-20 lines that do the same as 2 pages of a single function. If you write like that most things are pretty readable. Of course writing more functions involves more typing then 1 big fat unreadable function.

      Think what it comes down to is: do slow typers write unreadable code more often then fast typers or not. I would say that a slow typer probably is less inclined to make huge comments. But you can also use mathematical notes which can be quite verbose and explain a lot. Of course you need some math base to understand comments like that, but it beats french comments any day for me.

  45. Missing the point by Anonymous Coward · · Score: 0

    Atwood's original point is that he personally can't take people seriously if they can't type yet intend to make a career out of programming. I don't know what he means by "slow" but in my mind it's someone who is literally looking down at the keyboard looking for the right buttons. Clearly, if the user is physically unable to type quickly, or is using a new keyboard layout, it's a different matter.

    Some brilliant programmers may not be able to type but I wouldn't be able to take them seriously if I was hiring for a position -- unless the guy was good enough that I would be willing to hire a transcriptionist.

    On the other hand, for everyone saying "I'd rather have 10 lines of excellent slowly written code than 100 lines of crap", I don't think he ever said that being a fast typist makes you a good programmer. I'm sure if you asked, he'd say "I can't take people who write bad code seriously as programmers."

  46. Case in point by Anonymous Coward · · Score: 0

    I did not become a programmer because even though I could come up with some of the best algorithms for my assignments typos and syntax errors were just unbearable. It was before the proliferation of IDE and syntax highlighting...

  47. WPM Important... But Not For Programming by ATestR · · Score: 1

    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 made by touch typing is not significant.

    --
    âoeAny society that would give up a little liberty to gain a little security will deserve neither and lose both.
  48. Re:Fast Well by Nichotin · · Score: 1

    Fingers on the keyboard

    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 rather use the index finger.

    (As a side note, I do use the Dvorak layout, but this is not a question about layouts.)

  49. indicator of passion by Speare · · Score: 1

    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. Reminds me of the scene in Brazil where the co-worker claims he's "a bit of a whiz with these things" while hunting and pecking incompetently.

    Learning ANY physical skill is easier if you are not paying 100% attention to the skill itself. Learn to roller skate by chasing a tennis ball around a parking lot. Focus on the ball, and your feet will "figure it out" on their own. Back in the ages of MUDs (that's MMORPGs in all text format, for you kids out there), I found the fastest way to learn to type quickly was to try to hold a conversation real-time. IRC is a sufficient alternative. If you don't want others to get bored with your slow responses, you will naturally speed up your typing.

    --
    [ .sig file not found ]
  50. You're looking at it all wrong... by Zapotek · · Score: 1

    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.

    1. Re:You're looking at it all wrong... by Bigjeff5 · · Score: 1

      Yes, but that isn't what Atwood said.

      He said he has no respect for programmers who cannot touch type.

      An experienced hunt-and-peck programmer can type around 30 wpm. That is not an impairment, at all. In fact, a lot of the old-school programming gods never learned to touch-type. They programmed in long-hand and key punch operators (who could hit 200+ wpm) would punch the cards for them. Typing was only taught to girls back in the day (boys couldn't be secretaries, you see - isn't sexism grand?), and there was practically no such thing as a girl who could program, so hunt-and-peck was all their was. Touch-typing on a QWERTY keyboard is bizarre at first, and excruciatingly slow until you become proficient, so if you were a busy computer programmer you probably didn't have time to invest in a touch typing course.

      In other words, according to you and Jeff Atwood the brilliant minds who were doing hardcore, machine language level programming, inventing things like assembler and operating systems, weren't very good programmers.

      Nice. Hazard a guess about how much respect I have for people who so ignorantly narrow minded.

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
  51. Brilliant coders can be terrible writers by sandytaru · · Score: 1

    I find myself cleaning up the technical documentation of very smart people. I describe it as thus: "They know exactly what they're talking about, and they assume I do as well." But writing a technical manual isn't the same as writing code. I'm a technical writer, not a coder, so I naturally hum along at 60 WPM without even thinking about it. But the coders whose writing I decipher are all hunt and peck typists at best. Does their slow typing affect their work output? No, because it's clean, brilliant code, and because I'm paid to translate it into English for them. (Or more precisely, document the steps that includes their coding.) They can't do what I can do, but then again, I can't do what they can do. They're smarter than me in many respects - I can't think in looping algorithms or batch script processes. But I'm a better writer, and subsequently, a better typist.

    --
    Occasionally living proof of the Ballmer peak.
    1. Re:Brilliant coders can be terrible writers by TheRaven64 · · Score: 1

      I disagree. Good code has to do two things: It has to communicate the developer's intent to the compiler, and it has to communicate the developer's intent to the person maintaining the code. If your code only achieves one of these goals, it is not good code and you are not a brilliant coder. It doesn't matter how great your algorithm is, you've only done half the job.

      --
      I am TheRaven on Soylent News
    2. Re:Brilliant coders can be terrible writers by zigamorph · · Score: 1

      Within reason of course. It is hard for the code to be much simpler than the problem it solves or the algorithm it implements. Some code will require a bit of study to understand, no matter how cleanly you write it. Sometimes it makes sense to use a less optimal algorithm to simplify the code but sometimes you actually need the performance.

    3. Re:Brilliant coders can be terrible writers by Thing+1 · · Score: 1

      I agree completely. Not all coders understand that they are communicating to two (perhaps more) completely separate audiences.

      --
      I feel fantastic, and I'm still alive.
    4. Re:Brilliant coders can be terrible writers by TheRaven64 · · Score: 1

      And that's what comments are for. Sometimes the comments can contain code - if I'm writing an optimised version of an algorithm, I'll often leave the naive version in a comment - this also helps debugging, because you can remove the optimised version easily and see if it is the cause of a problem. It also helps to list the assumptions that are made in optimising - for example, not requiring a NULL check or an overflow check because the input will always be in a certain range.

      --
      I am TheRaven on Soylent News
  52. Is it a cultural thing? by serutan · · Score: 1

    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. But it seemed to bother him a lot. He said that if he was typing in a "for .. next" loop and I was typing in a "for .. next" loop, I would get mine done faster. I kept telling him I didn't have any special tricks for typing fast and that he shouldn't worry about it. But he just wouldn't buy it; he genuinely seemed to believe I was withholding something from him so I would have what he saw as an edge over him. I've always thought that the importance he attached to typing speed was kind of strange.

    1. Re:Is it a cultural thing? by Thing+1 · · Score: 1

      And I've worked with some people (not only from India) who think that I am holding out on some critical thinking skill that I could easily teach them. I can't. It's a lifetime of experience. And also brain plasticity; I was born with a bum left eye.

      --
      I feel fantastic, and I'm still alive.
  53. Barrier-free by innocent_white_lamb · · Score: 1

    I think the major factor is to have the keyboard not be a barrier to thought. I have been typing for over 40 years; I learned how to type "properly" in Typing Class in high school on old Underwood manual office typewriters.
     
    I type automatically, meaning that I don't think about what I'm doing any more than I have to think about breathing. The words just appear on the screen in front of me as I make decisions about what I want to say. This allows me to think about what I'm creating (source code, email message, instructional write-up, etc.), rather than worrying about the mechanics of actually typing it out.
     
    The point being that when the keyboard is not a barrier, it frees you up to think about what you're trying to accomplish and the rest just happens.
     
    This, to me, is the value of knowing how to type properly if you're a programmer. You only have to do one task -- deciding how to write the program -- instead of both that and having to figure out how to type it up as well.

    --
    If you're a zombie and you know it, bite your friend!
  54. 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
  55. Yes it matters... by jojo78 · · Score: 1

    What if I have three pages of documentation open in a web browser, my IDE, and other software development programs running?

    I can't envision a poor typist switching applications, editing code, and using other shortcuts without being miserably unproductive.

    Being miserably unproductive would definitely effect the quality of the code.

  56. Fast typing has helped me sometimes by Saint+Stephen · · Score: 1

    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 or reordering or renicing :-) something in some way.

    1. Re:Fast typing has helped me sometimes by Thing+1 · · Score: 1

      It's funny, every time I come back to a Unix (or Linux) system, and I use vi, my fingers remember how to get around at about the speed I can think. It really blows my mind each time, as I predominantly work in Windows. Whenever I'm forced to use a mouse, I slow down -- it takes extra time (and energy) to move your right hand that far away from the home row, and back.

      --
      I feel fantastic, and I'm still alive.
  57. Silly. by Anonymous Coward · · Score: 0

    When I am writing code I spend a lot more time thinking about my approach than I do implementing it. That is where the latency is.

    I'm not even talking about the design or whiteboard phase versus final implementation. I'm talking about the translation step from brain to keyboard. Even if you think you know exactly what you want to do, I find I am constantly thinking about it, refining it in my head and on the screen until it fits what I imagined. Sometimes that takes a very long time. Very little of it is spent typing.

    If I may make a lame metaphor of my own experience, not so long ago I was working on something that was very I/O bound. I made some efforts profiling and improving the efficiency of the CPU-bound tasks that did exist. I reduced the algorithmic complexity of a lot of important-seeming tasks. In the end this didn't make much a difference, because I was still doing lots of I/O, and that drowned out everything else.

    In this analogy, typing is CPU. Fetching the code from your brain is I/O. It doesn't matter as much how fast you type, because even with the fastest fingers they will spend a lot of time "waiting" for the ideas to come out of your head. This will easily drown out typing speed.

  58. Yes, but not words per minute by danilo.moret · · Score: 1

    but for random bursts of input when altering or creating new code. Sure speed helps at those times, but not for long times like typists. More like video game accurate shooting from time to time than constant drums playing.

    --
    ^[:wq!
  59. typing skills correlate with other skills by mspring · · Score: 1

    Among my coworkers I seem to see a correlation between their ability to type, their zeal for nice code and even how neatly their cubicle looks.
    -Max

  60. What about disruption of thought? by harlows_monkeys · · Score: 1

    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 much, as long as it is fast enough to keep up with your thought. I don't think it is valid to just look at how many words could be typed at different speeds and note that the difference at the end of the day is not much. If the typing is slower than the thinking, you will find yourself having to interrupt thinking to let the typing catch up. That will be annoying, and will, I think, reduce productivity more than just the raw difference in number of words that can be typed would account for.

    Another factor to consider is communicating with others. Up until recently I had coworkers who worked thousands of miles away. We did a lot of communicating over a company IM server. It always annoyed me chatting with coworkers who typed noticeably slower than me.

    1. Re:What about disruption of thought? by oliverthered · · Score: 1

      ah.. if typing is slower than thinking (which it should be) it's an ideal opportunity to think ahead.
      Thus planning what you are going to do next and how.

      Then you just have to type that out, so not thinking too much about it or typing, and can continue to think ahead or have a conversation with someone whilst coding at the same time.

      --
      thank God the internet isn't a human right.
    2. Re:What about disruption of thought? by Thing+1 · · Score: 1

      I agree, if you can't type fast pick up the phone.

      --
      I feel fantastic, and I'm still alive.
  61. well it depends. by oliverthered · · Score: 1

    If you are based in the US but work on Asian servers than Thai ping speed may well matter.

    --
    thank God the internet isn't a human right.
  62. 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 gerddie · · Score: 1

      That depends on how you define "debugging". Would you put "writing (more) tests" under this definition?

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

      These days, yes.

      Productivity went up when time started getting spent writing automated tests instead of going through the assembly code in a debugger.

      Using a debugger on a complex distributed system is rarely quicker than adding traces to the code, narrowing in on the problem then exposing it through new tests, which also tell you when you've fixed it.

    3. Re:Mod parent up by CAIMLAS · · Score: 1

      Yeah. People who are lauding complex/verbose languages are insane. The only thing I can think is, "OMG I'd go crazy trying to read code like that, how can they stand it?"

      Apparently it's write-once and someone else takes care of the hard work for them.

      --
      ~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
    4. Re:Mod parent up by Alex+Belits · · Score: 1

      Using a debugger on a complex distributed system is rarely quicker than adding traces to the code, narrowing in on the problem then exposing it through new tests, which also tell you when you've fixed it.

      Debuggers are not for debugging -- they are for reverse engineering.

      --
      Contrary to the popular belief, there indeed is no God.
    5. Re:Mod parent up by Yetihehe · · Score: 2

      So why are they named debuggers, not reverseengineers?

      --
      Extreme Programming - Redundant Array of Inexpensive Developers
    6. Re:Mod parent up by Anonymous Coward · · Score: 0

      'Cause most programmers at the time they were invented had to reverse-engineer their own code in order to fix bugs, after it had slipped out of their short term memory.

    7. Re:Mod parent up by BrokenHalo · · Score: 1

      So why are they named debuggers, not reverseengineers?

      Because any non-trivial program is buggered until it has been debuggered.

    8. Re:Mod parent up by Bigjeff5 · · Score: 1

      Because debuggers are for debugging, not reverse-engineering.

      Duh. ;)

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
    9. Re:Mod parent up by Bigjeff5 · · Score: 1

      We're talking about debuggers, not debuggerers!

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
  63. It's not just about speed! by Anonymous Coward · · Score: 0

    Touch typing isn't just about speed. It's also allows one to type without looking at the keyboard. I've seen lots of programmers who could hunt-and-peck at 30+ words per minute, but they couldn't do so while looking away from the keyboard.

    Although raw speed isn't that important when entering code (since typing speed generally isn't the limiting factor in creating software), the ability to type quickly and accurately without staring at the keyboard is a huge advantage while doing other tasks (typing documentation, typing notes at meetings, things like that).

    A programmer who can't touch type is like a carpenter who can't use a hammer.

  64. Does hammering speed really matter for carpenters? by nem75 · · Score: 1

    Well, it sure doesn't affect quality per se. But does it matter if a carpenter knows how to handle his tools or not? Yes it does. Is a carpenter with a high hammering speed more likely to be proficient with his tools than a slow one? Most definitely. So does hammering speed matter for carpenters? Overall it surely does, yes.

    Programming and typing speed? Very much the same.

  65. Source code entry speed is irrelevant. by Urkki · · Score: 1

    Conversation using typed text is the most important communication method in any engineering. E-mail, irc channels, instant messages, corporate MS Office Communicator, bug reports, version control commit messages, source code comments, plain old SW design document, meeting minutes...

    Almost any professional (meaning getting paid to do it, not referring to quality in any way) software development involves more writing normal text than source code.

    Typing speed for normal text matters, and if it's satisfactory, then typing speed for source code follows from that, and will be adequate.

    Oh, and "normal text" means understandable normal text. It doesn't allow too many typos, nor too shaky grammar, before that'll start to hamper communication.

  66. The bottom line by J.+L.+Tympanum · · Score: 1

    90% of programming is knowing how to type.

  67. Re:Fast Well by oliverthered · · Score: 1

    touch typing is where you feel where the keys are (touch)
    I use a different type of typing where I don't have to know where the keys are or look at them either and use, well pretty much anything.

    I find this much better for programming than when I've tried to use touch typing, as I can type with one hand and hold a phone or use a mouse and also because a lot of the keys are pretty far away from the traditional touch typing bumps on the keyboard I don't have that restraint either.

    There is a name for it (basically typing in a trained intuitive manner rather than by touch) but I can't find it. (maybe on the touch typing discussion page on wikipedia as I think I raised it their once. but it appears to have gone.

    --
    thank God the internet isn't a human right.
  68. Re:Fast Well by oliverthered · · Score: 1

    ah it's called blind typing. Touch typing is a subset of blind typing where you use touch instead of sight.
    Though you can blind type without touch typing.

    --
    thank God the internet isn't a human right.
  69. Atwood and Spolsky address this too ... by Krishnoid · · Score: 1

    Schlemiel the painter would be proud. Rewriting this with a block of comments describing the problem with this code, though, might be a reasonable excuse for learning how to touch-type prose.

  70. Obvious answer by WinstonWolfIT · · Score: 1

    Take the project you're on, and do the maths on your source base. The project I'm on has been under an ongoing onslaught of development for 3 years, and the group is clocking about .3 wpm. I do agree that different situations will want a different array of complementary skills in the development group, but if a 10-year developer walks in with a CV and references, the last thing I'm going to do is give him a typing test.

  71. Re:Does hammering speed really matter for carpente by r3x_mundi · · Score: 1

    I completely agree with this. Its not about quantity of lines-of-code or words-per-minute, its about being able to hold an idea as you execute it. Ive seen developers using a laptop keyboard and a trackpad losing focus as they try and implement something and they stuggle with the keyboard and moving the mouse pointer. Someone who has the right tools and knows how to use them well can focus on the higher-order problems more easily. Its the same in any profession.

  72. Good Programmers will get fast at the keyboard by jageryager · · Score: 1

    Typing speed has no bearing on how good a programmer is. The time spent actually typing lines of code is not that significant when you factor in design, unit testing, debugging, integration, and so on. BUT, the best programmers tend to spend a LOT of time at the keyboard. They become fast, even if they can't touch-type, their hunting and pecking will become speed pecking. So, while I agree that you don't need to be a fast typer to be a good programmer, I've never met any good programmers that were not also fast typists.

    --
    "They that give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety"-B.Franklin
    1. Re:Good Programmers will get fast at the keyboard by drb226 · · Score: 1

      That is exactly what I was thinking. But in a more articulate form. If someone claims they are a good programmer but type less than 30 WPM, there is a high probability that they are lying. Correlation != causation applies here. Slow typing does not make you a bad programmer, nor does fast typing make you a good one. But there is undeniably an observed correlation.

  73. Typing speed is important. by tp_xyzzy · · Score: 1

    The real reason to concentrate on typing speed is that it allows you to detect people who have never written any code from those that have written large amounts of code. If you write code every day on your life for 40 years, it's pretty certain you have learned to use computer keyboards very efficiently. This shows in typing speed. Even if the programmers would not know anything about how speed-typing should be done -- once they keep writing code over and over again, they will figure out a way to do it quickly. Everyone has different way to do it, but they definitely can do it quickly.

  74. Accuracy counts more than raw speed . . . by fuzzylollipop · · Score: 1

    I was trained on manual typewriters and then selectrics in the mid-80's my weapon of choice still to this day are IBM Model-M's ( Unicomp makes them now ). Accuracy is way more important than raw speed when coding. Anything else I can do 85+ words a minute on my Model-M.

  75. Slow vs Hunt-and-Peck by angus77 · · Score: 1

    I think there's a big difference between a "slow" typist and a "hunt-and-peck" one. Someone who can touchtype, but only types 35WPM still has a huge advantage over someone who hunts and pecks. After that you get diminishing returns---if you type faster than you can think, then typing that fast isn't helping you.

  76. Cart before the horse by Spazmania · · Score: 1

    If you're good at programming, you program frequently. Even with the knack, doing it a lot is the only way to get good. If you program frequently then you type a lot -- and in doing so become fast at it.

    Cook and Atwood are both right. Cook correctly observes that your ability to program does not in any way depend on your ability to type quickly. Atwood correctly observes that that typing speed is a gambler's "tell:" if you haven't programmed enough to get fast at typing then however convincingly you talk the talk, odds are against you being very good at programming.

    --
    Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
  77. post processing by deodiaus2 · · Score: 1

    I usually write code, which I go back and modify.
    More often than no, I reduce the size of the code. Not through using shorter variables or less programming. Rather, I find that there are commonalities which can be factored out. Also, I sometimes replace code with built in functions and libraries I did not know existed when I wrote things.
    Even when writting English papers, I found that sometimes, I could clean things up after I get my initial concept down.
    I have seen a lot of code written by other which was in terrible need of a rewrite, but it seemed as if people were more concerning in getting something done fast rather than elegant. I find that elegant code is easier to read, easier to maintain, and sometimes easier to debug.

  78. It matters to your hands by Antique+Geekmeister · · Score: 1

    I've met far too many programmers, barely half my age, who've already ruined their hands with poor keyboard technique. They've lost the ability to get into the actual code and have doomed themselves to cut&paste programming because their hands can no longer handle typing what they really need: they're forced to let the GUI do it for them, and the result is sometimes very poor code.

  79. Auto-completion does not help by Animats · · Score: 1

    Modern IDEs tend to auto-complete

    If you type reasonably well, auto-completion just slows you down. (Especially the really crappy implementation in OpenOffice Writer.)

    1. Re:Auto-completion does not help by TimKemp · · Score: 1

      If you are coding in OpenOffice Writer you already have a lot working against you. You see, that's a word processor. What most programmers uses is a text editor.

    2. Re:Auto-completion does not help by DavidTC · · Score: 1

      What most programmers uses is a text editor.

      ...or even an IDE. ;)

      Now I'm imagining a picture someone at a computer writing in C in OpenOffice Writer, with a caption of 'PROGRAMMING: YOU'RE DOING IT WRONG'

      --
      If corporations are people, aren't stockholders guilty of slavery?
  80. Not only does typing speed help by CrazyJim1 · · Score: 1

    Not only does typing speed help, but once you realize long variable names slows your coding down, you can even optimize for that. Conventional wisdom says to write long variable names to aid with documentation, and I agree, but there is a trade off between speed of typing and long variable names also. The faster you type, and the faster your compiler, the quicker you can revise and test code. It does matter, but it isn't the biggest factor in coding.

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

  82. forget about hiring the handicapped then, eh? by Anonymous Coward · · Score: 0

    I'm sure Stephen Hawking would be glad to make a comment about the correlation between typing speed and problem solving skills.

  83. On average, programmers write by melted · · Score: 1

    On average, good programmers write about 50 lines of code per day. I don't see how typing speed matters.

    1. Re:On average, programmers write by tuxicle · · Score: 1

      But then, that's on average. Some days, we need to get a lot done, and being a faster typist can help. I think being able to experiment, and throw away many lines of code because something didn't work would be easier for someone who doesn't struggle to type.

  84. At first glance... by Anonymous Coward · · Score: 0

    At first glance, it's easy to think of just code and say, "No, it doesn't matter." But then, I wonder what the code comment ratio is of programmers that average 80wpm+ to those that type much slower. Then consider that programming does often involve data entry.

  85. How can you tell? by Anonymous Coward · · Score: 0

    Can someone show me how to figure out the typing speed of a programmer by looking at their code? If Atwood's prejudice is correct, we should be able to just look at a source file and see that it was written by a slow typist. We'd be able to score lots of open-source code by typing speed, and demonstrate whether it makes a difference in the program produced.

  86. RTFA(s), commenters! by drb226 · · Score: 1

    Summary fail.

    Atwood's rant prompted John Cook to investigate...

    One quote of Atwood's blog was taken out of context. Two short sentences != rant

    From the comments, it is very painfully obvious that no one reads the article(s) anymore. Not even the submitter read the Atwood article, apparently. Atwood's blog post was about keyboards, not about the people using them. He made one passing remark about not taking touch typists seriously, using a lousy metaphor to pianists. Slashdot hating Atwood much?

    Also, I found the Cook article to be rather boring and contrived. Arguing against a straw man is easy. "Someone says that slow typing makes you a bad programmer. THIS IS WHY HE IS WRONG!!!" ZOMGpwnzors. OK, the article wasn't that bad. But the /. comments about it are.

  87. Re:It might be of importance if you are studying.. by SwedishPenguin · · Score: 1

    I've been studying CS for over four years and will finish up my master's in about a year, and I've never come across an exam where you need to churn out "large quantities of functional but utterly boring code".
    I don't think I've ever had a computer-based exam. Labs, but they're generally not time-limited at my university at least, as long as you hand in the assignment on time and can explain the reasoning behind the code, you're fine. (with the only exception I've encountered being a course where we coded assembler on RISC-processors and a time limit was obviously necessary, but assembler is not very dependent on typing speed)

    And usually not large quantities either, just code that accomplishes the task at hand, the less the better.

  88. Speed matters some, style not at all.. by Junta · · Score: 1

    To be derisive of hunt and peck is nonsense in this context. I know a fair share of respectable speed typists not doing proper technique. Will they ever hit the 90+ WPM, perhaps not, but it really doesn't matter to that degree.

    Speed only matters insofar as it gives an indirect indication of experience. If they are painfully slow, it means they haven't gotten much experience on a keyboard one way or another, which is a bad sign for a programmer. It's sort of a subjective measure, I'd guess 50 WPM ballpark would be what an experienced programmer would pull off if hunt and peck (I haven't measured lately, but I was 60 WPM when I did hunt and peck, probably no faster now even though I am using home row, but with dvorak).

    --
    XML is like violence. If it doesn't solve the problem, use more.
  89. Be a Man. by repetty · · Score: 1

    You can hunt-n-peck or you can touch-type to write code. Both do the job but one will make you into an insecure pussy.

  90. OK, in all fairness by Giant+Electronic+Bra · · Score: 1

    If you are talking about user stories, SRDs, TRDs, etc, then typing may be quite useful at some point. OTOH there are people for that, like managers (they have to be good for something, especially project managers, lol).

    But it sounded like the guy was trying to say that good typing speed was useful for PROGRAMMING, lol. What I am really saying is 'typing in code is a very small part of the job'. It should basically be pretty rote because yes by the time you put things into code they should be designed already, the tests should be specced out, etc.

    I don't know if that makes me "old school" or not. I came up in the 80's. The thing is really when you are entering source code you aught to generally know pretty much what it will look like. There's plenty of 'tradecraft' in writing nice code, but the importance of coding is vastly overestimated, and as a result most software is crap these days.

    I mean there's stuff I wrote that is keeping 747's in the air and such, large high volume trading systems, etc. Maybe for your average home project things are different, but no commercial software should really be getting written at a text editor or IDE to any appreciable extent.

    --
    "Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
    1. Re:OK, in all fairness by smash · · Score: 1

      Thing is, coming up in the 80s you were around before the RAD tools and auto-generated code. Practice these days seems to be draw a pretty GUI in an interface builder, tweak generated code a bit, and let the compiler find your syntax errors, and your beta/production users find your logic errors.

      --
      I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
    2. Re:OK, in all fairness by Giant+Electronic+Bra · · Score: 1

      Well, the team I run is all using modern tools, but still, each piece of business logic is defined as to what it will do, what inputs it will take, what behavior it will have for every set of inputs, what outputs it will generate in all those cases, any other considerations like transaction implications, etc.

      By the time all of that is in place the LOGIC itself is pretty well known. There's really no room for asking "what do I do in this case" during coding. If you ARE asking those questions then it was a failure further up the chain in the process. There can be exceptions, but if you're coding and not totally clear on what the result is then it had better be a spike because the schedule impact isn't going to be well defined and iterations are pretty tight, no more than 2-3 weeks at most. Since no code is going to be complete and releasable without full unit tests (written first) as well as integration to the product build and runs through the functional test suite, review, etc. there's not a lot of time for asking questions at the coding stage.

      So basically we're talking someone may spend 2 weeks writing 50-100 lines of code, possibly scattered about a couple modules and with some minor refactoring. Typing speed is just about the least relevant thing there is. Even if you can peck 10 WPM you're going to be coding for maybe 2-3 days out of that 2 weeks, total, and that includes writing the tests, which is usually maybe another couple 100 lines of code.

      Of course we're not in a situation where there are bugs when you're done. There may be deficiencies in the code that are not relevant to the current iteration but it HAS to work, otherwise bad things happen and voices are raised in customer land. Back in my aerospace days it was even more extreme. A single coder often worked for weeks or a couple months on a single small module. Of course in THAT case you were dealing with "it works or airplanes fall out of the sky".

      --
      "Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
    3. Re:OK, in all fairness by smash · · Score: 1

      Ahh i didn't mean to imply you still despise/avoid RAD tools. Simply that you've been there before they were around, and learned the old way of speccing things out and getting the logic done first before starting to write code.

      Rather than the new (perhaps self taught via the web) programmer way of playing with blocks and letting the tool sort things out.

      --
      I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
    4. Re:OK, in all fairness by Giant+Electronic+Bra · · Score: 1

      Eh, I would say that for the most part programmers have always wanted to just bypass all the hard stuff and do the coding. Nobody got into the business because they love specs! hehe.

      There is just a lot of variation in the industry. Plenty of hackish code was written in the 80's and plenty of good stuff gets written now. The good stuff is just EXPENSIVE and well not everyone can afford it. If you're going to put code in a 747, it will cost $1000 bucks a line, easily (yes a terrible measure of coder productivity, but wc -l is easy to run).

      --
      "Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
  91. Slow typing affects coding style and quality... by patniemeyer · · Score: 1

    I have seen this repeatedly over the years... People who are slow typists or more generally are not proficient in using keyboard shortcuts or other features their editors / IDEs are more reluctant to certain kinds of changes to their code... i.e. small things like renaming, general cleanup, refactoring... They find it frustrating and so they make smaller changes with poorer results.

    It may not be a big issue in general, but it obviously a hindrance to productivity and changes how someone things about the cost / benefit of making changes.

  92. Typing speed? by Anonymous Coward · · Score: 0

    Come on, I hope you are joking.!

    I would have my programmers to have time to actually think about what they were writing. What does it matter when it might take several days to come up with the solution to a problem. If your typing is that slow, you could hand off the code to a code monkey. What really matters is the quality of the code.

  93. Obvious by Anonymous Coward · · Score: 0

    Duh. Programmers are compute bound, not I/O bound.

  94. It's what's behind the typing, not the typing... by meerling · · Score: 1

    That world record typist may be able to type 10 times faster than Stephen Hawking, maybe even a thousand times faster, but you know what, he probably only writes those high level physics papers at less than one millionth the speed of poor slow typing Stephen.

    Same with programming. It's the development of what you are working on in your head, not so much how fast you can input pure text. If you are a moderate typist and at least an ok programmer, doubling your typing speed probably won't increase output by more than 2 or 3 %. If you have a lot of raw data in non-digital form to input, you get the intern or keyboard operator to do that, and hope they don't typo anything.

    It's kind of like a taxi driver and being skilled at driving at high speeds. Even if you can take the corners at a thousand mph without flipping the taxi, it won't really speed up how fast you can get your fare to the destination, unless you are driving on an empty Nascar track, and you know that will never happen in real life.

  95. I lost part of a hand in an accident. by Anonymous Coward · · Score: 0

    My typing speed then went completely to hell and my productivity dropped as well because I had to think about typing. After a few months my productivity returned to normal though I'll never get my typing speed back. You don't have to be able to take dictation. You just need to be able to type without thinking about it.

  96. No by Anonymous Coward · · Score: 0

    No, typing speed has nothing to do with programming ability. I still learned to program using pen and paper, drawing up flowcharts and data diagrams. Nowadays (after decades of practice) I can do a lot of coding in my head, while I'm out walking in the park or what have you. Typically I only need to be near a keyboard for an hour or so a day, when coding.

    Typing speed is utterly irrelevant.

  97. An hour a day? by pz · · Score: 1

    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.

    Clearly the author is not living in the same world I am. Or anyone I know, for whom an extra hour a day would mean a significant and substantial boost in productivity or efficiency. One hour per day? For people who work 10 hours per day (to keep the numbers pretty), that would be an extra 10% productivity. For someone paid hourly, that's a raise of 10%. It's like getting more than an extra MONTH of work done every year. Or, flipped around, the ability to take an additional month of free time per year (more-or-less) and still get the same amount of work done or get paid the same annualized wage.

    In my world, that's not something readily dismissed.

    But, in reality most people wouldn't be able to type infinitely fast. And measuring the number of completed words, even with the posited factor of 2 for edits, is short sighted. Factoring things like email in addition to my programing output and paper writing output, and CLI typing on top of that, I'm probably closer to four or five thousand words per day. Although most of my time is still spent thinking, being able to reduce the time spent typing even by 20% would mean a lot. (Hell, I'm well on my way to talking myself into a bit of speed training.) The biggest boon, though, would be in being able to think faster since less of my time would be spend on starting and stopping my train of thought to type.

    --

    Put my fist through my alarm clock with its ding-dong death inside my ear. - The Blackjacks.
  98. infinite monkey theorem by SchroedingersCat · · Score: 1
  99. not required, but comes with territory by George_Ou · · Score: 1

    Fast typing has very little importance to developers. However, anyone who spends the kind of time with computers as programmers will likely have at least moderately fast typing skills. So when we see someone hunt and peck, we generally presume that this person is not well versed in computers much less a programmer and it's probably true more than 99% of the time. In this day and age, kids are exposed to typing early so it's very unlikely they aren't familiar with the qwerty keyboard. But it's quite possible that they have sloppy technique where they make a lot of errors and have to use the back space a lot or they don't use all their fingers, especially the pinky.

    The best thing to do when a person is starting out is to spend 2 weeks, 1 hour a day developing fundamental typing skills using a training program like Mavis. Sure it's a chore but the amount of pain you save in the long run is amazing.

  100. It's accuracy and focus, not speed. by Anonymous Coward · · Score: 1

    And it applies to any job that requires written communication with other human beings.

    I don't care if you do a 3 finger and thumb touch typing method, or an official secretarial typing pool approach as long as you're accurate and can do it without looking and you can do it faster than you can write it long hand.
    If you spend all of your time looking for the letters on the keyboard, you will spend none of your time writing actual communication.
    If you spend all of your time correcting your gross typos, you'll never proof read to check to see if your writings match your intended message.

    I was encouraged to take typing in high school because 1) Being able to touch type over 35WPM helped keep my Dad firmly in the US during the Vietnam War (Let's here it for company clerks) 2) Being able to touch type helped supplement the family income while Dad was stuck in the Army.
    As a side effect to being able to type I could spend more time doing research for school papers and proof reading to remove my faults with English grammar and spelling.
    I could separate the concepts of content and markup which led to the most professional looking lab reports while I was at university.

    However, being able to type fast is a tossup. On the one hand, it helps to be able to set an idea completely into hard copy before the finer details fade from memory.
    On the other hand, with sufficient typing speed, one tends to type the same thing repeatedly instead of stepping back and thinking "Is there a more elegant way to implement this?"

  101. it can't hurt by Anonymous Coward · · Score: 0

    I've done some programming now and then. Being able to type wicked-fast surely doesn't hurt. But, on the other hand, for a lot of problems it's easy to either write some super-verbose excessively lengthy hunk of code, or do it short and to the point. I've done some rapid-fire coding a few times but in most cases, it was thinking about WHAT to write and not a lot of actual writing. Of course, there are still those places that probably expect some number of lines of code still, and I don't know what to suggest about that.

  102. Um... by Quiet_Desperation · · Score: 1

    When was the last time you saw a hunt-and-peck pianist?

    Er, the last time I watched a friend *compose* a song on the piano, which is a better analogy. Hit some notes, write something down, hit some more notes, and so on.

    This Atwood chap is a bit of a self important tool, isn't he?

  103. Documentation by Anonymous Coward · · Score: 0

    Everybody seems to be missing a very important part of this: documentation writing. Banging out code is one thing. Using a code-completing IDE is another. But professional coders should be writing documentation including code comments, design documents, updating the project wiki, writing descriptions for version control commits, annotating bug tracking entries, using instant messaging and email, and whatever else. All of these things require typing skills.

    The piano analogy is obviously completely wrong. Programming is not like playing an instrument. But, like any other professional, a programmer must be skilled with the tools of the trade, and the computer keyboard is the one tool that virtually every programmer uses.

  104. Typing speed matters. To this degree. by DoninIN · · Score: 1

    There are some other posts that partially capture this thought. Really being able to type. Good keyboarding skills. This is nifty to have if you're a programmer, it's nifty to have if you're a writer, or have to create a lot of documentation, or various kinds of code. It isn't essential. It's not a measure of how good you are at any of those things. If you can achieve the accuracy you need, and you type fast enough that you don't find yourself taking shortcuts, using text-speak, giving all your variables names like S1 and A2 because you haven't the hand speed to call them something descriptive. Then it's not a big deal.
    My coworker using some kind of bizarre sliding two hand eight-finger method two type that doesn't reliably use the same fingers to hit the same keys, and yet somehow she can type at very least faster than she can compose documentation or work instructions, and can even spell. (I Can't spell very well unless I can at least lay my hands on a desk and pretend to type the words.) I would expect anyone who is competent at any profession that requires spending a lot of time driving a keyboard to be at least a reasonably competent typist.

  105. Pikoko by Anonymous Coward · · Score: 0

    i actualy find this offensive. im a programmer and dyslexic so naturaly these things take longer to type out. to say someone isn't a programmer because they type slow is elitist

  106. 10x hawking is incorrect ... by neonprimetime · · Score: 1

    ... because hawking did not have intellisense. nowadays we only need to type the 1st few characters of a word + it fills in for you so 150wpm is insanely faster than hawking

  107. WPM or concise code... by Wingit · · Score: 1

    Programming is a craft. WPM or characters per minute mean very little. Is this even worth discussing?

    --
    We win together or suffer without.
  108. Re:Fast Well by multipartmixed · · Score: 1

    I was trained to touch-type in Canada in 1988. I use almost exactly the fingerings described by your bottom diagram.

    It's possible that I was merely a poor student, however I believe that is also how I was taught.

    The one thing I *don't* do that I was taught is shift-hand alternation; i.e. right-hand shift with left-hand characters, and vice-versa. I tend to over-use the left shift key.

    --

    Do daemons dream of electric sleep()?
  109. Hunt and Peck Typists by PRMan · · Score: 1

    Actually, I'm going to have to disagree. The reality is that when people hunt and peck after many years of coding, it sometimes shows a deeper attitude of, "I can't be bothered." They can't be bothered to learn something other than VB, they can't be bothered to comment. They can't be bothered to use objects. They can't be bothered to learn the freaking API without re-inventing the .NET Framework. They can't be bothered to communicate...

    So while I don't think 120 WPM is any better than 60 or even 40, I have definitely seen some other problems with hunt-and-peck typists (not all, but it's a red flag for sure).

    --
    Peter predicted that you would "deliberately forget" creation 2000 years ago...
  110. Re:Fast Well by espiesp · · Score: 1

    I also use the bottom pattern. Also, I'm a left key shifter, exclusively. I could remove the right shift key an never, ever miss it. I hold the shift key solid and TYPE JUST ABOUT AS FAST as without. I almost don't need my pinky finger on my left at all really. I guess it makes me feel better about human adaptability too in a way.

  111. it helps by smash · · Score: 1

    If you can type fast, you can go through the write/debug/rewrite cycle faster. You can also actually test code in reality faster.

    If you can't type, you'll either take longer to get the code entered and tested, or you'll have to desk check it, which may or may not be possible when you're dealing with other people's APIs.

    Can you be a good programmer and slow typist? Sure. But if you can type fast your productivity will be improved.

    --
    I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
  112. I have little respect for two-finger typist by Anonymous Coward · · Score: 0

    You don't have type 100 wpm to write good code, but if you type with two fingers, I have a hard time believing you know how to use a computer let along program one.

  113. I suck at typing by spiffmastercow · · Score: 1

    I only type about 35 WPM.. So I make my functions as concise as possible. In general, if typing speed is impaoring your ability to code, you're doing it wrong. Lines of code is a measure of maintainence cost, not programmer effiency

    1. Re:I suck at typing by nanospook · · Score: 1

      I don't see how my typing speed would be related to my making functions concise or not.. You simply type faster or slower but generate the same code..

      --
      Have you fscked your local propeller head today?
    2. Re:I suck at typing by spiffmastercow · · Score: 1

      Well, the theory is that if typing incurs a high cost, a programmer will type no more than necessary. I should have used the word 'succint' instead.

  114. Does not matter much... by Anonymous Coward · · Score: 0

    My brian is much slower than my ability to type most of the time. However there are times where I'm like ... come on fingers move faster I don't have all day.

    On a subjective level it is very hard for me to take someone who hunts and pecks seriously. Objectivly my guess in most situations it makes little difference. It is possible although unlikely the lag could be productive in that it might force someone to think more about what they are typing or place a slightly higher premium on code reuse.

  115. Typing buggy code quickly is counter productive by Anonymous Coward · · Score: 0

    Better you type a few lines of bug free code each day spending hours on each line to insure perfection.

  116. Typing doesn't matter, shortcuts do by grikdog · · Score: 1

    I was 50 wpm at my peak, without rushing. I considered myself a low-grade moron compared to some Windows programmers I knew because of their skill queueing up shortcut keys faster than the box could keep up. They knew the Windows menu structure cold (every programmer I ever met was like this on their own boxen), and could drill deep into arcana without a second thought. It used to be considered a mark of advanced skills, as observed by HR and MMgt types who couldn't tell the difference.

    --
    ``Tension, apprehension & dissension have begun!'' - Duffy Wyg&, in Alfred Bester's _The Demolished Man_
  117. Typing well implies experience by Asmor · · Score: 1

    The point seems to be being missed...

    It's not that a good programmer must be a good typist, it's that a good programmer must spend a lot of time working with the keyboard, which in turn will turn them into a good typist.

    Someone who's not a good typist can't have spent much time working with a keyboard, ergo does not have much practice programming, ergo is probably not a good programmer.

  118. Unimaginative Developers by nanospook · · Score: 1

    While developers who type extremely slow make me roll my eyes.. what really annoys me is developers who are incapable of optimizing their daily work habits. The developer who repeatedly performs 10 steps to accomplish a task when a little work would reduce it to one step really flunk the IQ test as far as I'm concerned. When you ask them about it, they tell you they are too busy or simply shrug. That's just one task our of many.. A year later they are still doing 10 steps instead of one..

    --
    Have you fscked your local propeller head today?
    1. Re:Unimaginative Developers by FormOfActionBanana · · Score: 1

      Example please?

      --
      Take off every 'sig' !!
  119. ha ha haaaa! by Anonymous Coward · · Score: 0

    this uber fast typist just demonstrated that faster isn't better by making such a stupid comment so fast he had no time to think through his position before it got posted ;p probably like most of his code, I code slowly and rarely need to correct or debug because I have time to think things through, by his lights the fact that I type slowly makes me a bad coder?, or that, in the day, mainframe programmers would send their hand-written code to data entry clerks for input means they wrote no code at all? ,speed is not proportional to quality, this is like (obligatory car analogy) saying the fastest car on the highway is driven by the best driver....that isn`'t normaly the case you know.

  120. 60 WPM by seifried · · Score: 1

    I find for coding or for my monthly columns/etc. I can't think faster than 60WPM, so I've learned to type at about 65WPM and that's good enough. Show me anyone that can code or write finished product at faster than 60 WPM ... and I'd HAPPILY hire them. Seriously: if you can create written product at 60 WPM (or faster), contact me at kurt@seifried.org.

  121. If I want 100-something WPM ... by Ihlosi · · Score: 1
    ... I hire a typist.

    If I want working, bug-free and maintainable code, I hire a programmer. Heck, if the programmer is good enough, it might even be worth it to hire a typist for him to dictate his code to.

    Seriously ... expecting a programmer to hit 150 WPM is like expecting your carpenter to be the world champion in tree cutting.

  122. US International layout: the best of both worlds by panchoh · · Score: 1

    See http://en.wikipedia.org/wiki/Keyboard_layout#US-International

    I use a variant of that one, called AltGr International. It's the same layout, but without the dead keys. So you get the behaviour of a pure US layout, which is good for programming, and also the ability to produce diacritics just by pressing AltGr + <some key>.

    So, I see your ß and also your æøåÆØÅ :-)

    Hope that it helps.

  123. Generous Gestures by g4b · · Score: 1

    a general problem of modern individualist society is to generally avoid any type of generalisation and generally scream upon any generalizing individual offering him not to think in so small dimensions anymore.

  124. Time for the classic by SmallFurryCreature · · Score: 1

    An old engineer retires after decades working in a factory. But some years after the factory machine breaks down and all the young engineers are baffled. Finally someone recalls the old engineer and asks him to come in, for a fee to see if he can fix it.

    The engineer comes out of retirement and takes a look at the machine, walks to a part of it and hits it and the machine works again.

    Everyone is happy, until the engineer sends his bill. $50.010.

    The boss calls him, demanding to explain the charge for just one tap.

    It is simple the engineer says: $10 for the tap. $50.000 for knowing WHERE to tap.

    -----

    The point is that there are workers and engineers. The workers should be judged on quantity, the engineers on quality. I myself have fixed small things that gave a tenfold increase in performance or dropped all errors from a system. What does that matter over building the original code? Well, 1/10th the server cost. A huge reduction in upset customers meaning less staff needed for support a huge recurring cost.

    Who is worth more? The team that builds the car OR the one person who spots and fixed the fatal flaw with a gas pedal? Ask Toyota.

    --

    MMO Quests are like orgasms:

    You may solo them, I prefer them in a group.

    1. Re:Time for the classic by Bigjeff5 · · Score: 1

      It is simple the engineer says: $0.01 for the tap. $50.000 for knowing WHERE to tap.

      Fixed that for you, ;).

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
  125. Re:It might be of importance if you are studying.. by denzacar · · Score: 1

    Right...
    Next thing you're going to say is that you were allowed to use rulers to align your hand-written code on paper so that it is nicely stacked and nested.

    Cause we all know that you must close your brackets in the same column you've opened them in, and may god help you if you haven't properly nested your loops - your computer might just explode in your face if you haven't done that properly.

    --
    Mit der Dummheit kämpfen Götter selbst vergebens
  126. i don't care by Anonymous Coward · · Score: 0

    autocompletion types stuff for me.

  127. You're missing the point by mstefanro · · Score: 1

    He has not claimed that you have to be a fast typist in order to be a good programmer, but merely that a good programmer can almost always type quickly. According to the common "programming is to be learned in 10 years" saying, it is highly unusual to become experienced in programming without unwillingly getting a high WPM score in the meantime. It is understandable why one would not put much faith in a programmer that cannot type quickly, not because typing quickly is a requirement for being a good programmer, but because it inevitably comes with being a good programmer. The same thing happens with a pianist, with the exception that it is more important for pianists to be fast than it is for computer programmers.

  128. Also depends on how old you are by BrokenHalo · · Score: 1

    Back when I first started with computers, we wrote our Fortran or COBOL code on 80-column coding sheets with a device known as a "pencil". These stylus-like instruments allowed us to write our code very quickly and quietly. Thus, a programmer could carry out his (or occasionally her) work with an air of dignity and repose no longer possible.

    The actual typing was done by keypunch ops who could all type faster than 250 words per minute, no matter what the Guinness Book of Records might say. ;-)

    1. Re:Also depends on how old you are by Surt · · Score: 1

      It all depends on the selection of words. I can type 250 of the word 'a' in a minute, easy.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    2. Re:Also depends on how old you are by Bigjeff5 · · Score: 1

      With hunt-and-peck no less!

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
  129. hex1b by hex1b · · Score: 1

    http://en.wikipedia.org/wiki/Amdahl%27s_law

    --
    Computer scientist, Software engineer.
  130. Perception is reality by Anonymous Coward · · Score: 0

    I'd say that the ability to type will correlate with the ability to code, after all, a person who codes a lot, and thus has a lot of experience, will have also typed a lot. Now, does this mean that all folks who type poorly are also bad coders? Not necessarily, but there is a strong tie.

    Having said this, however, perception is reality. Managers, HR types, and potentially other folks who are not computer literate may very well have a lot of say in whether a person is hired for a particular coding job. I've seen some good sysadmins (yeah, not a programmer, but an IT professional none the less) who could not type well, and I would later have managers pull me to the side to politely ask if the person was good with systems. Of course, I spoke highly for them, and the managers never thought anything bad again. However, if I or someone trusted wasn't there to back them, I believe the manager may have taken actions to have the poor typists removed.

    Say what you will about those poor typists or the "clueless managers" or whatever - yeah, the company might have lost out on some good sysadmins, however, those same sysadmins would have lost out on some good contracts. My point - impressions can count, and I've never seen a person's technical skills called into question due to good typing skills.

  131. Back on point: by BrokenHalo · · Score: 1

    I'm not big on having my balls sucked (especially by guys), but this Jeff Atwood guy is clearly either very young or an idiot who only codes in toyland languages.

    Back in the day, the only QWERTY keyboards on the Burroughs mainframes I had were the teletype devices used for a master console (or what Burroughs rather charmingly referred to as the SPO, or Supervisory Printer/Operator), and the action on those damn things was so damn stiff, not even God could have touch-typed on them.

    Most of us evolved a heavy technique, mostly involving thumbs and two fingers on each hand. It's a hard habit to outgrow when you spend more time thinking than typing.

    Some of my code of which I am proudest was entered in hex via the control panel on the front of the computer. Touch-typing not necessary.

  132. hmm, fast typing does not mean being fast while co by allo · · Score: 0

    -ding.

    i can type pretty fast, but i cannot type code as fast as prosa. Too much symbols at second/third level and far away keys to type as fast as normal text.

    But i think its good to be a fast typist, anyway.

  133. Not absurd at all by Garwulf · · Score: 1

    I'm sorry, but I have to disagree with you. I'm coming at this from the perspective of a writer rather than a programmer (my last programming experience was in high school over fifteen years ago), but typing is an important skill here.

    Now, will being a typist make you a better programmer? Absolutely. But not when it comes to thinking the code out. The place where typing is important is after the code has been thought out - the implementation. A programmer who does not know how to type will think the code out, and then have to find each key in order to input it into the program - it adds an extra step, and it takes longer. A programmer who is also a typist doesn't need to find the keys. The code flows smoothly from his head into the program via his fingers.

    When it comes down to it, a good programmer must be skilled at both planning and implementation. Both are required. If you ignore the skill at implementation (aka not learning to type), you handicap yourself. The programmer who can both plan and implement clean and efficient code with speed will ALWAYS be of greater value than the programmer who can plan the code, but is slow to key it in.

    --
    Robert B. Marks
    Author, Demonsbane in Diablo Archive
  134. It matters. by tthomas48 · · Score: 1

    I don't think the difference between 60 and 100wpm matters in programming. But I've encountered the occasional hunt-and-peck programmer. And by hunt-and-peck I'm not referring to people who don't use home keys and have their own typing style. I'm referring to people who have to think about where on the keyboard the letter 'b' is located. It showed a lack of seriousness about their job and ultimately every one of them got fired or laid off.
    People who are physically disabled are not the same as people who haven managed to somehow used their keyboard so little that they don't know where the keys are. I think it's a fantastic indicator of who the bad programmers are. You don't spend 8 hours a day typing at your desk without the ability to type 30wpm.

    1. Re:It matters. by geekoid · · Score: 1

      If you're a good programmer, you aren't typing 8 hours a day.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
  135. 200 WPM by Sebastopol · · Score: 1

    I type outrageously fast, english or code. However, about 25 to 66% of my keystrokes are wrong and need to be corrected.

    I think that is common, but it is important (to me, anyway) to get the idea out of my brain and on paper AS FAST AS POSSIBLE before the thought leaves me. Can always correct later, but I can't always remember a great idea.

    --
    https://www.accountkiller.com/removal-requested
    1. Re:200 WPM by geekoid · · Score: 1

      FYI: WPM is only the words spelled, cased and punctuated correctly.
      I have met people that can type over 100 WPM, and it's perfect.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
  136. I type too fast by ZeroExistenZ · · Score: 1
    I type too fast to be a programmer.

    At my prior client, I burned 2 USB-controllers while typing. I discarted it as being just an issue with the age of the hardware.

    Until now, where I've been given a top of the line workstation at my new job. 1 month in the job closing in on a deadline, another USB-controller burned out while typing.

    Mind you, to make the deadline I typed slower in fear to burn my last USB-ports.

    --
    I think we can keep recursing like this until someone returns 1
  137. typing is not the bottleneck by Anonymous Coward · · Score: 0

    I find it funny to watch someone who avoids using the mouse/gui typing, hitting tab, not getting he expansion they want, backspacing, typing again, hitting a tab, and so on, taking more time than it takes me to double-click a file icon in a window or paste in the name I copied earlier.

    See also http://anarchycreek.com/2010/02/17/the-lump-of-coding-fallacy/

  138. Re:Does hammering speed really matter for carpente by DavidTC · · Score: 1

    I'll second the laptop thing.

    My work computer is a laptop. It's a laptop hooked up to a monitor, keyboard, and mouse, though, both at home and at the office.

    When I actually have to use it as a laptop, I'm horrible at it. I've got a bluetooth mouse, I'd get a keyboard except a full sized one wouldn't fit in my laptop bag. (And I need a full sized one. I could do without the numeric keypad, but I need the arrow and page up/page down keys in the right place.)

    Hell, I went out and bought a 'clicky' keyboard for home, just because that's what I'm used to. Had to buy a damn 70 dollar 'gamer' keyboard, but it was worth it.

    I find it absurd that people who aren't comfortable with their typing can program as efficiently as people who are. I know that anything that slows down my typing has a major effect on my productivity as I start actually dealing with the fact I'm 'typing', instead of just the words magically appearing on the screen.

    --
    If corporations are people, aren't stockholders guilty of slavery?
  139. Piano by Anonymous Coward · · Score: 0

    So, according to Atwood, if you play piano very fast then you are a great pianist?

  140. no by Anonymous Coward · · Score: 0

    No, Jeff Atwood is just attention-whoring again. Since he quit his day job and became a full-time blogger the quality of his posts dropped to zilch.

  141. Re:Fast Well by SilverJets · · Score: 1

    I find it interesting that you find it more comfortable to reach up with your little fingers to hit the 2 and the 0 keys. To do that I have to pivot my hands so that my little fingers swing up and in to hit those keys. I find it a lot more comfortable, natural, and faster to hit the 2 and the 0 with my ringer fingers. All I do is reach up with the ring fingers, no pivoting of my hands.

  142. Red Flag by Anonymous Coward · · Score: 0

    I would say a hunt and peck programmer would be a red flag for inexperience. Anyone who has been programming for at least a couple years doesn't need to hunt and peck. If the resume says 5 years experience and they hunt and peck, I call BS. Does anyone know of a good programmer who still hunts and pecks?

  143. 10 lines per developer per day by ZombieBraintrust · · Score: 1

    How fast do you need to type if your only going to wind up with 10 to 100 lines of production code a day? "Great programmers spend little of their time writing code – at least code that ends up in the final product. Programmers who spend much of their time writing code are too lazy, too ignorant, or too arrogant to find existing solutions to old problems. " - August 17th, 2010 David Veksler

  144. No by Bigjeff5 · · Score: 1

    Because it is poor programming skills will lead you to writing less readable code with a lot more shorthand, not poor typing skills.

    The only thing typing skills affect is how long it takes you to write good code.

    Writing obtuse code is a sign of a bad programmer, not a bad typist.

    In other words, if a good programmer is a bad typist, the job will be done correctly, if slowly. If a good programmer is a good typist, the job will be done correctly and quickly. If you've got a bad programmer, it doesn't matter how fast he is, a good programmer will still have to fix all his mistakes.

    --
    Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
  145. You're spending the wrong time thinking by LostMyBeaver · · Score: 1

    Well, it's not fair to say that. I type about 96 words a minute when I'm writing documentation. I think I tend to type a little faster when I'm coding. I often write 1000 or more lines of C++ code between compiles. It's because the code itself is just repetitive. I mean, I've been coding C++ for 20 years now, the code itself is a trivial aspect of programming. I tend to write my code as if it were written in SmallTalk as I haven't written a function in years which doesn't fit in a single screen. The only exception to this is in the rare case that a switch statement has a large number of possibilities, but even then, I'll attempt to categorize the elements to simplify it.

    Coding is trivial. It should be the smallest part of a programmers job. While we'd like to think that with a lot more thought into planning, debugging won't be a bigger task, but in reality, debugging is often more time consuming than coding. One day when we're all perfect, that might change.

    Planning is something a programmer should do when they're not coding. While writing on Slashdot. While eating lunch. While sleeping. While pretending to listen to their mothers nag on the phone about how they don't call or write. Personally, I'm 10 times more productive as a programmer while listening to an audio book and smoking a cigarette than when I'm actually typing. But, when I do sit down to type, I generally can do it as if I'm on an old fashioned typewriter and correction ink costs money.

    Programming however is very individual. While there are a lot of people in the business world who would like to think of it as more of what a carpenter does, you know, buy the wood, but it and put it together from a plan. Programmers are generally a great deal more creative about how they solve problems. Each programmer has a different approach. Maybe someday, we'll have such great libraries for programming that it will no longer be necessary to think too much about how to accomplish a task, but for now, simply deciding how to integrate two libraries can be a creative work of art. Therefore, each programmer needs to do it differently.

    I used to do my thinking between lines of code. It was VERY time consuming and I often found myself at the end in an integration nightmare scenario. Now that I think in much larger components, things go much more fluidly. And even when I find out after the fact that an entire module needs to be rewritten, often the module I had coded before hand can be reused at another time, so there's nothing lost.

    Typing faster when coding is a great thing for many reasons. But, whether it is critical or not, well that's another story. I work with tons of 30wpm typists and frankly, my eyes want to bleed when I'm sitting next to them waiting for them too type something in. Though, sometimes it's a great time to get a coffee.

    1. Re:You're spending the wrong time thinking by SharpFang · · Score: 1

      Depends on how you like to plan.

      Some write block diagrams.
      Some juggle massive structures in their memory.
      Some write essential pieces on paper.
      Some try UML.

      I personally find plain, well-commented top-level code to be most readable. My project is actual code, not quite functional because it calls many lower-level functions that are yet to be written, and likely to undergo a few iterations before it reaches final shape - as any plan does, but trying to resemble the final code as closely as possible and iteratively, getting there. There are advantages and disadvantages. The primary disadvantages are that it's not as readable to laymen, but I can still write a nice documentation for them. The advantages are that if the programming language makes a certain feature difficult or impossible, it is immediately apparent and can be fixed at once, instead of trying to implement unrealistic plan assumptions into code once the plan is made final. And also saving time writing the final code.

      --
      45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
  146. look at me, look at me! I have a job! by Anonymous Coward · · Score: 0

    so I will respond to this thead, even though my response is largely irrelevant to the subject of the thread, and I will tell the world about MY JOB!

    My mother is SO proud of me! I do code maintenance. Would you like to hear about ....MY JOB??

  147. It's not the speed by Digital_Liberty · · Score: 1

    ... if you are a touch typist you don't have to think about the typing - you can think about the programming instead.

  148. faster mess?? by Anonymous Coward · · Score: 0

    it matters
    a lousy programmer could inject more anti patterns and write more buggy software
    the next on the line programmer will love it asfjklñasdfasdf

  149. How is that insightful? by psithurism · · Score: 1

    No one uses the "Esc" key: I like ^[ (ctrl-[) but others like ^c, both which work by default. bigger nerds remap caps lock to escape. I "imap jj " because I often write edit scripts to be piped in.

  150. Control-[ beats Escape by drew_eckhardt · · Score: 1

    While at most half on home-row, Control-[ is a much smaller stretch than Escape which is so far up the left side you probably can't hit it without moving your entire left hand.

  151. no, it does not. by geekoid · · Score: 1

    Anyone who breaks programming down into 'typing' doesn't know what the hell programmers should be doing.

    --
    The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
  152. Re:Fast Well by headbone · · Score: 1

    I don't see how your typing is better if it's not faster. I've been touch-typing for over twenty seven years without wrist problems. Posture is important.

  153. Re:Fast Well by AmericanInKiev · · Score: 1

    Cool if it works for you of course. But the list of people with typing problems is pretty long.

  154. Save 5 figures a year + waste more on pair program by Anonymous Coward · · Score: 0

    "If a novelist writing 1000 words per day were able to type infinitely fast, he or she could save maybe an hour per day."

    1 hour / day * 260 work days * hourly contracting rate of $100 = $26,000

    It's logical to say that's at least five figures a year you could save as a business.

    Sure, I've worked with good coders that are lousy typists. And I've yawned as I rode shotgun & pair programmed with them, waiting for them to physically crank out the work needed to be done on the keyboard.

    Pair programming is far bigger a waste of $$$ versus typing speed. Throw in slow typers + pair programming, and you've got a cost-inefficient mess some agile companies are quite proud of.