• You are not logged in.
  • Index
  • Experiences
  • From QWERTY to Dvorak to Colemak, and writing code all the way

    From QWERTY to Dvorak to Colemak, and writing code all the way

    • Started by kixcereal
    • 8 Replies:
    • Reputation: 0
    • Registered: 23-May-2013
    • Posts: 3

    Let me just start by saying that I love Colemak, and I'm really happy that I switched. I often try a lot of things that are new or unusual, and never share my experiences, which I think is not a very good thing. Personally, I spent hours and hours lurking on the experiences section of this forum before deciding to switch, and revisiting often whenever I felt a strong urge to just give up. All of the experiences that everyone has shared have been so valuable to me, it convinced me to share mine for anyone who might be in the position that I was in.

    So, like most others, I typed in QWERTY for basically my entire life (I'm in my mid 20s and started using computers when I was around 4 years old). I never fully adopted home-row typing, and instead always used the first three fingers of my right hand with the first two fingers of my left and moved all over the keyboard in big arcs. Fast forward to last year, where I got hired for a full time position where I'm either writing code, documenting processes, or typing reports. These are longer sessions of more typing with fewer breaks than I've ever had, and after two months, the tips of my fingers in my right hand started tingling at the end of the day every day.

    This scared me. I love writing code, and I felt like I was way too young to already start worrying about carpal tunnel. So, I decided to get an ergonomic keyboard, adjust my desk and chair properly, fix my posture, and start taking a break every hour or so to rest my hands, while resolving to learn proper QWERTY typing technique. This took about a month, and for the month following it, it actually helped. Plus, my typing speed increased from 40wpm to 60wpm, and that was nice, although it plateaued there (I used typingweb.com). After that month, though, the tingling in my fingers started to come back, accompanied by pain in my wrists. Over the course of that month, it got to the point where the middle finger on my right hand was starting to regularly go numb.

    It was at this point that a co-worker told me about Dvorak. I learned about the supposed history of QWERTY, got swept up in all of the Dvorak lore, and decided to learn it.

    So, I really pushed myself to learn Dvorak, used it exclusively after only a couple days, and after about three weeks got my speed up to about 50wpm. It helped the pain and numbness go away a little bit in the first week, but that didn't stay, so I'm left to wonder if that was just because I was typing at 10wpm at the time. Maybe I just didn't stick with it long enough. But ultimately, the back and forth hand alternation just didn't work for me, and I never really liked some of the key placements (mostly the vowels, especially 'I'). To me, that's just a subjective thing. I've since met people who have tried Dvorak and love that about it, saying it feels much better on their hands. Also, always closing browser windows while trying to copy and paste into them was a bit frustrating, but I was willing to deal with it for the benefit.

    Then, I discovered Colemak, really thanks to carpalx. I have to say, switching from Dvorak to Colemak after only using Dvorak for a little over a month was AWFUL. My hands were so confused. I would reach for letters in places that they were never at in any of the three layouts. But there would be small moments, like when I typed 'start' or 'thirst' or 'neither', and even during the first week I already could tell that I liked how it felt.

    So I've been using Colemak for about four months now, and I'm really glad I switched. I'd say these are the high points, as well as how everything that I was initially concerned about ended up playing out:

    - First, and most importantly and amazingly, the pain and numbness in my hands is completely gone. I don't even have to worry so much about my posture anymore, and it doesn't come back when I use a non-ergonomic keyboard, even if I do so for hours on end.
    - I type at between 70 and 80 wpm (using typingweb and keybr to evaluate). Last I checked I was at 97%-98% accuracy. This is waaaayyy better than I could ever do with QWERTY. But also, I don't know about everyone else, but I rarely type in a non-stop barrage at a constant 80wpm. I often stop and think about what I'm writing, so the best part is the accuracy. I rarely ever have to backspace, and that keeps from breaking my train of thought. Most things I backspace aren't misspelled, they just aren't what I want to say - it was always that way in every layout I've used. But in QWERTY, I would typo, notice it, backspace, fix it, forget what I wanted to say, type and backspace several things that aren't what I wanted to say, and then get rolling again.
    - It doesn't cause any problems in the office at work or with pair programming. It takes 2-3 seconds to switch for someone. I have a macbook, and alternate between running Windows and ArchLinux at work. In arch, it's one line in the terminal to switch to/from Colemak, and it takes 2 seconds to enter with autocomplete (I hit [Windows key]+T, type 'setx', hit [Tab] (autocomplete), hit the up arrow once (terminal history), and hit enter. Done.)
    - I use Vim everyday. I didn't remap Vim's keys, just learned them in Colemak. The reverse j/k for up down was the only weirdness, and I was fine after an hour because everything mac has up and down reversed anyway. I'm just as fast as ever.
    - I do design in Photoshop. I found out that my knowledge of Adobe hotkeys was never muscle memory, and the switch was instant and easy.
    - I still switch back to QWERTY for gaming. I'm a bit clumsy for the first 10-15 minutes in chat, but am just fine after that. I've never had a problem with things like forgetting SC2 hotkeys or anything.
    - Everyone who has ever inadvertently sat at one of my keyboards, typed out a bunch of nonsense, and then asked what on earth "colemax" is when I switch the keyboard for them have thought it was really cool. One person even switched to it, and another decided to learn Dvorak.

    So that's basically it. If I could say anything to someone who is lurking in these forums, and is reading this because they're considering learning Colemak, it would be to go for it, that it's worth it, and your hands will thank you. It's not a big deal, you have nothing to lose, and you can always go back to QWERTY. Truly, just about anything else you could spend your time learning will be more difficult and take a lot longer to really master.

    Last edited by kixcereal (24-May-2013 03:03:03)
    Offline
    • 0
    • Reputation: 214
    • From: Viken, Norway
    • Registered: 13-Dec-2006
    • Posts: 5,361

    Congratulations! Another success story. :)

    I know, switching via Dvorak is a bitch.

    Last edited by DreymaR (24-May-2013 08:22:41)

    *** Learn Colemak in 2–5 steps with Tarmak! ***
    *** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

    Online
    • 0
    • Reputation: 4
    • Registered: 08-Dec-2010
    • Posts: 656

    For even better typing feel, you may try a mechanical keyboard. For typing, brown/blue switch is most preferable.

    For information on mechanical keyboards
    http://www.overclock.net/t/491752/mecha … oard-guide

    Offline
    • 0
    • Reputation: 0
    • Registered: 04-Apr-2013
    • Posts: 538

    Great accomplishment.  Most people don't even get into one new layout, much less two!

    I really hope your observations about colemak's ergonomicness pan out.

    However, I have to question your using the default vim config.  Default vim was supposed to make navigation easier to reach (okay, maybe not), and it seems like that's just not being met here.  colemak-vim, as you may already know, uses neiu mappings which arguably make even more sense than the original.

    Last edited by lalop (25-May-2013 03:14:39)
    Offline
    • 0
    • Reputation: 0
    • Registered: 23-May-2013
    • Posts: 3
    DreymaR said:

    Congratulations! Another success story. :)

    I know, switching via Dvorak is a bitch.

    Thanks! And oh man, truly. One thing I am thankful for, though, is that I actually experienced both. Had I chosen to learn Colemak first, I probably always would've wondered what Dvorak was like, and maybe even tried to learn it at some later date. Now I just know what I like.


    Tony_VN said:

    For even better typing feel, you may try a mechanical keyboard. For typing, brown/blue switch is most preferable.

    For information on mechanical keyboards
    http://www.overclock.net/t/491752/mecha … oard-guide

    Cool! I will definitely check those out.


    lalop said:

    Great accomplishment.  Most people don't even get into one new layout, much less two!

    I really hope your observations about colemak's ergonomicness pan out.

    However, I have to question your using the default vim config.  Default vim was supposed to make navigation easier to reach (okay, maybe not), and it seems like that's just not being met here.  colemak-vim, as you may already know, uses neiu mappings which arguably make even more sense than the original.

    Hm, thanks for the info. There may be some advantages here, but it's definitely not my preference for the way that I use vim. I think that a person who uses it differently would benefit from this a lot, though. I very rarely use hl and only sometimes use jk. More often, I'm using search for a specific name or : to jump to a specific line of code. Also, other than hjkl, all of vim's commands are just the first letter of the actual command, or something similar, d for delete, c for change, i for insert, x for cut character, y for yank, a for append, o for open new line, etc etc. It made the switch to Colemak a lot easier and I can still talk about vim and learn from the people I pair program with without having to translate any of their commands.

    And I can't tell you how much I love having 'n' right there on the home row. Being able to jump through my javascript by 'var' or through ruby by 'def' or through css by a certain selector, or any other pattern in the code... I just rarely think about moving up and down one line or left and right one character.

    Offline
    • 0
    • Reputation: 0
    • Registered: 04-Apr-2013
    • Posts: 538

    Based on your advice, I've made "[number]o" into "goto line [number]" in my evil config (since it didn't seem to be doing anything besides some weird post-insert side-effects).

    Don't think I'm going to do anything too crazy like swapping r and k (the current "repeat search"), though.  Kinda a bummer because, as you say, the n key is kinda ideal for home-row search repeat.


    Is "goto next/previous character" a common pattern?  Or is it just search?

    Offline
    • 0
    • Reputation: 0
    • From: Malmö, Sweden
    • Registered: 10-Sep-2012
    • Posts: 122
    kixcereal said:

    - I still switch back to QWERTY for gaming. I'm a bit clumsy for the first 10-15 minutes in chat, but am just fine after that. I've never had a problem with things like forgetting SC2 hotkeys or anything.

    Game key rebindings are annoying, even though I have noticed that many games (such as valve games) automatically figure out your layout and rebing your keys accordingly. When I switched to colemak I phonetically rebound all the qwerty hotkeys in StarCraft to their colemak places. So S -> R ; D -> S ; E -> F.

    The big annoyance in StarCraft are the arcade games where they throw hotkeys left and right. When I do play arcade games I just switch to the grid layout, which is smart and automatically sets itself up for colemak.

    Congrats on switching to colemak.

    Posted without the aid of a rodent.

    Offline
    • 0
    • Reputation: 214
    • From: Viken, Norway
    • Registered: 13-Dec-2006
    • Posts: 5,361

    I used colemak-vim a lot and made my own version of it and put a lot of energy into that. I ended up scrapping the project.

    Thing is, making your own everything breaks the default vim so you're lost when you start up vim on a new computer. Also, you can hardly remap *anything* without breaking something else that you might need further down the road.

    When I want my own navigation mappings I rely on Extend mappings (see my sig topic).

    Last edited by DreymaR (27-May-2013 08:51:28)

    *** Learn Colemak in 2–5 steps with Tarmak! ***
    *** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

    Online
    • 0
    • Reputation: 0
    • Registered: 23-May-2013
    • Posts: 3

    Sorry, everyone, for the long delay in responding! I got caught up in finals and stopped checking up on a lot of things. Thanks for all of your replies.

    lalop said:

    Based on your advice, I've made "[number]o" into "goto line [number]" in my evil config (since it didn't seem to be doing anything besides some weird post-insert side-effects).

    Don't think I'm going to do anything too crazy like swapping r and k (the current "repeat search"), though.  Kinda a bummer because, as you say, the n key is kinda ideal for home-row search repeat.


    Is "goto next/previous character" a common pattern?  Or is it just search?

    Wow, cool. And I just checked out your evil config. Looks very evil, indeed. = )

    The only goto next/previous character that I use very much is f and F, which are next and previous character, respectively, but they only work on the line that you're on. So "fr," for instance, takes you to the next lower case r in the line you're currently at. I actually do use that one fairly regularly for things like quotes and parentheses, combined with ci(something), which changes whatever is between the character you press after ci. So, f"ci" takes you to the first quotation mark on a line, erases everything between the pair of quotations it's a part of, then enters insert mode so you can type in something else. I think it's neat, but of course, ymmv.


    vaskozl said:

    Game key rebindings are annoying, even though I have noticed that many games (such as valve games) automatically figure out your layout and rebing your keys accordingly. When I switched to colemak I phonetically rebound all the qwerty hotkeys in StarCraft to their colemak places. So S -> R ; D -> S ; E -> F.

    The big annoyance in StarCraft are the arcade games where they throw hotkeys left and right. When I do play arcade games I just switch to the grid layout, which is smart and automatically sets itself up for colemak.

    Congrats on switching to colemak.

    Whoa, I have never noticed that about valve games (or any other for that matter). I always switch back to QWERTY before launching them, though, so I'll have to leave things in Colemak sometime and check it out. Since I didn't order a colemak keyboard or pry up all of my keys, I can always look at the keyboard real quick in the heat of the moment if I need to, so I haven't felt the need to remap anything.

    Thanks!

    DreymaR said:

    I used colemak-vim a lot and made my own version of it and put a lot of energy into that. I ended up scrapping the project.

    Thing is, making your own everything breaks the default vim so you're lost when you start up vim on a new computer. Also, you can hardly remap *anything* without breaking something else that you might need further down the road.

    When I want my own navigation mappings I rely on Extend mappings (see my sig topic).

    Yeah, that was largely my experience as well. I'm really happy just using colemak's layout for vim. And like I mentioned, I'm often in the position of swapping seats with a fellow programmer at work, so remapping would add a lot of difficulty for me there, too. Plus, we all know that colemak is so much more efficient than QWERTY anyway, I'm sure it more than makes up for whatever little is lost by the small disadvantage of using it with vim. ; )

    And thanks, I'll definitely have to give Extend mappings a look.

    Offline
    • 0
      • Index
      • Experiences
      • From QWERTY to Dvorak to Colemak, and writing code all the way