I am not the fastest typist… I know it. Up till about a year ago I was a two finger typist and my two fingers could fly over the keyboard doing all sorts of acrobatics getting me up to a whopping 30 odd words per minute. Not bad for two fingers but barely close to some of my friends who speed away at 90+ words a minute using both hands. So it bugged me…. I mean I would like to consider myself a professional developer and feel that if I will be typing most of days then I should at least be doing it with both hands and all my fingers.
With this in mind I set out to increase my typing speed. This is what I have done so far…
First Step – Get a good typing tutor program I searched the net and found TypingMaster Pro which I found to be really good. You pay a little bit for a full license, but hey, this is something I do every day so I don’t mind shelling out some bucks to reward someone for a good program, especially if it is going to help me in my professional career.
Initially I went through the main course of typing master and found it to be useful. Repetition, repetition, repetition = improvement. One big frustration was that it focused on the normal letters on the keyboard and when you are developing you are using symbols, but I figured you need to learn to walk before you can run.
Realigning my fingers to the correct position and breaking some bad habits was painful and one needs to be prepared for a substantial decrease in speed for a few weeks before it kicks in. I went down to 10 wpm and found myself reverting back to two fingers often when coding, so you need to be dedicated and not give up.
After doing the first course properly I was around 40+ words a minute “touch typing” stumbling my way along but seeing an improvement. Still, I was not happy.
Second Step – Get a good Keyboard Some of my friends started getting expensive gaming keyboards (typically mechanical key ones) which cost a fair amount – after seeing an improvement with them I decided I would get one. They are not cheap, but I do this every day for hours so I would be stupid to gripe about spending R1000 on a decent keyboard. I got the Steel Series 7G – it is about as hard-core as you can get. I am very happy with it but I do have two gripes about it…
No bottom left windows key (see pic below) – they have a special steel series button in its place which did take some getting used too and you would think at the price you are paying there would be some simple way to toggle this key to a windows key (if anyone knows how to do this it would be much appreciated if you leave a comment). No backlight keys – like I said this is a hard-core keyboard with no frills – I just wish it had a backlight because I do presentations in darkened rooms and it would help being able to see your keys at a glance – but not a deal breaker, especially if I was touch typing without looking down. SteelSeries-7G-9
That all being said, I found a remarkable difference in the keyboard comfort wise. I now have a motto for any developer… get a good Monitor, Chair, Keyboard and Mouse… these are your tools – don’t go cheap.
After getting the keyboard I didn’t see any significant jump in my typing speed – but the keys had a consistent feel and a nice clackity clack to them – so it did make life more enjoyable
Third Step – Standardize on a Keyboard Up to this point I had a good keyboard at home and a cheap one at work. I would also sometimes use my HP laptop keyboard which has a totally different layout. I found that this switching between keyboards really hampered my efforts to learn to touch type confidently.
Eventually I decided for at least now I would standardize on one keyboard, so I forked out some more cash for a second Steel Series 7G for work and whenever possible I take my keyboard with me to conferences when presenting on my laptop.
This might sound stupid, but it has happened in the past that when I code in front of a 100 people it makes me nervous and unless I am totally comfortable with my keyboard I begin to make silly typing mistakes. I decided to rather look like a nerd and bring my big keyboard with me… which helped. Pity about the backlight feature not being on the SS7G keyboard.
Standardizing on a keyboard really helped me have a consistent environment and I saw a jump in word per minute to about 55 per minute.
Fourth Step – Stop looking down Something I noticed after doing the typing tutorials and standardizing the keyboard was that I was still “cheating” when typing. By cheating I mean that I found myself ever so often glancing down to align my fingers with the keys while I was typing. I found this to be a problem because I would loose my place on the screen as I was looking down which I was sure was having a slight impact on my speed. Also it was hampering me with overcoming some of the last bad habits that I was unlearning with some of the fingers for certain keys.
At about the same time I saw a bunch of keyboard boxes lying around the office, and after a while I got a thought of making a cover for my keyboard so it would be impossible to see the keys. It looks like the following pictures…
I have heard people do a similar thing with putting a cloth over their hands. Personally I like the box approach as it gives my hands room to breath… but hey, every man to his own.
If you do the cover the keyboard technique prepare to have your world rocked for the first few days you do this. I felt like a blind man… literaly. My words per minute went down to about 10 per minute and I was continually making mistakes. But, there is light at the end of the tunnel – it has now been three weeks since I covered up the keyboard and stopped looking down and I am back up to where I was before and I have seen an improvement in consistency and a reduction in mistakes.
Something that I learnt the hard way was be careful when typing in passwords. I locked myself out of internet banking by typing in the wrong password on week two of covering the keyboard… which cause a whole bunch of unnecessary hassles. Other than that… it has been a good experience.
The pro side of this approach is that I now do not look down, which means I do not loose my place on the screen and pick up errors quickly. Also the cover turns out to be a handy place to put post it notes (if you are in to that sort of thing) or keyboard shortcut reminders etc.
Where to from here? I am re-going over the typing program. I found a course in it that does special characters, which I find is important for developers as we are using these symbols a lot, not just the standard letters. I don’t know if I will see any further improvements on my words per minute count to where I am here (I am sitting between 60 and 65 wpm) but am hoping that I can one day break the 100 wpm mark. I have noticed that consistency has improved, meaning before it would be a push to do 60+ wpm, now it is the norm.
The big question… Does this make me a better developer? Technically no, but in some areas it is beneficial – I feel more confident when I am pairing with other people and I am able to generate code quicker. Also because I am not looking down any more I am able to focus on the code on the screen and understand it better.
Of course there are more important things in a developers world like good design principles, patterns, understanding the language and the problems you are solving… but what the heck, sometimes it is nice to get into a rhythm and hear the keyboard tick along as you code.