Course Outline

Go in Context: A Comparison

  • Go vs Java, Python, C, and others
  • Key design philosophies of Go
  • When (and when not) to use Go

Core Language Concepts

  • Setting up a Go development environment
  • Variables, constants, and types
  • Functions and multiple return values
  • Control structures: if, switch, for
  • Arrays, slices, and maps
  • Structs and embedding
  • Methods and interfaces
  • Understanding pointers in Go
  • Error handling idioms and patterns

Concurrency in Go

  • Goroutines and the Go runtime scheduler
  • Channels and message passing
  • Select statements
  • Concurrency patterns (fan-out, fan-in, worker pools)
  • Synchronization (WaitGroups, Mutexes)

Using Standard and Common Packages

  • Working with the fmt, strings, time, and math packages
  • File I/O with os and io/ioutil
  • HTTP clients and servers with net/http
  • JSON parsing and encoding

Project Organization and Go Modules

  • Using Go modules for dependency management
  • Organizing packages and files
  • Building and installing Go applications

Go Tooling

  • Using gofmt and go vet for code formatting and linting
  • Running and writing unit tests with go test
  • Benchmarking and profiling with go test -bench and pprof
  • Debugging with Delve (optional)

Summary and Next Steps

  • Best practices for Go development
  • Overview of Go web frameworks and ecosystem
  • Resources for continued learning

Requirements

  • Knowledge of any programming language (e.g. C, Java, Python, PHP, etc.).
  • This course does not explain basic concepts like loops or if-statements — it focuses on how these are implemented in Go.

Audience

  • Software developers familiar with other programming languages
  • Backend developers transitioning to Go
  • Engineers working on cloud-native or performance-critical applications
 28 Hours

Number of participants


Price per participant (excl. VAT)

Testimonials (6)

Upcoming Courses

Related Categories