← All Courses
Learn Go
Coming SoonCloud-native services, CLIs, and concurrent systems
Go Cloud-Native Concurrency CLI Kubernetes
Coming Soon
The language behind Docker, Kubernetes, and most of the cloud-native ecosystem. Go’s simplicity, fast compilation, and first-class concurrency make it ideal for building services, CLIs, and infrastructure tooling.
This course covers Go from fundamentals through goroutines and channels to building production cloud services.
Start Here — Learning Roadmap
A suggested path from zero to mastery. Follow these steps in order:
- Take the Tour of Go — Complete the official interactive Tour of Go to learn syntax, types, and basic concurrency in the browser
- Read Effective Go — Study idiomatic patterns, naming conventions, and Go philosophy from the official guide
- Learn Go with Tests — Work through the TDD-based tutorial to learn Go by writing tests first, building muscle memory for the language
- Build CLI Tools — Create command-line applications using cobra or the standard library flag package
- Master Concurrency — Understand goroutines, channels, select statements, sync primitives, and common concurrency patterns
- Build Web Services — Create HTTP servers and REST APIs using the standard library net/http or frameworks like Chi/Gin
- Work with Databases — Learn database/sql, use sqlx or GORM, understand connection pooling and transactions
- Study the Standard Library — Go’s standard library is unusually powerful — learn encoding/json, net/http, io, os, and context deeply
- Write Production Code — Implement structured logging, middleware, graceful shutdown, configuration management, and testing
- Go Cloud-Native — Containerize with Docker, deploy to Kubernetes, build gRPC services, and use cloud SDKs
Official & Core Documentation
- A Tour of Go — Official interactive tutorial teaching Go fundamentals in the browser (Beginner)
- Effective Go — Idiomatic Go patterns, style, and conventions from the Go team (Beginner)
- Go by Example — Annotated example programs covering the entire language (Beginner)
- Go Standard Library Documentation — Complete API reference for Go’s rich standard library (All levels)
- Go Specification — The formal language specification (Advanced)
- Go Blog — Official blog with deep dives on language features, design decisions, and best practices (Intermediate)
- Go Wiki — Community-maintained wiki with FAQs, best practices, and project recommendations (All levels)
- Go Roadmap — Community-created visual roadmap for Go developers (Beginner)
GitHub Awesome Lists & Curated Collections
- awesome-go — The definitive curated list of Go frameworks, libraries, and software, one of the most starred repos on GitHub
- awesome-golang-security — Curated list of Go security resources, tools, and libraries
- awesome-go-education — Curated list of Go educational resources, articles, and tutorials
- go-patterns — Curated list of Go design patterns, recipes, and idioms
- awesome-grpc — Curated list of gRPC resources, tools, and libraries across languages including Go
- awesome-go-style — Collection of Go style guides and best practices from various organizations
Interactive Courses & Hands-On Platforms
Free Courses
- Learn Go with Tests — Free TDD-based approach to learning Go, widely recommended by the community (Beginner)
- Practical Go Lessons — Free, comprehensive Go introduction covering 41 chapters (Beginner)
- Gophercises — Free coding exercises designed specifically for Go developers (Intermediate)
- Go Playground — Write and run Go code directly in the browser (All levels)
University & MOOC Courses
- Getting Started with Go (Coursera) — University of California, Irvine course, free to audit (Beginner)
- Boot.dev — Go Track — Backend development course built around Go (Beginner, Paid)
- Ardan Labs Go Training — Enterprise-grade Go training from Bill Kennedy (Intermediate, Paid)
- Educative — Learn Go from Scratch — Interactive Go course with in-browser coding (Beginner, Paid)
Practice & Challenges
- Exercism Go Track — Mentored coding exercises with community feedback (Beginner)
- Codewars Go — Progressive coding challenges in Go (All levels)
- LeetCode Go — Algorithm challenges with Go support (Intermediate)
- Advent of Code — Annual coding puzzles, popular for practicing Go (Intermediate)
- CodeCrafters — Go Track — Build your own Redis, Docker, Git from scratch in Go (Intermediate)
- HackerRank Go — Go-specific practice problems and coding challenges (Beginner)
Video Courses & YouTube Channels
Structured Course Playlists
- freeCodeCamp — Go Full Course — Comprehensive free Go course for beginners (Beginner)
- Nic Jackson — Building Microservices with Go — Building microservices with Go from a HashiCorp engineer (Intermediate)
- GopherCon Talks — Conference talks from GopherCon, the largest Go conference (All levels)
Individual Creators & Channels
- Anthony GG — Practical Go projects and real-world application development (Intermediate)
- Dreams of Code — Modern Go development, tooling, and project walkthroughs (Intermediate)
- JustForFunc — Francesc Campoy’s excellent Go programming series (Intermediate)
- TechWorld with Nana — Go and DevOps tutorials for beginners (Beginner)
- Ardan Labs (Bill Kennedy) — Advanced Go training from the author of Go in Action (Advanced)
- Golang Dojo — Go tutorials, tips, and project-based learning (Beginner)
- Melkey — Go web development, project builds, and tooling reviews (Intermediate)
- Fireship — Go in 100 Seconds — Quick, engaging overview of Go (Beginner)
- Golang Cafe — Go interview questions, exercises, and practical development (Intermediate)
Books & Long-Form Reading
Free Online Books
- Go by Example — Free annotated example programs covering the entire language (Beginner)
- Practical Go Lessons — Free comprehensive book covering Go fundamentals through advanced topics (Beginner)
- An Introduction to Programming in Go — Free introductory Go book by Caleb Doxsey (Beginner)
- Go 101 — Free online book with deep dives into Go internals and details (Intermediate)
- Effective Go — Free official guide to writing idiomatic Go code (Beginner)
- Go Web Examples — Free collection of practical Go web development examples (Beginner)
Essential Paid Books
- The Go Programming Language — Donovan and Kernighan’s comprehensive guide, the definitive Go book (Intermediate, Paid)
- Let’s Go — Alex Edwards’ practical guide to building professional web applications in Go (Intermediate, Paid)
- Let’s Go Further — Sequel covering advanced API patterns, JSON handling, and deployment (Advanced, Paid)
- Learning Go — Jon Bodner’s modern Go guide, updated for Go 1.21+ features (Intermediate, Paid)
- Concurrency in Go — Master goroutines, channels, and concurrent patterns (Advanced, Paid)
- 100 Go Mistakes and How to Avoid Them — Teiva Harsanyi’s guide to writing better Go code (Intermediate, Paid)
Community, Practice & News
Forums & Discussion
- Go Forum — Official community forum for Go developers
- r/golang — Active Reddit community for Go news, projects, and discussion
- Gophers Slack — Large community Slack workspace with channels for every Go topic
- Stack Overflow — Go — Q&A archive for Go questions
- Go Discussions (GitHub) — Official Go project discussions
Newsletters & Blogs
- Golang Weekly — Weekly newsletter with Go news, articles, and community updates
- Awesome Go Weekly — Weekly digest of new and trending Go projects
- Go Blog — Official Go team blog with authoritative articles on language design
- Applied Go — Practical Go articles with real-world examples and visualizations
- Dave Cheney’s Blog — Influential Go blog covering best practices and performance
Package Registries & Ecosystems
- pkg.go.dev — Go’s official package discovery and documentation site
- Awesome Go — Searchable web version of the awesome-go curated list
- Go Modules — Official guide to Go’s dependency management system
Tools & Environments
- Go Playground — Browser-based Go compiler with instant feedback and sharing
- VS Code + Go Extension — Lightweight editor with excellent Go support via the official extension
- GoLand — Full-featured Go IDE from JetBrains with advanced refactoring (Paid)
- golangci-lint — Fast, configurable Go linter aggregator running 100+ linters in parallel
- delve — Feature-rich debugger for Go programs
- Air — Live-reload utility for Go applications during development
- go test / go bench — Built-in testing and benchmarking framework in Go’s standard library
- pprof — Built-in CPU and memory profiling tool for Go programs
- ko — Build and deploy Go applications to Kubernetes without Dockerfiles
- GoReleaser — Automate Go binary releases with cross-compilation and changelog generation
- Task — Task runner and build tool written in Go, simpler alternative to Make