Want to be a better coder? Type faster.

Want to be a better coder? Type faster.

This isn't the first time a post has been written about this subject, the infamous Jeff Atwood, creator of StackOverflow, wrote about it before on his controversial blog. Needless to say, this subject comes up relatively frequently and every time it is as polarising as ever. The unfortunate reality is however, that typing faster gives you a higher probability of progressing faster and getting better results, in almost all areas of IT.

The keyboard is the main source of input for our computers. It's how we run commands, how we communicate with our teams remotely, how we search for solutions to problems on StackOverflow and ultimately how we put that information into practice writing it into our code. It all boils down to one, simple fact of physics and that is, if you can reach the keys you need faster to perform actions than someone else, you have an advantage over them that allows you to progress faster than they physically can. Does that always mean that someone who types faster will be better? No, of course not, I've seen slow typists that are far better than fast ones in various areas of IT. It is just one variable out of many variables but it is a variable that most people can improve without much effort.

Take two people, both of them are equally as skilled at coding. One of them can type at 50 WPM and the other can blast out bursts of 120 WPM. Which one do you think will produce results faster? The one with the higher typing speed will. It's not just about writing the code itself, it's about being able to reach those keys faster than the other person for all of the actions you are performing around the act of coding, such as debugging, testing, using editor shortcuts, searching Google for solutions, looking up API documentation and writing the code itself, rewriting it, improving it, shifting things around etc. All of these actions are going to be significantly faster for the person who can physically hit the keys they need to faster. It's just physics.

Now imagine that both of these people are young, with the same aptitude and learning speed ability (an imaginary example of course as in reality this is impossible), the only difference between them is their typing speed. Which one do you think will learn faster in this scenario? We learn by doing right? Coders know this more than anyone. The way to learn the quickest is to get stuck in and start writing code and building projects. The person who can hit the keys they need at a faster rate will be able to progress faster, for all of the reasons mentioned in the prior example of the standard processes that everyone goes through when writing code. Thus, they will actually learn faster and progress faster.

When I see someone who has been working with computers for a decade and can't surpass 100 WPM for even a short burst, I'll admit, it makes me cringe a little bit. It's just lazy, as Jeff Atwood put it. There's no reason you can't have improved your efficiency in this area in all of those years. There is one caveat, people who have second languages, I wouldn't expect them to be able to write at the top end of the spectrum. When typing in English my native language, I can burst at 140 WPM and keep up 110 WPM for consistently long periods. When writing Dutch, a language I have some level of basic proficiency in, I can only burst a measly 90 WPM and keep up around 60 WPM more consistently, with significantly more errors. By the way, when people see my typing form in person they are astonished at how I can type so fast and yet have possibly the worst form they've ever seen. So keep that in mind, my form is horrific. If I wasn't such a lazy ranting prick, I'd probably be able to type even faster by spending some time improving my form rather than writing this self-congratulatory rant piece.

Anecdotally, all of the best coders I've met in the business also happen to have at least a reasonably high typing speed (90+), with the top of the ladder also happening to have ridiculously high typing speeds passed 130 WPM. Just a coincidence or a useless anecdote though or that I just made it up, that's what you'll think when you read that.

The argument that you should type faster to learn faster and produce more results is the same as the reasons as to why you should use more productive editors, better tooling, more shortcuts and such. The concept is that you should be able to get more done in less time to be able to learn faster and produce results faster. Sure, someone who can type at 150 WPM could also blast out garbage tier code at 150 WPM and be the worst programmer of all time, but that's not really an excuse for not learning to type faster to help yourself improve faster.

You wouldn't make all of the same arguments around great tooling, editors, shortcuts and such, so why would you make those arguments around not taking some time to improve your typing speed?