Typing Hero App typingheroapp.com
Typing in Go — Speed Considerations for Go Developers

Typing in Go — Speed Considerations for Go Developers

· 2 min read · by Robin Érsek-Obádovics

Go was designed for fast compilation and simple syntax — and it shows in typing too. Far less syntax than Rust or TypeScript. But Go's explicit error handling (if err != nil) means typing the same 3 lines countless times. Master Go patterns and flow improves.

Go-specific characters

  • := short variable declaration
  • ***** pointers (*Type, &value)
  • {} curly braces (always required, even single statement)
  • CamelCase vs camelCase visibility convention
  • go func() goroutine launches
  • <- channel direction
  • ... variadic args
  • **/* / //* comments

Most-typed Go patterns

Function definitions

func functionName(arg type, arg2 type2) (returnType, error) { }

Always returns error. Drill this.

Error handling

result, err := doSomething()
if err != nil {
    return nil, err
}

You type this PER FUNCTION CALL. Drill until automatic.

Struct definitions

type User struct {
    Name string
    Age  int
}

Capitalized fields = exported. Drill.

Method definitions

func (u *User) GetName() string { return u.Name }

(receiver *Type) syntax common.

Interface implementations

type Reader interface {
    Read(p []byte) (n int, err error)
}

Goroutines

go funcCall(args)

Simple but ubiquitous in Go.

Speed tools for Go

  • gofmt — built-in formatter, no debate
  • goimports — auto-organizes imports
  • golint — lint suggestions
  • VS Code + Go extension — auto-complete, error display
  • GoLand — JetBrains' Go IDE
  • Snippet packs for boilerplate

Snippets to set up

  • iferrif err != nil { return ... }
  • fnrfunc name() (RT, error) { }
  • plnfmt.Println()
  • pffmt.Printf("")
  • forrfor _, item := range items {}

Go's repetitive patterns make snippets essential.

Why Go is typing-friendly

  • No semicolons to type (compiler inserts)
  • gofmt handles whitespace (no manual)
  • Short keywords: func, var, if, for
  • No exception syntax (no try/catch indentation)
  • Single way to do things (no decision fatigue)

But: explicit error handling = lots of repetitive typing.

Realistic Go typing speeds

  • 40 WPM: workable
  • 60-80 WPM: standard Go developer
  • 100+ WPM: senior

Go rewards clear thinking over typing speed. Code is read more than written.

Frequently Asked Questions

Is Go faster to type than Java?

Yes — Go is much less verbose.

How much time does err handling cost?

10-15% of total typing time. Snippets reduce to 2-3%.

Should I use generics in Go 1.18+?

Yes — sparingly. Slightly more typing for much better APIs.

Best Go IDE?

VS Code + Go extension (free, excellent). GoLand (JetBrains, paid).

Best layout for Go?

QWERTY standard. Brackets accessible.

Will Go's simplicity make me faster overall?

Yes — less syntax to type = more time thinking about architecture.

Build Go typing flow

Typing Hero App — free, no signup. Get to 70 WPM, then drill Go's repetitive patterns with snippets.

For more: How to type code faster, Touch typing for programmers, Typing in Rust.