A hands-on tour of Go for programmers coming from other languages — syntax, types, concurrency, and the standard library, taught by building small working programs.
7 modules · 32 lessons
Go was designed for programs that need to be simple to read, fast to compile, and safe to run concurrently — which is exactly why it shows up so often in systems programming, networked services, and command-line tools. This course assumes you already know how to program (in Python, JavaScript, or anything similar) and focuses entirely on what's different about Go: explicit error handling instead of exceptions, structs and interfaces instead of classes, and goroutines and channels as the default way to handle concurrency instead of an afterthought bolted on with threads or async/await.
Every lesson runs real code — there's no substitute for watching go run actually do something. By the end, you'll be comfortable reading idiomatic Go, writing small programs and tests of your own, and — since this is also the language used for the code examples in this site's Operating Systems course — ready to follow along there without the language itself getting in the way of the systems concepts.