Go Code Typing Test

Live CPM0
Accuracy100%
Time01:00
Start typingGo / 60s
Type the displayed code. Pasting and drag-and-drop are disabled.Ready for Go, 60 seconds. Start typing when you are ready.
type AccountServiceBuildReport struct { accounts map[string]Account events []AccountEvent } type Account struct { ID string; Name string; Balance int64; Active bool } type AccountEvent struct { AccountID string; Kind string; Amount int64 } func NewAccountServiceBuildReport() *AccountServiceBuildReport { return &AccountServiceBuildReport{accounts: map[string]Account{}} } func (s *AccountServiceBuildReport) Open(id, name string, balance int64) bool { if id == "" || name == "" || balance < 0 { return false } if _, exists := s.accounts[id]; exists { return false } s.accounts[id] = Account{ID: id, Name: name, Balance: balance, Active: true} s.events = append(s.events, AccountEvent{AccountID: id, Kind: "opened"}) return true } func (s *AccountServiceBuildReport) Transfer(from, to string, amount int64) bool { if amount <= 0 || from == to { return false } source, sourceOK := s.accounts[from]; target, targetOK := s.accounts[to] if !sourceOK || !targetOK || !source.Active || !target.Active || source.Balance < amount { return false } source.Balance -= amount; target.Balance += amount s.accounts[from] = source; s.accounts[to] = target s.events = append(s.events, AccountEvent{AccountID: from, Kind: "sent", Amount: amount}, AccountEvent{AccountID: to, Kind: "received", Amount: amount}) return true } func (s *AccountServiceBuildReport) Summary() map[string]int64 { result := map[string]int64{"accounts": 0, "active": 0, "balance": 0} for _, account := range s.accounts { result["accounts"]++; if account.Active { result["active"]++ }; result["balance"] += account.Balance } return result }
Focus here and start typing to begin
built for developersReal code typing practice. Useful metrics. Improve faster.Learn more

Codestroke is a code typing test for developers. Practice real JavaScript, Python, SQL, Java, C++, HTML/CSS, PHP, Go, and Kotlin snippets instead of ordinary prose.

This Go typing test focuses on structs, maps, slices, and explicit error returns. Choose a 30, 60, or 120 second session and track your code typing speed and accuracy as you practice.

Go coding speed practice

Practice a Go (Golang) typing test with structs, maps, slices, and explicit error returns. Build coding speed with concise, strongly typed Go syntax.

Try the main code typing test or choose another language from the directory below.

01

Real snippets

Practice syntax, punctuation, and indentation developers actually use.

02

Useful metrics

Track live CPM, accuracy, time, and detailed session results.

03

Flexible practice

Choose a 30, 60, or 120 second test and improve at your pace.

how speed and accuracy work

Code typing speed is measured in CPM (characters per minute), so symbols, brackets, and indentation count just like letters. Accuracy shows how much of the snippet you entered correctly. Pick a language to practice a focused code typing test:

code typing test FAQ

What does the Go typing test include?

The Go test includes realistic snippets with structs, maps, slices, error handling, and concise typed functions.

What is a code typing test?

A code typing test measures how quickly and accurately you can type real source code instead of ordinary prose. Codestroke is built for developers.

How does a coding speed test work?

Code contains symbols, brackets, and short tokens, so CPM measures every typed character. Codestroke also reports WPM, accuracy, and the selected test duration.

Why measure CPM instead of WPM?

Words per minute can be misleading for code because syntax contains punctuation and short tokens. CPM gives a clearer view of code typing speed.

Which languages can I practice?

You can practice JavaScript, Python, SQL, Java, C++, HTML/CSS, PHP, Go, and Kotlin snippets.

Is Codestroke free?

Yes. The typing test is free in modern web browsers, and you can begin as a guest without creating an account.

language directory9 Language Speed Tests & Technical ExplainerExplore

Go typing practice for structs and error handling

Build Go fluency with compact services, maps, slices, structs, and explicit error-return branches. The snippets reflect Go's direct syntax so you can practice speed without losing the small punctuation details that keep code readable.

01structs, methods, and constructors

02maps, slices, and sorting helpers

03validation, retries, and error returns

Keep declarations and short conditional branches distinct; Go's compact lines make small omissions easy to miss. Compare code typing scores on the leaderboard.

CPM vs WPM in CodeCode snippets contain symbols, brackets, and short tokens. CPM (Characters Per Minute) measures every keypress accurately, while WPM equals CPM divided by 5.
Real Snippets & DurationsPractice 30s, 60s, or 120s sessions with real language syntax across 9 programming languages in guest mode or with optional account sync.