Why Go was created, what you can build with it, how it performs - we'll cover all of this. Plus an overview of the Go community and ecosystem.
Go Fundamentals
Want to build beyond CRUD? Databases, CLI tools, or distributed systems? This course covers Go programming basics - variables, control flow, functions, structs, pointers, testing and error handling. With real world examples.

what you'll learn
- Variables, types, and Go's type system — including when zero values save you
- Control flow, loops, and idiomatic patterns you'll use every day
- Functions, closures, and how Go handles first-class functions
- Structs, methods, and interfaces — Go's approach to polymorphism
- Pointers and memory — what lives on the stack vs the heap
- Error handling, testing, and writing production-ready Go code
Go Basics
Variables, Types and Data Structures
Go's type system, variables, arrays, slices, maps - all with detailed explanations. We'll also look at how data is stored in memory.
Control Flow - If, Switch and Loops
How does Go make decisions? We'll discuss if-else, switch statements and for loops. Spoiler: Go only has one loop keyword.
Functions - Building Blocks of Programs
How functions work in Go. Parameters, return types, multiple returns, named returns and variadic functions.
Creating custom data types, efficient memory management with pointers, and adding behavior to structs with methods.
Testing - Building Code Confidence
Writing tests with Go's built-in testing framework. Unit tests, table-driven tests and test coverage.
Error Handling - Do or Do Not, There is No Try
Go's explicit error handling approach. Custom errors, panic, recover and why Go doesn't have try-catch.
Go packages are flat by design. One directory, one package. Learn visibility rules, naming conventions, the internal directory and how to structure projects.
Interfaces - Implicit Contracts
Go's interfaces are implicit - no implements keyword. Types satisfy interfaces by having the right methods. Learn why small interfaces win and how to define them at the caller.
I/O: Readers, Writers, and Files
Deep dive into io.Reader and io.Writer contracts, file operations, buffered I/O with bufio, stream composition with io.Copy and friends, and common I/O pitfalls.
TCP connections, HTTP clients and servers, JSON encoding/decoding, and building a JSON API. Network I/O uses the same Reader/Writer interfaces from Lesson 10.