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
Testimonials (6)
The practical exercises which were really entertaining.
Jurgen Cruz - Focus Engineering SRL
Course - Go Programming Language for Programmers
The Trainer knew niche language concepts and had a historical perspective on how the language has changed since its original release date.
Brandon - DuosTechnologies, Inc.
Course - Go Programming Language for Programmers
The level of detail into the mechanics of why and how something worked was helpful. I also really appreciated having the repo to pull at the day so I could focus on watching what he was explaining.
Sara - DuosTechnologies, Inc.
Course - Go Programming Language for Programmers
The didactic way of presenting
Ivo Abdul - CEDSIF Ministry of Finance
Course - Go Programming Language for Programmers
Concepts of range, slice, swaps,...
Edmundo Manave - CEDSIF Ministry of Finance
Course - Go Programming Language for Programmers
The simplicity of language and the examples given by the teacher