Set up and run Go
Install the toolchain, understand the Go command, and build a first working program.
Beginner to professional
Follow the core sequence in order, then choose branches that match the systems you want to build. Published lessons are blue links. Planned lessons stay visible but inactive.
Install the toolchain, understand the Go command, and build a first working program.
Build fluency with Go syntax and the small set of language features used in everyday programs.
Move from valid Go to clear, maintainable Go with explicit contracts and predictable failure handling.
Deepen your mental model when performance or tooling work requires it.
Build reliable local workflows before projects become large.
Learn when concurrency helps, how goroutines coordinate, and how to stop concurrent work safely.
Treat tests, benchmarks, fuzzing, and static analysis as part of design rather than cleanup.
Build standard-library services first, then add frameworks and protocols when requirements justify them.
Compare ecosystem abstractions after learning net/http.
Choose protocols based on clients, latency, and operational needs.
Learn database fundamentals before selecting drivers, query tools, caches, or message systems.
Add abstraction only when its tradeoffs fit the service.
Scale reads and decouple work after mastering consistency basics.
Make services observable, secure, repeatable to deploy, and safe to operate under failure.
Operate services on an orchestration platform when scale demands it.
Study failure modes before splitting a reliable monolith.
Specialize after the core path. Pick the branch that matches the systems and teams you want to work with.
Build portable command-line applications and tooling.
Build reliable services around models, streams, and retrieval.
Use TinyGo for constrained hardware and WebAssembly targets.
Build defensive tools and review Go applications for common risks.
Read, contribute to, and maintain production Go projects.
No roadmap stages match this view.
Move down the core path in order. Branches are optional depth, not prerequisites. A grey item describes a planned competency and is deliberately not a link until its lesson passes publication checks.
Practical guidance for choosing how far and where to go next.
No. Complete the core path through testing and web services, then choose only the database, production, and specialist branches that match the work you want to do.
A developer can learn basic Go syntax in a few weeks, but production skill comes from building, testing, deploying, and operating several real programs. Use the roadmap as an ordered practice guide rather than a deadline.
Start with the standard library and net/http so routing, middleware, requests, responses, and cancellation are visible. Evaluate a framework later when its conventions or ecosystem solve a concrete project need.
A roadmap item becomes a link only when its tutorial is published on Golang Tutorial. Unlinked items remain visible so the full learning sequence stays useful without sending readers to drafts or missing pages.
Choose based on a project: CLI tools for developer tooling, cloud native for operated services, AI integration for model-backed products, embedded Go for constrained devices, or security for defensive engineering.