Skip to the content.

Zero to Hero: Go — 35-Day Curriculum

A project-based path from absolute beginner to production-minded Go developer, pairing core concepts with hands-on projects built from scratch.


Week 1: Foundations (Days 1–7)

Day Topic Project
01 Toolchain, go mod, workspace, packages, fmt Hello, Go Modules
02 Variables, types, control flow, := vs var CLI Calculator
03 Functions, structs, multiple return values, basic errors Contact Card
04 Pointers, value vs pointer receivers, new Memory Explorer
05 Arrays, slices, strings, strings package String Statistics Tool
06 Maps, method sets, comma-ok idiom, embedded structs Word Frequency Counter
07 Packages, exported identifiers, go.mod and dependencies Multi-package library

Milestone: You understand Go’s core model — value semantics, explicit pointers, and why the language is deliberately small.


Week 2: Core Language (Days 8–14)

Day Topic Project
08 Idiomatic project structure: flat, cmd/, internal/, domain-driven layout Restructure the notes API
09 Interfaces, duck typing, type assertions, type switches Shape library
10 Error handling: fmt.Errorf, %w, errors.Is, errors.As, custom types CSV row parser
11 Generics: type parameters, comparable, custom constraints Generic Stack and Queue
12 sort, container/heap, container/list, adjacency-map graphs Data structures library
13 Closures, function types, higher-order functions, functional options Data pipeline
14 go test, table-driven tests, subtests, testing.B, testify Full test suite

Milestone: You can structure a Go project idiomatically and model any domain with interfaces, errors, and generics.


Week 3: Intermediate Patterns (Days 15–21)

Day Topic Project
15 io.Reader/io.Writer, fmt.Stringer, sort.Interface, embedding Interface showcase
16 Goroutines, channels, select, fan-out / fan-in, range over channels Parallel file hasher
17 sync.Mutex, sync.RWMutex, sync.WaitGroup, sync.Once, sync/atomic Thread-safe LRU cache
18 context — cancel, timeout, deadline, values; TCP echo server Cancellable HTTP downloader
19 os, bufio, io — file I/O, walking directories, io.Copy Config file reader
20 encoding/json, struct tags, streaming encode/decode, encoding/csv Config manager
21 flag package, cobra subcommands, stdin/stdout, exit codes todo CLI tool

Milestone: You can write concurrent programs, handle I/O idiomatically, and build CLI tools.


Week 4: Production (Days 22–28)

Day Topic Project
22 net/http — handler, middleware, http.Client, JSON API HTTP echo server + client
23 REST API with chi, JSON middleware, in-memory store Notes REST API
24 database/sql + SQLite driver, prepared statements, transactions Persist notes to database
25 Error hierarchy: sentinels, typed errors, HTTP error responses Clean error layer for notes API
26 log/slog — structured logging, handlers, trace IDs via context Structured logs across the notes app
27 go test -bench, b.N, -benchmem, go tool pprof Profile word-frequency counter
28 //go:embed, text/template, html/template, build tags, go:generate Embedded assets server with templates

Milestone: You can serve HTTP, back it with a database, instrument it with structured logs, and benchmark it.


Week 5: Advanced Golang Concepts (Days 29–34)

Day Topic Project
29 reflect — TypeOf, ValueOf, struct tags, reflect.Kind Custom Describe utility
30 Versioning, pkg.go.dev, Docker multi-stage build, goreleaser Package and ship the shape library
31 Interfaces: composition, nil trap, stdlib catalogue, accept-interfaces/return-structs, mocking, anti-patterns Pluggable notification system
32 Channel model: pipelines, fan-out/in, done channels, select, direction types, common mistakes Channel-based text pipeline + word counter
33 Goroutines & sync: Mutex, RWMutex, WaitGroup, Once, atomic, sync.Map, errgroup, deadlocks Concurrent download manager
34 Context deep dive: tree propagation, values, middleware, DB ops, leak detection, testing patterns Request-scoped pipeline

Milestone: You have a deep working knowledge of Go’s most nuanced subsystems — interfaces, channels, goroutines, and context.


Capstone Project (Day 35)

Day Topic Project
35 Capstone End-to-end CLI + REST API + database app

Apply everything you have learned across the five weeks to build a complete, production-quality Go application of your own choosing.

Capstone options — choose a scope that fits your time and ambition:

Small (2–3 days)

Medium (1–2 weeks)

Large (2–4 weeks)


Recurring Principles