I'm doing a Go training on January 10th 9:30am to 4pm. Here is roughly what I'm planning to cover.
This is a project driven hands on training, so we will be building a project to learn different Go concepts.
Project: a Key Value Database like etcd/consul and a CLI (using gRPC) to interact with it.
- Should've programmed in some language at some point in your life
- Install Go
- Install any Go editor. I recommend Code with the Go plugin
- Run hello world in Go
- You or a family member must not own a Toyota Prius! (Very important!!)
- If you have a problem with any of these please contact me (Gunjan Patel on slack)
- How to think like a Go developer
- Native data types
- Native data structures
- Functions and methods
- Object Oriented Programming(?)
- Error handling
- Interfaces
- Vendoring
- Best practices/ How to do code reviews
- Tools:
- Build environment
- CI/CD options
- Debuggers
- Performance tools
- Static analysis
- Race detection
- API docs
- Net HTTP (native)
- REST APIs with Gorilla
- JSON/YAML handling
- Logging
- gRPC
- Concurrency (goroutines and channels)
- Testing (native)
- Ginkgo (overview)
- Debugging
- Some Kubernetes code reading to see how production code is written