I’ve been thinking a lot about typing lately. I skipped typing class in high school because… well mostly because it was in between me and programming class, and I wanted to program, damn it! The principle of the school was convinced: I’d had a 286 or better since I was in elementary school, that seemed legit. I could type fast enough, wasn’t looking that often, and I’d get enough practice while coding anyway, right? So I skipped two semesters of pre-reqs and jumped into the deep end.
I was half-right. Typing didn’t keep me from graduating with great grades, or getting great jobs. But 15 years later, I was at that same plateau. I could mostly touch-type in email and chat, but when programming, sometimes typos meant I couldn’t quite get into flow. I’d hit hiccups on number signs, symbols, and more involved vim commands (Is anyone out there touch-typing commands like this?
:10,$s/\.oldClass/.newClass/gc
My intern host at Google told me once “whatever tools you use… master them.” This conversation was about text editors, but the keyboard is an even more basic tool. Long story short, I developed a new-found appreciation for the fundamentals.
So I went looking for the ideal programming typing instructor. This is subjective, obviously, but my ideal would be fun, relaxing, self-paced, effective at teaching me, and it would weight symbols like these more heavily:
< > [ ] { } . ; $ ^ && || # @ = + - " '
Here’s what I came up with, roughly in order of how much I’ve used them and how much I can vouch for them:
This fits most of the bill. It’s not self-paced, and it doesn’t do symbols, but it’s so fun and relaxing, I actually wanted to play. When’s the last time you really enjoyed a typing instructor? If you could use some brushing up on your basics, come back here from time to time.
macbook-console> brew install gtypist
GTypist works right from the console on any linux system, and has several courses to choose from, all of which feel super logical. I guess you’d expect all that from the people at GNU! You can choose from a simply QWERTY overview, to detailed courses (symbols!) and even DVORAK and international options.
If you’re early on, go for the “Q” courses (Quick Qwerty). If you’re more advanced, skip straight to “T” courses (Touch Typing). They all show the keys they add in, so you can jump right to the symbols you want to practice.
Keybr just launched on ProductHunt last week. What I like about Keybr is that it starts simple at your own pace with just the homerow. Then it never ends. You just start typing, and the “AI” notices how well you’re doing. If you’re speeding along typo-free, it’ll add a new key to the mix. If you need some work, it gives you the time to master what you’ve got before moving on.
You can also log in to save your progress and pick up where you left off. No need to install anything, just a browser, and you’ll pick up right where you left off.
Probably the least fun or relaxing of the group. But the most realistic for programming. You select snippets of code (real open source code!) in your choice of languages, and that’s what you type.
This is the “jump into the deep end” option – you get thrown in with all possible characters. But you do type real code, without the usual pauses to stop and think interrupting you. So if you just want practice real life coding (complete with semi-colons, brackets, and terrible variable names) then this is for you. You can upload your own code samples as well, in the paid version.