Go is a server language
Networking & Web, in Go
Go was built for the network — fast servers, a clean net/http, and concurrency that makes
tens of thousands of connections feel ordinary. From raw TCP and UDP up through HTTP, REST, gRPC and
WebSockets, then the databases and project structure behind a real service — built the Go way and
runnable in place.
Mark a topic “learned” on its page and watch the bars fill.
Skill map
Learned nodes light up — the glowing one is your next step. Click any node to jump in.
Sockets & the net Package
The wire underneath everything — TCP and UDP with the net package, the Conn interface, and resolving names and addresses.
The reliable byte stream — net.Dial and net.Listen, the Conn interface every connection implements (an io.Reader+Writer), framing a byte stream, read/write deadlines and net.Error, and one goroutine per connection.
✦ Complete · ⏱ 7 min 2 · Beginner UDP SocketsConnectionless datagrams in Go — net.ListenPacket and ReadFrom/WriteTo, DialUDP, message boundaries with no delivery guarantees, encoding a datagram payload, MTU and fragmentation, and when UDP beats TCP.
✦ Complete · ⏱ 6 min 3 · Beginner DNS & AddressingFrom names to numbers — net.ParseIP and net/netip, SplitHostPort/JoinHostPort, CIDR prefixes and subnet membership, and the net.Resolver that turns hostnames into IPs over the network.
✦ Complete · ⏱ 5 min 3.5 · Intermediate Framing & Custom ProtocolsTurning a TCP byte stream into messages — delimiter vs length-prefix framing, encoding/binary and network byte order, io.ReadFull, and designing a header-plus-payload protocol with a version field and checksum.
✦ Complete · ⏱ 6 minHTTP
The web in net/http — writing servers and handlers, making client requests, routing and middleware, and serving over TLS.
Serving HTTP in net/http — handlers and HandlerFunc, the ResponseWriter and Request, the Go 1.22 method+pattern ServeMux with PathValue, decoding request bodies, and a production-shaped http.Server with timeouts.
✦ Complete · ⏱ 6 min 5 · Beginner HTTP ClientCalling services with net/http — http.Get vs a configured http.Client with timeouts, building requests and posting JSON, checking status, closing and draining the body, connection reuse via Transport, and context cancellation.
✦ Complete · ⏱ 7 min 6 · Intermediate Routing & MiddlewareDispatch and cross-cutting concerns — the Go 1.22 ServeMux (method+path patterns, wildcards, precedence), path values, middleware as Handler-wrapping-Handler, chaining order, and recovery/logging middleware.
✦ Complete · ⏱ 5 min 7 · Intermediate TLS & HTTPSHow TLS secures HTTP — the handshake, certificates and the CA chain, serving with ListenAndServeTLS, verifying clients, mTLS, and autocert.
✦ Complete · ⏱ 7 min 7.5 · Intermediate Web SecurityDefensive defaults for Go web services — security headers and HSTS, parameterized queries against SQL injection, html/template auto-escaping against XSS, body-size limits, constant-time secret comparison, and never leaking internal errors.
✦ Complete · ⏱ 6 minAPIs & Messaging
How services talk — JSON REST APIs, gRPC and protobuf, WebSockets for live connections, and Go’s own RPC and serialization.
JSON over HTTP done right — resources and methods, idempotency, decoding/validating requests and encoding responses, the status codes that matter, consistent error envelopes, and versioning.
✦ Complete · ⏱ 4 min 9 · Advanced gRPCTyped, fast service-to-service calls — Protocol Buffers, the four RPC kinds, code generation with protoc, and HTTP/2 streaming over plain REST.
✦ Complete · ⏱ 6 min 10 · Intermediate WebSocketsFull-duplex, persistent connections over one TCP socket — the HTTP Upgrade handshake, frames, ping/pong keepalives, and when to choose them over SSE or polling.
✦ Complete · ⏱ 6 min 11 · Intermediate Server-Sent EventsOne-way push over plain HTTP — the text/event-stream format, flushing events, auto-reconnect with Last-Event-ID, and when SSE beats WebSockets.
✦ Complete · ⏱ 5 min 12 · Beginner PollingWhen the client just asks again — short polling on a timer vs long polling that holds the request open, their costs, and when polling is the right boring choice.
✦ Complete · ⏱ 4 min 13 · Intermediate WebhooksThe other side of polling — an external service POSTs to your endpoint when something happens. How to receive one safely: verify the signature, ack fast, dedupe for idempotency, and process out of band.
✦ Complete · ⏱ 7 min 14 · Intermediate RPC & SerializationCalling Go functions across a wire — net/rpc and JSON-RPC, plus the serialization choices underneath: gob vs JSON vs protobuf and their trade-offs.
✦ Complete · ⏱ 6 minDatabases & Backend
Persisting and structuring a service — database/sql, transactions, Postgres and Redis, project layout, and graceful shutdown.
Go's driver-agnostic SQL layer — sql.Open returns a connection pool, parameterized queries stop injection, Scan reads rows, and you always close them.
✦ Complete · ⏱ 5 min 15 · Intermediate SQL TransactionsBegin, Commit, Rollback — grouping statements into all-or-nothing units, the defer-rollback safety pattern, ACID, and isolation levels.
✦ Complete · ⏱ 4 min 16 · Intermediate Postgres & RedisChoosing drivers and datastores — pgx for relational/transactional data, go-redis for caching and sessions, and the cache-aside pattern that ties them together.
✦ Complete · ⏱ 4 min 17 · Intermediate Project Layout & Dependency Injectioncmd/internal/pkg layout, accept-interfaces dependency injection, wiring in main, config from env/flags, and why Go rarely needs a DI framework.
✦ Complete · ⏱ 4 min 18 · Intermediate Graceful ShutdownCatching SIGINT/SIGTERM with signal.NotifyContext, draining in-flight requests via Server.Shutdown, a shutdown timeout, and closing resources in order.
✦ Complete · ⏱ 4 min🐹 A goroutine per connection
Go's networking model is disarmingly simple: accept a connection, hand it to a goroutine,
repeat. No callback hell, no event loop to reason about — just straight-line code that scales because
goroutines are cheap. The runnable examples here run in-process (no real network) so they're safe to
execute anywhere; the concurrency track explains the machinery beneath.