The second productivity tip for a programmer is so obvious that I almost never hear about that. I guess we all have read tons of posts about mastering our toolset, languages, time management, and so on. Maybe you have a different experience, but I almost never hear about the need to master just the typing. I am not talking here about remembering shortcuts or doing things without a mouse but just typing. This sounds so trivial and so obvious, still makes an incredible difference. Let me share my story.
Before I learned how to type correctly
For more than twenty years of using a keyboard, I have never learned to type correctly. I remember that as a kid, I have tried a bunch of programs that were showing how to type correctly. Just for a while, unfortunately. They were so boring and - at least those days - I have not seen any benefit from typing faster. Over years, I have become better and better at typing. Still, without doing that incorrectly. By “better” I meant I could type faster and maybe with slightly fewer errors than before. I thought it was good enough, even for a programming job.
First decade of work
With this working but still incorrect skill, I spent my first ten years doing software engineering. But one day, I just decided that it is high time to at least try once again to learn typing. I did not know exactly what for, I was curious whether I could benefit from that anyway. I was able to type moderately fast, but as I love searching for possible improvements, the idea of trying looked more and more tempting. I set a pretty relaxed deadline for about a year to rewire my brain and develop new typing habits. I jumped to the first learning page I googled and started doing the first lessons immediately.
First week of learning
The first lessons were pretty painful. I started hard and my hands were pretty exhausted after typing keys in that “weird day”. Nevertheless, the more lessons I completed, the more sense I have seen in this. I think this was the breaking point - I remember I said aloud that this “correct way of typing” had some logic behind it. Immediately, I started trying to use this correct technique at the job. This was not easy, because overall my speed of writing decreased dramatically. The most difficult was to get rid of old habits and type in a new way, where one finger is mapped to only one key. Old habits constantly were reminding about themselves, especially when writing things like passwords. I had to consciously try to forget them and apply what I had just learned.
Second week of learning
I started hard and continued at the same pace also in the second week. Still, by “hard” I mean training for only about half an hour with lessons, sometimes maybe slightly more, and applying the technique at work. So actually not that hard that it sounds. Nevertheless, I realized my brain started to memorize some mappings, and that gradually the correct technique started to feel more natural. Still, the speed was pretty slow and I did many mistakes. This was pretty annoying, but this is most of the time the price of learning new things.
Third week of learning
After my brain mapped mentally all keys to my fingers, the speed of learning increased significantly. I was typing the correct way at work and this helped much to adapt. I think by the end of the third week I started typing faster than ever before. It was about 2 times faster and with a much lower percentage of mistakes. This was already cool!
After a month and further
After a month I completely forgot the old, incorrect habits. What is even more important than fast typing - writing became a real pleasure. I can write almost as fast as I think, which really helps to keep the flow of thoughts. Additionally, fingers do not need to do long distances across the keyboard as they previously did, to be honest. I do fewer mistakes and also found a cool game - to write as fast and with as low a number of mistakes as I can. There are a bunch of cool programs that can measure that - writing became not only a pleasure but also a joy!
Overall, few takeaways I can share:
- I thought I would need much more time to get up to speed. It was enough to train for some time every day and at work while doing regular tasks for a month. Less than 10% I initially estimated!
- Brain and muscle memory helps a lot in writing - mapping each finger to a dedicated key is so important. Eventually, writing becomes similar to speaking - there is no need to think about how to write - it happens automatically.
- Before I started learning, I tested my speed and accuracy. I was able to write ~150 chars per minute with ~5% of mistakes. After some time, I reached about 350-400 chars per minute with ~<2% of mistakes. Definitely much better! Still not great but this will come with practice. I have heard 500 chars per min is a speed that professionals usually achieve and this is my long-term target that should be achieved without any further conscious intervention I think.
- Writing became a real pleasure. Who do not like pleasures?:)
- I am doing day-to-day tasks even quicker than before. I chat with lots of people, often write tons of emails, etc. That skill definitely pays off all invested time!
- I think it was one of the best investments in my spare time. Little learning will save hours and hours every longer period of time.
Here is the chart of my progress over time:
What we can notice from the chart is that the typing speed increased significantly at the beginning (grey bars), the same with the accuracy (red bars). Over time, the progress is not that notable, but still steady.
Why I am writing that blog post? I have never realized that learning how to type is such a good investment. I am trying to spread that everywhere - even my wife started practicing. She now types incredibly fast and is really happy that she has started this little journey. I can strongly recommend that to anyone who does the work in front of the screen, especially to all devs. At least try, for sure you will never regret it!
BTW, there are lots of free tools that could guide you. I especially enjoyed Polish pisaniebezwzrokowe.pl or Klavaro in Linux.