Skip to content
FreeType

Go typing test

Explicit error handling and tight, gofmt-clean structure.

0 wpm100% acc0sstart typing…
max.go
func Max(a, b int) int { if a > b { return a } return b }

Characters that slow you down in Go

  • :=Shift-semicolon then equals — Go's most typed operator.
  • !=Shift-1 then equals, in every error check you write.
  • { }Braces are mandatory even for single-statement blocks.
  • *Shift-8 for pointers, common in method receivers.
  • `Backtick pairs wrap struct tags.

The error check is the most typed line in Go

The nil error check appears more often than any other line in most Go codebases. It contains a shifted exclamation mark, an equals, and an opening brace, and you will type it thousands of times.

That repetition is an opportunity rather than a chore. Drilling this single line until it is one continuous gesture removes a real, measurable amount of friction from every day you write Go — the rare case where practising one specific sequence pays off directly.

Short declaration puts two symbols together

The short variable declaration pairs a shifted colon with an unshifted equals. The shift release between them has to be clean, or you get a semicolon or a plus where the colon should be.

It also appears at the start of lines, before your rhythm has settled after a newline. Practising declarations immediately after a line break is more representative than practising them mid-line.

No semicolons, but stricter braces

Go drops the statement semicolon, which removes a right little-finger press from every line. In exchange, braces are mandatory even for single-statement blocks, and gofmt keeps the opening brace on the same line.

The net effect is a lighter symbol load than C++ or TypeScript but a more rigid shape. Go scores tend to sit between Python and JavaScript for most typists.

Struct tags bring the backtick back

Struct tags are the one place Go uses the backtick, and it uses it in pairs around a string that itself contains quotes and underscores.

It is a short sequence but an awkward one, combining the furthest top-left key with shifted quotes and a shifted hyphen. If you write API structs, it is worth a few minutes on its own.

Frequently asked questions

Why does Go feel easier to type than other C-family languages?
It has a deliberately small syntax and no statement semicolons, so there are fewer distinct symbols and far more repetition of the same few shapes.
What should I drill first in Go?
The nil error check and the short declaration operator. Between them they cover a large share of everything you actually type, so improving those two moves your real-world speed more than general practice would.
Is Go good practice for other languages?
It builds rhythm well because of the repetition, but it under-trains bracket and generic work. Pair it with TypeScript or C++ if those are also in your stack.

Practise by level

Related reading

We stand with Palestine.