and built aoeu: a tui Dvorak teaching application built for programmers.
The Dvorak keyboard layout is an ergonomic alternative to mainstream QWERTY layout. Although spelled similarly, Dvorak (Dah-vor-ack) should not to be confused with the popular composer Antonín Dvořák (Dvo-zhack)!
Choosing a layout
Over one winter break in college, I decided to learn an alternative keyboard layout. My limited timeframe meant I had three weeks to become proficient enough with the layout such that I can resume a normal level of productivity by the start of the Spring semester. So why choose a layout that only shares 4 key locations as QWERTY when other layouts like Colemak are more similar and much easier to learn?The Dvorak layout
Firstly, I wanted to switch to the most ergonomic layout. Many people learn an alternative layout to increase typing speed, but I was targeting typing efficiency. I've dealt with minor carpal issues in the past and I value my hand health highly. From my research, Dvorak seemed to be the best layout ergonomically that wasn't also overly obscure, so I chose it.Dvorak vs Colemak ergonomics
After watching How I went from 10 to 130 WPM in 3 months by Penguify about his journey learning Colemak, I didn't want to risk losing my QWERTY skills like he temporarily did. I think the main reason people (including Penguify) lose QWERTY skills after switching to Colemak is because of the similarity between the layouts. If you train a golf swing for years and then pick up baseball for a few months and irregularly practice your golf swing, it only makes sense that your new baseball muscle memory would impact your swing. What about if instead of baseball you took up ice skating? Once you return to golf, your swing will likely remain unchanged because ice skating shares little resemblance with golf. The same applies (I believe) to keyboard layouts. Dvorak is so different from QWERTY, it's actually an advantage as it's less likely to impact existing muscle memory. Over the initial weeks and months of learning Dvorak, my QWERTY speed and skill remained unchanged despite hardly using the archaic layout :^).How I learned Dvorak in 3 weeks
First, I worked through TypingClub to learn the basics of touch typing: the location of each key and which finger to press it with.
Takeaways:
1. Take frequent breaks. Building muscle memory is a lot like building real muscle. It get strengthened from rest, not work. Don't expect to see improvement over the course of a session, expect to see it over the course of days and weeks
2. Value accuracy over speed. Hitting
3. Know when to move on. Once you feel yourself plateauing, move onto the next step! Similarly, don't start practicing difficult words and symbols before you've mastered the alphabet.
4. Have fun! Remember this should be a fun challenge, so take a break if it's getting stressful or (overly) miserable!
AoeuI built aoeu to help programmers switch layouts more quickly. Other typing resources focus on learning to type quotes while aoeu is a resource for practicing words and symbols that are common in programming. Through focused practice, facilitated by aoeu, programmers can speed up Dvorak's intimidating learning curve. Aoeu teaches in short, focused typing tests. Each lesson has one focus, from common shell commands to popular language keywords.
I initially wrote aoeu in Python using the Curses library for the ui, but it had some issues. The Curses library would completely break the tui if the terminal was resized (really awesome feature of that library). Aoeu was written in go and uses the tui-go library for the ui. Aoeu breaks everything down into words, meaning the user must correctly type a word before moving onto the next.
aoeu on GitHub