A complete, Go-only learning path: 158 numbered directories, each one building on the last.
Follow the numbers. Read skills.md first, then solve the challenge in README.md.
git clone https://github.com/altradits/challenges.git
cd challenges
cat 01-only1/README.md| Phase | Directories | What You Learn |
|---|---|---|
| 1 | 01–05 | Hello World — the four-line Go skeleton |
| 2 | 06–27 | Foundations — every core Go concept: functions, loops, structs, pointers, interfaces, errors, file I/O, regexp, sort, modules, testing, goroutines, channels, sync, context |
| 3 | 28–51 | Beginner practice — one concept per exercise, build speed |
| 4 | 52–80 | Strings package mastery — every strings/fmt/strconv function |
| 5 | 81–144 | Challenge problems — piscine-style, multiple concepts combined |
| 6 | 145–158 | Backend bridge (time, json, http, sql, config, logging, generics, graceful shutdown) + Capstones |
See LEARNING_PATH.md for the full table with every directory listed.
Every numbered directory has three files:
README.md— the challenge: what to build and what it must doskills.md— the concepts you need: read this before you startprerequisites.md— what to review if you get stuck
Work the pattern: skills.md → attempt the challenge → check prerequisites.md if stuck.
These 8 lessons teach every backend-essential package before the capstone projects:
| Directory | Teaches |
|---|---|
145-time |
time.Time, Duration, Parse/Format, Since/Until, weekday logic |
146-encoding-json |
json.Marshal/Unmarshal, struct tags, omitempty, Encoder/Decoder |
147-http-basics |
net/http handlers, ServeMux, request/response, http.Client |
148-database-sql |
database/sql, SQLite, QueryRow/Query, transactions, JOINs, migrations |
149-environment-and-config |
os.Getenv, flag package, 12-factor config struct pattern |
150-logging |
log package, slog structured logging (Go 1.21+), middleware |
151-generics |
Type parameters [T any], comparable, union constraints ~T |
152-graceful-shutdown |
os/signal, signal.Notify, http.Server.Shutdown with context deadline |
These foundation lessons cover every concept a Go developer needs before tackling real problems:
| Directory | Teaches |
|---|---|
13-structs |
Struct types, field access, constructors |
14-pointers |
&, *, mutation, nil pointers |
15-methods |
Value vs pointer receivers |
16-interfaces |
Implicit satisfaction, Stringer, io.Reader |
17-errorhandling |
errors.Is/As, wrapping with %w, panic/recover |
18-typeassertions |
.(T), type switches, any |
19-fileio |
os.ReadFile/WriteFile, bufio.Scanner, io.Reader/Writer |
20-regexp |
Pattern matching, extract, replace |
21-sort-and-math |
sort.Slice, math.Sqrt/Pow/Pi |
22-modules-and-tooling |
go mod, go fmt/vet/doc, golangci-lint, init() |
23-testing-basics |
Table-driven tests, t.Run, benchmarks |
24-goroutines |
go keyword, sync.WaitGroup, race detector |
25-channels |
Channel operations, pipeline pattern, worker pool |
26-select-and-sync |
select, sync.Mutex, sync.Once, time.After |
27-context |
Cancellation, deadlines, context.WithTimeout |
This repo contains only Go. Other languages live in their own repos:
- Python data analysis: altradits/python-data
- JavaScript frontend + database: altradits/js-mastery
- Career development + LinkedIn: altradits/developer-career
See CHECKPOINT_TIERS.md for which challenges test you at each 5%–100% proficiency tier.
Start at 01-only1. Follow the numbers to 158-bitcoin-oss.
01–05 Hello World → The four-line Go skeleton
06–27 Foundations → Every core Go concept
28–51 Beginner → One skill per exercise
52–80 Strings → Every strings/fmt/strconv function
81–144 Challenges → Hard piscine-style problems
145–152 Backend bridge → time, json, http, sql, config, logging, generics, graceful shutdown
153–158 Capstones → Real Go APIs + Bitcoin open source