Stored in this browser

Your work belongs to you.

Progress, code and reflections stay on this device. Export a backup whenever you like.

0days complete
—quiz average
45days in the path

Make it personal

Backup and restore

Your JSON backup includes quiz scores, task status and reflection notes.

Day by day

Course record

01

Setup and toolchain

Install Go and learn the commands that turn source into a dependable program.

Open
02

Variables, types, constants

Use Go’s type system, zero values, conversions and constants with confidence.

Open
03

Control flow

Shape programs with Go’s compact if, for and switch statements.

Open
04

Functions and closures

Compose behavior with multiple returns, variadic functions, closures and defer.

Open
05

Arrays and slices

Understand slice headers, shared backing arrays, capacity and append.

Open
06

Maps, strings, runes

Work safely with maps and Unicode text instead of assuming every character is one byte.

Open
07

Word-frequency CLI

Build a tested command-line tool from the foundations in Week 1.

Open
08

Structs

Model data with literals, embedding, comparison and clear invariants.

Open
09

Methods

Choose value or pointer receivers and understand method sets.

Open
10

Pointers and memory

Use pointers, nil, new and make without importing C’s mental model.

Open
11

Interfaces

Design small behavior contracts and avoid the nil-interface trap.

Open
12

Standard interfaces

Connect your types to fmt, errors, io and sort.

Open
13

Errors and panics

Create, wrap, inspect and recover from failures deliberately.

Open
14

Library management CLI

Combine structs, interfaces and typed errors in a local project.

Open
B1

Catch-up & review I

Revisit the weakest topics from Weeks 1–2 or recover a missed day.

Open
15

Packages and modules

Organize real programs across packages, modules and internal boundaries.

Open
16

Testing basics

Write table-driven tests, subtests and useful helpers.

Open
17

Benchmarks, fuzzing, coverage

Measure code, explore unexpected inputs and use coverage as evidence.

Open
18

Generics I

Write reusable functions and types with precise constraints.

Open
19

Generics II and iterators

Use slices, maps and iterator APIs in modern Go.

Open
20

Files and I/O

Stream, scan, copy and walk files while handling cleanup.

Open
21

Log analyzer

Build and test a multi-package log analysis tool.

Open
22

Goroutines

Launch concurrent work and wait for it without leaking tasks.

Open
23

Channels

Coordinate values and ownership with buffered and unbuffered channels.

Open
24

Select and time

Combine channels with timeouts, tickers and cancellation.

Open
25

Sync primitives

Protect shared state and use the race detector to prove it.

Open
26

Concurrency patterns

Build worker pools, pipelines and bounded parallel work.

Open
27

Context

Propagate cancellation and deadlines across call boundaries.

Open
28

Concurrent URL checker

Ship a race-clean worker-pool application.

Open
B2

Catch-up & review II

Consolidate testing and concurrency before building services.

Open
29

JSON

Encode APIs with tags, custom formats and careful decoding.

Open
30

HTTP server

Build and test handlers with the standard library ServeMux.

Open
31

HTTP client and middleware

Set timeouts, decode responses and compose handler behavior.

Open
32

REST API

Design CRUD routes, status codes, validation and an in-memory store.

Open
33

Databases

Use database/sql, transactions and a repository boundary.

Open
34

CLIs, config, logging

Configure a service, emit structured logs and shut down cleanly.

Open
35

Todo REST API

Combine HTTP, SQLite, validation and logging in a tested service.

Open
36

Idiomatic Go

Refine names, package APIs and zero values for clear Go code.

Open
37

Performance and profiling

Find hot spots with evidence and reduce avoidable allocations.

Open
38

Runtime internals

Build a useful mental model of scheduling, GC and happens-before.

Open
39

Reflection, embed, build tags

Use metaprogramming tools narrowly and deliberately.

Open
40

Tooling and shipping

Vet, lint, cross-compile, containerize and automate checks.

Open
41

Capstone build: design and core

Design Spendwise and build its service and storage layers.

Open
42

Capstone build: test and ship

Finish Spendwise, test it, ship it and take the final review.

Open
B3

Catch-up & final polish

Redo weak tasks or add the final capstone polish.

Open