Typing fast and CS:GO

If you’ve ever played typeracer, then you understand how much of a skill fast typing is. Some people are able to type nearly 200 words per minute, but the average typist can only get around 60. The site measures typing speed by providing a short paragraph, and having you “type over it”, where you produce the text exactly as it is written, with capitalization, punctuation, spaces all included.

The implicit assumption here is that the proper way to measure typing speed is by limiting the domain of what you type to English sentences. The gap in typing speed, between the 60wpm’ers and the 200wpm’ers, closes almost entirely if the text is just random letters, or if the letters are presented to the typist one at a time as they go. This is means the mechanism for improving typing speed lies mostly in being able to form a series of gestalts, and letting muscle memory handle the rest.

A fun exercise, if you’ve played typeracer, is to try reproducing a C document as quickly as possible. Typing brackets and parenthensis will feel clumsy and awkward, even if you are an experienced programmer, because editors autocomplete them or because you don’t write code with a focus on speed – a more common bottleneck is finding APIs or logical reasoning. (I found that a weird exception for me is writing loops, specifically for (int i = 0 ; i < n ; i++), which I can hammer out like its English prose. Everything else was a mess!)

These effects are probably due to “chunking,” which I’ve heard of in the context of chess. Most experts at chess can memorize the position of pieces on a chess board almost effortlessly, as long as the setup is from a real game. If the same pieces are placed at random, they will do no better than anyone else. This is because chess experts have a rich fabric of learned patterns to help memorize a real configuration. If the configuration is pure noise, they lose their advantage.

I’m writing about all of this because I’ve noticed the same exact principle holds in Counter-Strike: Global Offensive (which I recently started playing again). Although players could stand in an almost unlimited number of positions, most will defend a control point from only a handful. An experienced player knows this, so they “pre-aim”, meaning they move their crosshair to where they expect enemy players to be before they expose themselves. With enough practice, a player can look in the right spot as they navigate the entire map, so that eliminating the enemy requires small corrections in aim, and rarely large and imprecise movements.

So to get better at CS:GO, it’s much better to learn where to anticipate the enemy, rather than to just aim faster. The largest gains come from intelligent anticipation, not improved reactions.