Introduction
Why Go?
()
What you should know
()
Setting up
()
1. Getting Started
Sample program
()
Running and debugging
()
Compiling
()
Challenge: Current time
()
Solution: Current time
()
2. Built-In Types
Numbers
()
Strings
()
Slices
()
Maps
()
Challenge: Character frequency
()
Solution: Character frequency
()
3. Functions
Function definition
()
Multiple return values
()
Error handling
()
Pointers
()
Defer
()
Challenge: File magic
()
Solution: File magic
()
4. Structs, Methods, and Interfaces
Defining and creating structs
()
Methods
()
Embedding
()
Interfaces
()
Generics
()
Challenge: VMs
()
Solution: VMs
()
5. Concurrency
Goroutines
()
Channels
()
WaitGroup
()
Timeouts and cancellations
()
Challenge: Parallel files
()
Solution: Parallel files
()
6. Project Engineering
Testing
()
Dependency management
()
Project structure
()
Logging
()
Challenge: Shutdown server
()
Solution: Shutdown server
()