Go Fundamentals

11 lessons

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.

Go Fundamentals

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

Getting Started with Go

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.

Packages - Organizing Go Code

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.

Networking and HTTP

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.