Skip to content

Latest commit

Β 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

golang-lab β€” A Self-Paced Go-for-DevOps Bootcamp

A hands-on, self-paced curriculum to take you from "I've heard of Go" to "I can ship Go-based DevOps tooling." Free, public, and community-supported.

New here? Start with BOOTCAMP.md for how the bootcamp works and how to ask for help.

Also designed to open cleanly as an Obsidian vault for personal note-taking.

Who this is for

  • Engineers comfortable with at least one of Python, Bash, TypeScript, or Java who want to add Go.
  • Specifically for DevOps / Platform / SRE / Cloud work β€” CLIs, HTTP clients & servers, AWS/GCP/k8s/Docker SDKs, concurrency for parallel infra tasks, observability.
  • People who learn by doing. Every section has runnable examples + a mini-project + exercises that ship as failing tests; you write code until they pass.

Who this isn't for

How to participate

  • Work through the sections at your own pace (suggested: 1 section per week, no due dates).
  • Ask for help in Discussions when stuck. Open-ended questions live here.
  • File an Issue when you hit a bug, typo, or have a concrete improvement. Three templates are provided.
  • Help others if you've already finished a section. That's how this becomes more than a personal repo.

See BOOTCAMP.md for the full participation guide and how to ask a good question.

Roadmap

Each section is a folder. Status legend: ☐ not started Β· ◐ in progress Β· β˜‘ done.

# Section Status
00 Setup & toolchain β˜‘
01 CLI tools β˜‘
02 Files & OS β˜‘
03 HTTP clients β˜‘
04 HTTP servers β˜‘
05 Concurrency β˜‘
06 Testing β˜‘
07 AWS SDK β˜‘
07 GCP SDK β˜‘
08 Kubernetes β˜‘
09 Docker β˜‘
10 Observability β˜‘
11 IaC tooling β˜‘
β˜… End-to-end projects β˜‘

How this repo is organized

NN-topic/
β”œβ”€β”€ README.md         polished notes, the public-facing teaching content
β”œβ”€β”€ PLAN.md           working roadmap β€” what's planned, what's done, what's next
β”œβ”€β”€ 01-<concept>/     runnable read-and-learn examples
β”œβ”€β”€ mini-project/     section capstone: real DevOps tool, verified by tests
└── exercises/        starter skeletons with failing tests; reader writes code until they pass

See PLAN.md for the overall plan and conventions, and SESSIONS.md for the running log of work.

Using this as an Obsidian vault

  1. In Obsidian, Open folder as vault β†’ select this repo's root.
  2. Obsidian creates a .obsidian/ folder for vault settings β€” this is gitignored, so it stays personal.
  3. Recommended community plugins: Dataview (query notes), Templater (note templates).
  4. Cross-references inside notes use standard markdown links ([text](./path.md)) so they work in both Obsidian and on GitHub.

Running examples

Prerequisites: Go 1.22+.

# Run a specific example
go run ./01-cli-tools/01-flag-basics

# Run all tests
go test ./...

# Vet everything
go vet ./...

# Or use the Makefile
make test
make run SECTION=01-cli-tools EX=01-flag-basics

License

MIT β€” see LICENSE.

Acknowledgements

About

Learn Golang for DevOps by doing! Works best for those who prefer doing projects rather than reading slides πŸ˜„

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages