Skip to content

Instantly share code, notes, and snippets.

@gunjan5
Last active August 15, 2025 19:30
Show Gist options
  • Select an option

  • Save gunjan5/b0e6fb8e3ea5060d9f9adfd969915e80 to your computer and use it in GitHub Desktop.

Select an option

Save gunjan5/b0e6fb8e3ea5060d9f9adfd969915e80 to your computer and use it in GitHub Desktop.
Go (Golang) Training Syllabus

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.

Prerequisite

  • 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)

Basics

  • 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

Advanced

  • 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment