Join 5,000+ Go developers

The best place to learn Go on the internet

Bite-sized lessons, deep courses, and a gamified practice app — everything you need to go from "Hello, World" to production systems.

ByteSizeGo gopher mascot
One useful email at a time — no spam, unsubscribe anytime.
176+interactive exercises
236free blog posts
30+hours of courses
New

Learn Go the Fun Way with GoFlow

Master Go through bite-sized, interactive exercises. Earn XP, build streaks, and level up your skills — one lesson at a time.

  • 176+ interactive exercises you can finish in minutes
  • Earn XP, keep daily streaks, and level up your gopher
  • Real Go code from day one — no setup required
Free to start — no card required
+10 XP
🔥 7⚡ 240 XP
❤️ 5
Fill in the blank
func main() {   msg := "Hello, Gopher!"   fmt.Println(msg) }
fmt.Printlnlog.Fatalprint()
GoFlow Gopher Mascot
Courses

Go deep, one course at a time

Production-focused video courses used by engineers at some of the biggest companies in the world.

Free List

58 Companies Hiring Go Engineers in 2026

Careers pages, remote policies, and how each company uses Go in production.

Google Cloudflare Docker Shopify Datadog HashiCorp +52
Join 5,000+ Go developers
Blog

Latest from the blog

Read all 236 posts →
getting started with goSep 20, 2026

How io.Reader and io.Writer Keep Go APIs Composable

Partial reads, EOF handling, io.Copy's fast paths, TeeReader and MultiWriter, buffering, and testing streams.

Read More →
best practisesSep 19, 2026

Table-Driven Tests in Go: Subtests, Parallelism, and Keeping the Table Readable

Structuring Go table tests so failures tell you which case broke: t.Run naming, parallel subtests, t.Helper, golden files, and the point where a plain test function wins.

Read More →
advanced topicsSep 18, 2026

Go 1.27: Generic Methods, encoding/json/v2, and What Actually Changes in Your Code

Generic methods, nested struct literal keys, encoding/json/v2, a uuid package, cheaper small allocations. What to use, what to test before you ship the upgrade.

Read More →
advanced topicsSep 16, 2026

Go Build Constraints: //go:build Syntax, Filename Suffixes, and Custom Tags

How go:build expressions and filename suffixes decide which Go files compile, plus custom tags, cgo constraints, and testing across platforms.

Read More →
best practisesSep 15, 2026

Testing HTTP Handlers in Go with httptest: Recorders, Servers, and Table Tests

Testing Go HTTP handlers with httptest.ResponseRecorder and httptest.NewServer: JSON bodies, headers, middleware, failure paths, and the mistakes that make tests hang.

Read More →
advanced topicsSep 14, 2026

Structured Logging in Go with log/slog: Levels, Attrs, Groups, and Handlers

How to configure log/slog in a real service: runtime-switchable levels, attrs and groups, context-aware handlers, source locations, and the allocation traps.

Read More →
Read all 236 blog posts →