Skip to content

whalelogic/howtogo

image

How To Go

Go Version Build Status License Contributions Welcome

How To Go is a hands-on learning resource for the Go programming language. Inspired by Go By Example, this repository provides concise, runnable Go examples that teach real concepts through real code.

Purpose: remove friction from learning. Every example must be runnable, simple, and focused.


Quick Links


Why This Project Exists

Modern developers learn by doing. Books, docs, and tutorials are useful but rarely designed for the fastest path to operational fluency. How To Go solves that by:

  • Teaching concepts through runnable code
  • Eliminating noise and academic filler
  • Providing real-world examples and patterns
  • Increasing depth over time with iteration

How To Go is not a rewrite of the Go spec or standard documentation; it is a bridge between theory and practice.


Target Audience

  • Developers new to Go
  • Experienced programmers switching languages
  • Cloud & systems engineers expanding skillsets
  • People who want reference examples, fast

Core Principles

  1. Minimal Complexity
    Examples are small, targeted, and easy to run.

  2. Direct Utility
    Every example must demonstrate value.

  3. Progressive Depth
    Beginners start simple. Experts dig deeper.

  4. Real Code Only
    No pseudocode. No placeholders. No theory without proof.


Project Status

Actively developed. New examples added continuously.
Goal: 300+ runnable examples across all major topics.


Quick Start

Install Go

https://go.dev/dl/

Dev tools

templ generate --watch --proxy="http://localhost:8080" --cmd="go run ."

To Run the app locally:

go run .

Starts the server on localhost:8080

Verify Go Setup

go version
go env
go work (workspace tool)

Screenshots

Official Site

The official howtogo.dev site is under development but available at:

https://howtogo.dev

HowtoGo.dev uses the following technologies:

  • Go (Golang)
  • HTML/CSS/JavaScript
  • Templ (for static site generation)
  • Caddy HTTPS server
  • GitHub Pages (for hosting)

Caddy

Caddy is written in Go and uses:

  • Non-blocking I/O
  • Efficient connection reuse
  • HTTP/2 and HTTP/3 (QUIC) support
  • Automatic HTTPS with Let's Encrypt
  • Revserse proxy capabilities
  • Secure by default configurations

Caddy is ideal for serving Go applications due to its performance, security features, and ease of use. Because howtogo.dev doesn't contain hundreds of pages, Caddy's lightweight footprint and fast startup times make it a perfect fit for hosting the site efficiently.

Contributing

Contributions welcome! Please read the CONTRIBUTING.md guide for details on how to contribute.

Author

Created by Keith. Dedicated to learning, programming, and cloud-native systems 😄.


License

MIT

About

Your Go resource for the latest references, idiomatic code examples, and cloud-native patterns for the next generation of Go.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Contributors