Programmers are not typists first

Jeff Atwood had a recent post that coders are typists first, programmers second:

Steve [Yegge] and I believe there is nothing more fundamental in programming than the ability to efficiently express yourself through typing. Note that I said "efficiently" not "perfectly". This is about reasonable competency at a core programming discipline.

I’m in the camp that I believe that anyone that touches a computer more than once a month should take a basic typing course.  But programmers as typists first?  I did some math on a recent 6 month project, and found that we averaged around 50-70 lines of code per developer per day.  Typing is important to me as a developer, but I still type far more during the course of a given week writing these ridiculously boring, narcissistic blog posts, emails, and the book.

What’s more, the typing skills I do have don’t really help out in the course of the day for those 50-70 lines I do write.  I code in C#, which means at least half the characters I do have to type are:

  • {
  • }
  • <
  • >
  • (
  • )
  • ,

Almost all of which require the shift key and some hand gymnastics to get around.  C# certainly isn’t nearly as wrist-friendly as other languages, but it’s not the most verbose either.

Still, not even most of my keystrokes in Visual Studio are dedicated to typing code.  I have no data to support this, but it seems like half the keystrokes go to a lot of ReSharper shortcuts and a couple Visual Studio ones.  The ReSharper shortcuts still make exclusive use of the Ctrl, Alt and Shift key in various combinations with other keys.  Again, I’m not typing words, but performing key chord combinations.

While typing is important, I’d still say learning design and OO are far more fundamental than typing.  But being a good typist won’t really improve your programming much.  If you’re typing so much that your typing skills are holding you back as a developer, I’d say you’re creating waaay too much code.  That much code is rife with duplication, and you’re not doing enough thinking, designing and analyzing.  With ReSharper, my ability to create code is as optimized as it can be.  There are still improvements to be made, but typing was never what held me back coding.

If you have to touch a computer, yes, learn to type.  But let’s not get carried away that we are typists first, programmers second.  We’re thinkers first, coders second.

Related Articles:

Post Footer automatically generated by Add Post Footer Plugin for wordpress.

About Jimmy Bogard

I'm a technical architect with Headspring in Austin, TX. I focus on DDD, distributed systems, and any other acronym-centric design/architecture/methodology. I created AutoMapper and am a co-author of the ASP.NET MVC in Action books.
This entry was posted in Misc. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • mendicant

    I was thinking the exact same thing as I read it. If your C# programming requires you to be a typist first, you’re doing it wrong.

  • http://www.dumpsterdoggy.com Chris Missal

    I’m glad you commented on this, because I was about to. I just wanted to make sure that I’m not the only one who thinks differently. As you said Jimmy, I’ve noticed too, as I get more and more comfortable with it, ReSharper keeps my left hand off of ASDF and on Ctrl + Shift + Alt. I wouldn’t say that makes me a typist before a coder…

  • http://www.devlicio.us/blogs/tim_barcz Tim Barcz

    Atwood posts, people listen….regardless of what he says it’s gospel.

  • http://www.lostechies.com/members/derick.bailey/default.aspx derick.bailey

    preach it brother jimmy!

  • http://www.adverseconditonals.com Harry M

    I wish my hand defaulted to asdf. It keeps going to wasd for some reason…

  • alexis.kennedy

    Brilliant – you’ve articulated all my vague ‘huh?’ concerns about the Yegge / Atwood typing enthusiasms perfectly, and then some.

    >I code in C#, which means at least half the characters I do have to type are:

    damn it yes – I can’t believe I didn’t think of that

  • http://paulbatum.blogspot.com Paul Batum

    I think Yegge has a point, but Jeff made a fool of himself by taking it too far. I have paired with software developers that look at the keyboard and use two fingers when they type and then look up only to discover they made an error at character two and maybe I’m elitist but I’m an inch away from TAKING THE DAMN KEYBOARD AND TELLING THEM THEY CAN HAVE IT BACK ONCE THEY’VE LEARNED HOW TO USE IT PROPERLY (in their own time).

    But the way Atwood states it is plainly wrong; a device that could read your mind and let you input characters by will alone would be convenient but would not actually change our profession much at all.

    +1 on thinkers first, coders second.

  • http://blogs.microsoft.co.il/blogs/kim Kim

    Atwood took it to an extreme and I’m puzzled as to why. If it was just to create reaction, then he is just like the users on Stack Overflow who post for reputation only. But that is beside my point…
    There are benefits to being an efficient typer. One is when you are coding in exploratory mode. You might be checking out new technologies or doing some refactoring. If typing is a burden it will slow down your *thinking*! That’s the important point in being an efficient typist. I read a research paper where they claimed that people produced better content when using a word processor than when writing on paper. Not more, better. The reason was that because the friction of erasing and moving things around is so much lower in a word processor and as a result the people used their brains differently. While I agree that we are thinkers first, our brains are so small they need all the help they can get. :-)

  • http://www.lostechies.com/members/bogardj/default.aspx bogardj

    @Harry

    It took about 6 months away from FPS to break that one for me

  • http://www.lostechies.com/members/bogardj/default.aspx bogardj

    @alexis

    What I’d _really_ like is a gamer keyboard, configured for C#. All the crazy angly-brackets right there for me.

    @Kim

    Oh, I definitely think coders should learn to type. But anyone that needs to use a computer should learn to type. I’ve never worked with a hunt-and-pecker, so maybe I haven’t felt the pain of working with someone like that.

  • Sergio Pereira

    Let’s not forget that there are some programmers out there that can’t use their hands. They are definitely not typists. Should we stop calling them programmers now?

  • Steve Sheldon

    Atwood and Yegge understand how blogs work. :-)

  • http://igorbrejc.net Igor Brejc

    Agree with you 100%. Anyway, I’m not sure the “professional”-style typing is good for your wrists and fingers – the hands are more or less static all the time – repetitive strain injuries and all.

  • notthistime

    Well, actually, I agree with the thought that was already described earlier that if one can type easily, the typing leaves more attention for the actual problem. If a lot of attention goes to typing, then there will be less attention left for the “real thing”. One can compare it with driving or walking. If one walks or drives without much thinking on it, one can think, where to walk or drive, what routes to take. If one just learns to drive, one does have less time for thinking, where to drive, what routes are the shortest ones.

    But, being able to type without looking to the keyboard and without thinking about typing has one more benefit: ergonomics. If one does not have to look to the keyboard, one can set the screen to the height of ones eyes and leave the hands in a position just as if the palms were toutching ones legs. This enables one to sit straight, which in turn has many benefits. One of them is probably clearer mind and better blood circulation.

    And, as a halve joke, but still true, is that if one does not have to look at the keyboard, one can just sit back, close one’s eyes and type
    a comment of the code in a very comfortable position. Comes handy at late evenings.

  • itsa mecat

    Well, actually, I agree with the thought that was already described earlier that if one can type easily, the typing leaves more attention for the actual problem. If a lot of attention goes to typing, then there will be less attention left for the “real thing”. One can compare it with driving or walking. If one walks or drives without much thinking on it, one can think, where to walk or drive, what routes to take. If one just learns to drive, one does have less time for thinking, where to drive, what routes are the shortest ones.

    But, being able to type without looking to the keyboard and without thinking about typing has one more benefit: ergonomics. If one does not have to look to the keyboard, one can set the screen to the height of ones eyes and leave the hands in a position just as if the palms were toutching ones legs. This enables one to sit straight, which in turn has many benefits. One of them is probably clearer mind and better blood circulation.

    And, as a halve joke, but still true, is that if one does not have to look at the keyboard, one can just sit back, close one’s eyes and type
    a comment of the code in a very comfortable position. Comes handy at late evenings.

  • http://www.lostechies.com/members/bogardj/default.aspx bogardj

    @two folks

    I didn’t mean to say that coders shouldn’t learn to type – anyone on a computer should. But it’s silly to say we’re typists at our core.

  • bitterchick

    If you need to use resharper then it means you did it wrong initially.
    Why not just write each module from beginning to end and leave compiling and testing until after you’ve typed out all of the code? Then you wouldn’t need to stop to use Visual Studio commands all the time, and you can use a better editor, like vi, so you don’t need to wait five minutes for Visual Studio to start up.

    I’ve pair programmed with programmers that type less than 80wpm, and I end up spending half of my time just staring into space while they type out what we just talked about. But I have to let the other programmer do some of the typing because otherwise they don’t learn.

  • http://www.lessontrackr.com/home MrFoom

    It’s not about how much you type, it’s about being a master of the coding environment.

  • http://www.lostechies.com/members/bogardj/default.aspx bogardj

    @bitterchick

    Most of my R# use is navigation and micro-code generation. Think “Create Method”, ctor, property, class, etc etc. Not necessarily refactoring. I use the R# templates extensively to generate those little snippets of code I use all the time, all the way up to file templates.

  • James

    If a programmer isn’t a typist, then you aren’t writing enough documentation. Whatever happened to the good ole days of the waterfall development model. :-)

    Though, I disagree in one respect. Many “programmers” really are just typists. They can write code that has been dictated to them by a more senior developer. But to create their own solution to a problem or to understand OOP and high level design concepts well enough to give direction to other programmers?

    That does not describe the majority of developers.

    The ones that are good designers (or have the potential) are more than typists, but most everyone starts off typing at first.

    Besides, finger dexterity helps with hitting those quadruple key combo’s ever 5 seconds to insert a special code snippet.

  • Pingback: What I *really* learned from JumpStart Typing « Dethorning STEM

  • Anonymous Developer

    You are an idiot.  Plain and Simple.   What a stupid post.

    • Anonymous

      Lol wow thanks. I’ll try harder next time.

  • Sha Gaji

    I love this job typing job
    professional typist