Mike MJ Harris

Me and My Keyboard


This is an unashamed, self congratulatory ode to how much I love my keyboard skills. My hands dance over the keys, words streaming from their tips, dev tools opening after a magic combo of fingers flicks, tabs switching, panes resizing, lines jumped, macros run.

It wasn’t always this way. There’s no big secret in getting better - it’s taken time, effort and conscious practice. This is a reminder to myself that these things don’t happen overnight. Here’s quick journey of me and my keyboard, stopping off at all the places where I’ve worked along the way.

keyboard with stikcers over most of the keys

The seed of inspiration

My first job was in finance and being able to navigate an excel spreadsheet quickly was essential - so much so that part of the onboarding exams they took away our mouse forcing us to learn keyboard shortcuts. Ten years in finance and the shortcuts became second nature. But there was a catch - I was still tapping away with a couple of fingers not touch typing.

Consciously deciding to get better

In 2011 I’d decided my future lay in coding. Learning to code was obviously key but I also thought that if I was to spend a large chunk of my life wielding a keyboard I should try and make sure I could use it as quickly and effectively as possible.

Learning touch typing is a lot of repetition and practice and you can fit it into short chunks of the day. This was ideal and during coffee/lunch breaks I got to finesse my skills.

I’d also been researching coding and learnt about VIM. This seemed to tick all the boxes in how I wanted to operate - purely focused on using the keyboard with sophisticated key strokes to help make the terminal dance. I was hooked. I started learning Vim. It’s hard.

I’m a coder!

2014 I headed off to general assembly to become a full time coder. My touch typing was ok. I could navigate around in a single document in vim. I was going to rule the world. At GA we used sublime text - this was awesome in terms of managing multiple files with a whole bunch of awesome features (multiple cursors swoon…) I continued to code using sublime for the next year but I still thought Vim might be somewhere in my future so I installed a vim plugin for sublime - in insert mode you get all the sublime goodness but hit the magic escape button and you can dance the dance of Vim, hoping from word to line to paragraph with ease.

New Job, New IDE

2015 and I was off to MOO. A big job at a big startup and a new big IDE to learn. We were coding part of the time in Java and PHP and needed a more powerful tool - step in Intellij. A bit more cumbersome than sublime but it worked welland to my delight it came with a Vim plugin too. Hurrah. My touch typing had stalled a bit so I put stickers on my keyboard to hide the keys. You think you don’t look at your keyboard but you do. Try a few stickers (i’ve got some spare) it really challenges you although makes pairing hard...

keyboard with stikcers over most of the keys

At MOO I was introduced to sshing onto servers and running code there. When on a remote server or when coding javascript/css locally I tried to use Vim. However I was struggling with navigating around - i’d read a blog post once saying it was ‘cheating’ to install plugins so I was trying to do without. Luckily there were a bunch of Vim users at MOO and a slack channel to share thoughts. The assured me plugins were the way forward and after a bunch of tips and advice I installed Ctrl P and NerdTree among others and I was off - this suddenly made it a tool I could viably use.

Practice and Vim Golf

I pushed myself to learn more, devouring blog posts, playing vim golf, updating my vimrc file, asking others for tips and help and trying things out. Leaving MOO and starting at the Royal Academy I left behind Java and PHP - onto Ruby and Javascript. Most of the team there were using Vim so I decided this would be my main day to day tool - I slotted in as if I was an experienced pro - all the purposeful practice had paid off.

Six months on and I continue to grow and learn. For most basic functionality I reckon I’m as quick if not quicker than other tools. However it’s the power functions that are a treat - complex, concatenated regexs updating multiple buffers is now commonplace. Writing quick macros means tedious tasks become simple, each one saving me previous time. I can either be more productive or finish early. In a future post i'll be talking about how I've moved my dev environment to the cloud - I don't think I could of done that as effectively if I my keyboard skills weren't up to scratch.


I want to code and I want my thoughts and understanding to be the limiting factor, not my interaction with the keyboard. Do you need to touch type or learn vim? No not at all - many coders I know don't but for me it was worth it.

It gives me a thrill when I learn a new shortcut or feature. I know I’m going to get better but for now I want to sit back and bask in a seven year slog that has turned out just the way I wanted it to.


Some links to helpful tools