Skip to content Skip to content
Vladimir Chavkov

Go Fundamentals Training

Start your Go journey with this comprehensive 2-day training covering the core language from the ground up. Learn Go syntax, types, interfaces, error handling patterns, and how to structure production-ready Go projects using modules and packages.

Duration2 days (16 hours)
LevelBeginner
DeliveryIn-person, Live online, Hybrid
CertificationN/A
  • Developers learning Go as their first or additional language
  • Backend engineers transitioning from Python, Java, or Node.js
  • DevOps engineers wanting to write Go tooling
  • Team leads evaluating Go for new projects

After completing this training, you’ll be able to:

  • Write idiomatic Go code using core syntax and types
  • Design APIs with interfaces and struct embedding
  • Handle errors effectively using Go conventions
  • Organize code with packages and Go modules
  • Write unit tests and table-driven tests
  • Build and distribute Go binaries

Module 1: Getting Started with Go

  • Go philosophy and design principles
  • Setting up the Go development environment
  • Go toolchain (go build, go run, go test, go mod)
  • Hands-on: Write and run your first Go program

Module 2: Types and Control Flow

  • Basic types (int, float, string, bool)
  • Composite types (arrays, slices, maps)
  • Control flow (if, for, switch, defer)
  • Hands-on: Build a data processing utility

Module 3: Functions and Error Handling

  • Function declarations and multiple return values
  • Named returns and variadic functions
  • Error handling patterns and custom errors
  • Hands-on: Implement a file parser with error handling

Module 4: Structs and Methods

  • Struct definitions and initialization
  • Methods and pointer receivers
  • Struct embedding and composition
  • Hands-on: Build a domain model with structs

Module 5: Interfaces and Polymorphism

  • Implicit interface satisfaction
  • Common interfaces (io.Reader, io.Writer, fmt.Stringer)
  • Interface composition and the empty interface
  • Hands-on: Design a pluggable storage layer

Module 6: Packages, Modules, and Testing

  • Package organization and naming conventions
  • Go modules and dependency management
  • Unit testing with the testing package
  • Table-driven tests and test helpers
  • Hands-on: Structure a multi-package project with tests
  • Basic programming experience in any language
  • Familiarity with command line tools
  • No prior Go experience required
FormatDescription
In-PersonOn-site at your company’s location, hands-on with direct interaction
Live OnlineInteractive virtual sessions with screen sharing and real-time labs
HybridCombination of on-site and remote sessions, flexible scheduling

All formats include hands-on labs, course materials, and post-training support.