Home
Table of Contents
- πΉ Go From Zero
- π What is this?
- πΊοΈ Repository Map
- π Progress Snapshot
- π§ The Learning System
- π How to Use This Repo
- π οΈ Tech & Tooling Covered
- π The Six Months at a Glance
- π€ Contributing & Feedback
- π License
π What is this?¶
This repository documents my journey learning the Go programming language from absolute zero to building production-quality backend services. It is intentionally built in public so that:
- I learn faster (teaching + retrieval practice beat passive reading),
- I leave a portfolio that demonstrates real engineering, not just tutorials, and
- other developers can learn Go alongside me by following the same path.
It is structured around a research-backed learning system (see docs/RESEARCH.md) combining Project-Based Learning, Active Recall, Spaced Repetition, the Feynman Technique, and Deliberate Practice.
π§ New here? Start with the Roadmap, skim a cheatsheet, or read how to use this repo.
πΊοΈ Repository Map¶
| Path | What lives here |
|---|---|
ROADMAP.md |
The full 6-month β month β week β day learning plan |
PROGRESS.md |
Live progress: completion %, streak, hours, skill matrix, heatmap |
LEARNING_LOG.md |
One-line-per-day chronological log (the "table of contents" of my brain) |
journal/ |
Daily notes, weekly reviews, monthly reviews (the heart of the repo) |
projects/ |
Progressive projects, beginner β production capstone |
examples/ |
Small, runnable, single-concept Go programs |
exercises/ |
Practice problems with my solutions, graded by difficulty |
patterns/ |
Idiomatic Go & design patterns with runnable demos |
algorithms/ |
Data structures & algorithms implemented in Go |
interview/ |
100+ interview questions, system design, coding challenges |
cheatsheets/ |
Dense quick-reference sheets for every major topic |
patterns/ Β· docs/ |
Architecture docs, ADRs, and research |
docs/adr/ |
Architecture Decision Records |
templates/ |
Daily / weekly / monthly note templates |
scripts/ |
Automation (new-day generator, progress tools) |
cheatsheets/ Β· RESOURCES.md |
Curated learning resources |
.github/ |
CI workflows, issue/PR templates, labels |
Reference docs: RESOURCES Β· NOTES Β· FAQ Β· CHANGELOG Β· CONTRIBUTING
π Progress Snapshot¶
This repo tracks two different things β what's built and what I've personally studied.
π¦ Repository content (authored & verified)¶
The full six-month curriculum and all projects are written and in the repo.
| Metric | Value |
|---|---|
| Curriculum authored | β 6 months Β· 168 day notes Β· 24 weekly + 6 monthly reviews |
| Projects implemented | β 7 / 7 (beginner β production capstone) |
| Runnable examples | 98 (stdlib-only) |
| Exercises (with tests) | 72 |
| Interview questions | 220+ across 9 files |
| Cheatsheets | 10 |
| Build status | go test β 88 root packages passing (race-clean) β
|
Month 1 ββββββββββ 100% Fundamentals (content authored)
Month 2 ββββββββββ 100% Stdlib, Tooling & Testing (content authored)
Month 3 ββββββββββ 100% Concurrency (content authored)
Month 4 ββββββββββ 100% Web & REST APIs + Databases (content authored)
Month 5 ββββββββββ 100% gRPC, Architecture & Micro. (content authored)
Month 6 ββββββββββ 100% Production & Capstone (content authored)
π My study progress (the actual learning journey)¶
The honest day-by-day tracker β updated as I work through the material. Live detail in
PROGRESS.md.
| Metric | Value |
|---|---|
| Days studied | 1 / 168 |
| Current focus | Month 1 Β· Week 1 β Fundamentals |
| Current streak | π₯ 0 days |
| Study hours logged | ~1.5 h |
| Projects built myself | 0 / 7 |
π§ The Learning System¶
This repo runs a daily loop: Read β Build β Explain β Recall β Review.
flowchart LR
A[Read<br/>docs & books] --> B[Build<br/>code & projects]
B --> C[Explain<br/>Feynman notes]
C --> D[Recall<br/>self-quiz]
D --> E[Review<br/>weekly + monthly]
E -.spaced repetition.-> A
- Every day β a day note (topics, code, mistakes, questions, reflection, confidence score) + a commit.
- Every week β a weekly review (lessons, strengths, weaknesses, next-week goals).
- Every month β a monthly review + a project + a Git tag/release + a portfolio update.
See docs/RESEARCH.md for the evidence behind each choice.
π How to Use This Repo¶
If you're me (the author):
- Run
./scripts/new-day.shto scaffold today's note from the template. - Follow today's plan in
ROADMAP.md. - Code in the relevant folder; write the note; self-quiz; commit with a Conventional Commit.
- At week/month boundaries, run the review templates and tag a release.
If you're a fellow learner:
- Start at
ROADMAP.mdand follow it day by day. - Use the
cheatsheets/as quick reference and theinterview/bank for retrieval practice. - Build the
projects/yourself before reading my notes β then compare. - β Star the repo to follow along; open a Discussion to ask questions.
π οΈ Tech & Tooling Covered¶
Go 1.22 Β· net/http Β· chi Β· gRPC Β· protobuf Β· PostgreSQL Β· pgx Β· sqlc Β· golang-migrate Β· Redis Β· log/slog Β· testify Β· testcontainers-go Β· Docker Β· Prometheus Β· OpenTelemetry Β· GitHub Actions Β· golangci-lint Β· pprof
π The Six Months at a Glance¶
| Month | Theme | Project Output | Release |
|---|---|---|---|
| 1 | Go Fundamentals | CLI Todo app | v0.1.0 |
| 2 | Stdlib, Tooling & Testing | URL shortener (tested) | v0.2.0 |
| 3 | Concurrency & Parallelism | Concurrent web crawler | v0.3.0 |
| 4 | Web, REST APIs & Databases | Bookstore REST API + Postgres | v0.4.0 |
| 5 | gRPC, Architecture & Microservices | gRPC microservice + job queue | v0.5.0 |
| 6 | Production, Observability & Capstone | Multi-tenant SaaS backend | v0.6.0 β v1.0.0 π |
Full detail β objectives, weekly breakdowns, daily plans, reading, interview prep, assessments, milestones β is in ROADMAP.md. All milestones are published on the Releases page.
π€ Contributing & Feedback¶
Spotted a mistake in my notes or have a better idiom? Please open an issue or a PR β see CONTRIBUTING.md. Corrections make this a better resource for everyone.
π License¶
Code and content are released under the MIT License. Learn freely.