Daniel Judd’s Interesting Software Blog logo

Learning to Type Again

In a previous post I stated I don’t use VIM in daily life and I think I could incorporate a surprising number of big changes this month or year into my typing habits that would undo previous years of contentment and improve about 90% of the work I do.

Why Typing as a Professional Skill is In Trouble #

I met someone years ago who applied for jobs only owning and using a mobile phone and I thought this was extremely unusual and now I feel like a minority who still can’t write seriously on any digital device other than a desktop computer with a physical keyboard. This person was the first instance that made me aware of things changing around me, and that was almost all big companies removing CV file uploads in place of short text boxes or forms, meaning people with proper CVs are directed to copy and paste each section in plain text or being asked to summarise and re-write what CV-parsers can’t read.

In the 2010s, the greatest thing I knew I could do to set me up with a “future-proof” skill was to quickly draft documents, even dictate notes as people spoke, and this has served me well but now speech-to-text on modern phones have good sound filtering and AI processes that replaces a particular set of professional skills, especially in work requiring subtitling or meeting minutes (without the click-clack sounds too). This reduces the reward for having such a skill and makes it more of a hobby than a necessity in most cases.

Much of my typing lately has been accompanied by popular editing tools (WYSIWYG) and this is another one of the skills I possess and hone daily. This skill can be aided by generic computer algorithms to parse my markdown instructions into templates and convert into many formats. Artificial Intelligence recognises the use of section headers, bullet points, and tables, but these are about the extent of its skill in writing anything believable, it still lacks the human touch and design that is required to surpass even the average poetic writer.

In reflection of AI’s impact on current jobs; those working as designers, data analysts, and content marketers have no goalpost more visible as people than what a computer could reliably predict, that’s why I still take care to edit my own ideas in the principle of where I think a goalpost lies in my structured writing. I often get things wrong from time to time but future me will recgonise these flaws but appreciate the ideas just the same.

Why VIM? #

Reflecting upon my previous post; I think admitting that a little bit of VIM knowledge could go a long way for me in software that I use on a daily basis — that focus would be on the web browser. There is a lot that could be done by the big 2 browser developers to make efficient browsing the best thing since introducing tabs. Currently the browser’s adopted shortcuts are made up of modifier keys weighted on the left side of the keyboard and using generic key bindings across operating systems and applications which often contain awkward or often repetitive hand combinations (Ctrl, Command, Alt, Shift).

What Microsoft classifies the term “keybinding” in 2024:

“Commands can have both single and dual key bindings associated with them. An example of a single key binding is Ctrl+S for the Save command. Dual key bindings require two successive key combinations to trigger a command. An example of a dual key binding is Ctrl+K,Ctrl+K to set a bookmark.”

Source: Microsoft

With a comparison to mobile phones; I feel more ambidextrous and “in control” pecking or swiping with the virtual keyboard than with my physical keyboard interacting with the desktop. A similarly efficient step on desktop would be a browser modification to increase ambidexterity on my keyboard. This is a likely permanent change I could undertake because it is unlikely that I would choose to ever switch from Firefox and you could say that the benefits of better browsing is less about writing and more navigation like it has evolved on phones.

Better Keyboard Shortcuts Using Addons #

Many applications have been created in cross-platform frameworks, usually exported as an electron or web assembly application; this means that you’d spend an increasingly greater time in some sort of browser type application.

Vimium is a browser extension that allows navigation using VIM-style key actions in the browser without requiring a mouse. This doesn’t feel quite as drastic as using a completely new browser just to have potentially nicer shortcuts (like “qutebrowser” did). This browser extension adds more shortcut keys to the browser, emulating some of VIM’s editing and navigation techniques and it is thoughtfully applied even though it may require some re-learning for those accustomed to using VIM.

xkcd 1823 comic

XKCD 1823

In 1993 you could’ve used VIM very similarly to how it’s used today; with a QWERTY keyboard and a text emulator — it certainly seems like nothing has changed for its long-term users since then. I can practice VIM almost anywhere today and I can learn to adjust my habits gradually without worrying of wasting a learned typing skill.

I plan on trying the addon “Vimium” for a few months to see if it would be optimal for both touch-typing and navigation without a mouse — in a set of applications most people like me now live in for development (the browser). I think it would reduce my use of strenuous shortcuts and need to locate my often hiding mouse cursor (cursors seem smaller than ever on today’s big monitors).

I don’t fear meeting halfway with this objective either; I could start with VIM-keys for my browsing (Vimium) and be content having learnt something new and productive. I currently measure my productivity by words per minute (WPM) but I also want to reduce my hand movements in a productive way through better shortcuts and using all my fingers without reaching for the mouse. Vimium allows this because shortcuts are better placed to not rely on “reaching shortcuts” as much.

Example replacements:

With Vimium, the keys often placed at the far-side of the keyboard are now all on the centre row (like g,h,j,k, and l replacing arrow keys, home, end, etc.) This makes keyboard browsing human-friendly without relying on a mouse, something most operating systems (besides Unix-based desktop environments) have failed to address for years — you can’t use or change key binds ubiquitously without additional layers of (sometimes virtualised) software.

Vimium is probably less popular and ubiquitous than other plugins but 6.2 million people have downloaded VIM for Visual Studio Code (VSCode) and the second most popular key-adaption plugin is 2.1 million for Sublime Text, thus people have already made the journey to learn some inescapable habit despite VSCode having their own unique set of typing and editing actions.

Like in my previous post, I never saw a reason in using VIM outside of its home (terminal that is) but I feel increasingly bewildered by varying implementations of accessibility standards based around frameworks and mobile-first development. Many developers switching to VSCode retain all their previously accumulated knowledge and do fine with VIM plugins or similar, so I want to incorporate some form of a fixed standard for future reasons too.

Touch-typing #

I have somehow not learned true touch-typing for many reasons including:

I’ve been typing sub-standardly for a while now and thought it was just supposed to be a little painful to write for hours — a lot like my note-taking and essay writing on paper used to be, but I was never fast at penmanship so I couldn’t refine that easily without losing legibility, whereas accuracy and speed is easily improved with a small subset of typing standards. My main reasons for adopting VIM and touch-typing is that I want to be typing for another few decades unassisted.

xkcd comic 1787

XKCD 1787

Combine touch-typing and Vimium and you get a streamlined typing experience in the browser that most people could actively learn who don’t need to muddle through VIM first. I’m also typing this in a web-based application on the desktop, setting aside the complexity of VIM to tackle smaller and realistic goals.

Goals to reach #

I want to be able to exceed my recent record of 80 words per minute typing speed by using touch typing which is more efficient. Secondly, I want to learn Vimium and navigate without having to think or take my hands away from my keyboard.

This could take anywhere from a month to a year, but I am progressing as you read this now.

E-mail 📧 | Github 🐱‍💻 | Subscribe to RSS 👨🏻‍💻