Go – Introduction to Programming (GO1)

Programming, Rust

Learn a compact, pragmatic language for building server systems and cloud platforms. Go combines native performance and efficient concurrency with developer-friendly simplicity, giving faster iteration than C/C++ and better runtime than many scripting languages used for prototypes.

Practice Go without manual memory management while keeping solid performance; explore the garbage collector, the Go memory model and goroutines and channels for scalable concurrency. Learn the go toolchain, modules, formatting and testing to produce robust cloud services.

THIS TRAINING COURSE WILL HELP YOU:

  • Learn Go basics and its ecosystem (toolchain and modules)
  • Understand memory model, garbage collector and concurrency
  • Use go toolchain, go mod, gofmt and other development tools
  • Write unit tests, benchmarks and basic fuzz tests
  • Design idiomatic APIs using interfaces and composition

WHO SHOULD ATTEND?

  • Programmers switching from other languages
  • Beginner programmers with basic coding knowledge
  • Backend and cloud service developers

COURSE LOCATION AND AVAILABLE DATES



Public courses are usually delivered in Czech, but this course is also available in English. We can arrange private training for your team online, at your premises or in our classrooms, and tailor the content to your needs.

For groups of around 4 or more participants, private training can already be comparable in price to booking individual places on a public course. Send us your requirements and we’ll recommend the best format and provide an exact quote.

Request training in English

Course content:

Hide details
  • The Go programming language
    1. Ecosystem and tools: go toolchain, go mod, workspace, gofmt, govet
    2. Language characteristics, runtime, GC, basic Go memory model
    3. Project structure and common conventions
  • Input, output and the first program
    1. package main structure, func main()
    2. Formatted output (fmt), reading stdin, file I/O (os, bufio)
  • Data types and working with values
    1. Basic types, rune and UTF-8, string handling
    2. Collections: array, slice (capacity vs length), map
    3. Type conversions, iota, constants vs variables
  • Control flow
    1. Conditions, loops, switch (including type switch), defer
    2. Errors as values: error type, creating and wrapping errors, errors.Is/errors.As
  • Functions and interfaces
    1. Multiple return values, named returns
    2. struct, methods on types, interface and implicit implementation
    3. Composition (embedding) instead of inheritance
  • Modules, testing and quality
    1. go mod init, versioning, replace, vendor
    2. go test, table-driven tests, benchmarking (testing.B), fuzz test examples
Prerequisites:
Basic programming knowledge.
Recommended follow-up course:
Go – Advanced Techniques (GO2)
Schedule:
3 days (9:00-17:00)
Language:
Česky

Training and learning environment