Curated learning designed for Software Engineers proficient in Python / Java / C++ and need to quickly ramp up their Go skills for work.
The best time to start was yesterday. The second best time is now.
There's no better time to master Golang than now! 🔥
Here are the commands you need to know:
# Setup tools
bash scripts/setup.sh
# Run build
bash scripts/build.sh
# Run tests
bash scripts/test.sh
# Run linters
bash scripts/lint.sh
To learn more, please consult the user guide.
This learning path is designed to take you from Go beginner to proficient in a matter of weeks. Each section contains practical examples to read and experiment with.
- Functions, structs, pointers
- Common data structures
- Goroutines, channels, synchronization
- Interfaces, generics, mocking
Ready to showcase your Go skills? Dive into a side project and create something amazing! Check out Namigo for inspiration. 🚀
- avelino/awesome-go: Awesome Go frameworks, libraries, software.
- golang-standards/project-layout: Standard Go project layout.
- A Tour of Go: An interactive tour of Go.
- Go by Example: Annotated programs in Go.
- Organizing Go code: General codebase conventions.
- Package names: Package naming conventions.
- Go Concurrency Patterns: Pipelines and cancellation: Pipelines with multiple stages.
- Go Concurrency Patterns: Context: Context for downstream logic.
- Structured Logging with slog: Structured logging using slog.
- 4 Mocking Approaches for Go: Different mocking techniques.
- Proper HTTP shutdown in Go: Graceful HTTP shutdown.