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