Highlights
- Learn principles of Go Programming
- Explore Go tools for building and testing
- Explore Imperative Programming Features
- Use Functions and Flow of Control
- Learn about panics and error handling
- Understand Memory Management
- Learn Structures and Methods
- Interfaces and Object-Oriented Features
- Go Generic Programming
- Working with containers
- Create REST Web Service
Course Details
Introduction to Go
- Why Go?
- Installing Go and setting up the development environment
- Go toolchain (go run, go build, go fmt, go test)
- Writing your first Go program
- Understanding Go’s project structure and modules
Go Fundamentals
- Variables, constants, and types
- Functions and multiple return values
- Control structures (if, switch, for, range)
- Arrays, slices, and maps
- Error handling (error type, idiomatic patterns)
Working with Structs and Methods
- Structs and type definitions
- Methods and receivers (value vs pointer)
- Embedding structs (composition over inheritance)
- Packages and visibility rules
Interfaces and Object-Oriented Features
- Interfaces and polymorphism
- Implicit interface implementation
- The empty interface (interface{}) and type assertions
- Working with interfaces (decoupling and testing)
- Reader/Writer interfaces from the standard library
Generics in Go (Go 1.18+)
- Introduction to generics: why and when to use
- Defining generic functions
- Defining generic types
- Constraints (comparable, custom constraints)
- Examples: collections, utility functions
Concurrency and Parallelism
- Concurrency vs parallelism
- Goroutines: lightweight threads
- Channels: communication and synchronization
- Buffered vs unbuffered channels
- Select statement and timeouts
- Worker pools and pipeline patterns
- Context package for cancellation and deadlines
Building Microservices with Go
- Introduction to microservices architecture
- REST APIs with https
- Routing with gorilla/mux
- JSON handling and data marshalling
- Dependency injection and configuration management
- Logging and monitoring
Who should attend
This course is ideal for developers, software engineers, and tech enthusiasts who want to learn Go for backend development, cloud services, or building efficient, scalable systems.
Feedback
4.8 out of 5 average
"The instructor was fantastic. Super knowledgable, a real rust expert. He was also good at explaining things - really enjoyed his diagrams / e-ink display creations." John S, Senior Developer, Rust Fundamentals, May 2022
“JBI did a great job of customizing their syllabus to suit our business needs and also bringing our team up to speed on the current best practices. Our teams varied widely in terms of experience and the Instructor handled this particularly well - very impressive”
Brian F, Team Lead, RBS, Data Analysis Course, 20 April 2022