Discover the power and applicability of the Go programming language in this practical, in-depth introduction.
Overview
Syllabus
Introduction
- Hands-on with Go
- Using GitHub Codespaces with this course
- Code organization with packages
- Importing and using packages
- Third-party packages
- Packages and visibility
- Functions
- Challenge 1: Working with packages
- Variables, types, and scope
- Constants
- Type conversions
- Pointers
- Challenge 2: Working with primitive types
- Struct basics
- Struct methods
- Struct pointers
- Struct embedding
- Arrays
- Slices
- Maps
- Challenge 3: Working with composite types
- Loops
- Conditionals
- Defer, panic, and recover
- Challenge 4: Flow control
- Defining and implementing interfaces
- The empty interface
- Type assertions
- Type switches
- Challenge 5: Working with interfaces
- Type parameters
- Interface constraints
- Standard library support
- Challenge 6: Refactoring with generics
- Writing simple tests, setup, and teardown
- Table-driven tests
- Benchmarking
- Challenge 7: Write some tests
- Goroutines
- Channel basics
- Buffered channels
- Channel ranging
- Channel select
- Channel non-blocking
- Sync package
- Challenge 8: Goroutine synchronization
- Next steps
Taught by
Johnny Boursiquot