Introduction

Why Go?

Go is a statically typed, compiled language designed for simplicity and efficiency. It compiles fast, runs fast, and is easy to read. Here is what makes it stand out:

  • Fast compilation -- Go compiles entire projects in seconds, even large codebases.
  • Simple syntax -- The language has only 25 keywords. If you know any C-style language, you can read Go code immediately.
  • Built-in concurrency -- Goroutines and channels make concurrent programming straightforward.
  • Rich standard library -- HTTP servers, JSON encoding, cryptography, testing -- all built in, no third-party dependencies required.
  • Single binary deployment -- Go compiles to a single static binary. No runtime, no VM, no dependencies to install on the target machine.

The Story

Go was created at Google in 2007 by Robert Griesemer, Rob Pike, and Ken Thompson. The three designers were frustrated with the complexity of existing systems languages, particularly C++: slow builds, complicated dependency management, and a language specification that had grown unwieldy over decades.

Their goal was a language that combined the performance and safety of a compiled language with the ease of use of a dynamic one. Go was open-sourced in November 2009 and reached its first stable release, Go 1.0, in March 2012 with a strong backward-compatibility promise.

Rob Pike had co-created the Plan 9 operating system and the UTF-8 encoding. Ken Thompson had co-created Unix and the C programming language. Robert Griesemer had worked on the V8 JavaScript engine and the Java HotSpot VM.

Who Uses Go

Go has become the backbone of modern cloud infrastructure. Some of the most influential open-source projects are written in Go:

  • Docker -- the containerization platform that changed how software is deployed.
  • Kubernetes -- the container orchestration system that powers cloud-native applications.
  • Terraform -- the infrastructure-as-code tool used to manage cloud resources.

Major companies use Go extensively: Google, Uber, Dropbox, Twitch, Cloudflare, and many others. It is especially popular for building microservices, CLI tools, DevOps tooling, and network services.

What You Will Learn

This course contains 17 lessons organized into 8 chapters:

  1. Foundations -- How Go programs are structured: packages, imports, and the main function. Variables, types, and constants.
  2. Control Flow -- Conditionals with if/else and switch. Loops with for.
  3. Functions -- Declaring functions, multiple return values, named returns, and deferred execution.
  4. Data Structures -- Slices (dynamic arrays), maps (hash tables), and string operations.
  5. Custom Types -- Pointers, structs, and interfaces.
  6. Error Handling -- Go's explicit approach to errors using values instead of exceptions.
  7. Generics -- Type parameters for functions and data structures.
  8. Concurrency -- Goroutines, channels, and the select statement.

Each lesson explains a concept, demonstrates it with code examples, and gives you an exercise to practice.

Let's get started.

Next →