0% found this document useful (0 votes)
2 views4 pages

? 10-Week Golang Learning Plan for Distributed Systems

This document outlines a 10-week learning plan for mastering Golang in the context of distributed systems, detailing essential tools, frameworks, recommended books, and GitHub repositories. The plan is broken down into weekly topics, starting from Go basics and progressing to advanced concepts like microservices and Kubernetes. Each week includes specific projects and resources to facilitate hands-on learning and practical application.

Uploaded by

pro.ysh31
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views4 pages

? 10-Week Golang Learning Plan for Distributed Systems

This document outlines a 10-week learning plan for mastering Golang in the context of distributed systems, detailing essential tools, frameworks, recommended books, and GitHub repositories. The plan is broken down into weekly topics, starting from Go basics and progressing to advanced concepts like microservices and Kubernetes. Each week includes specific projects and resources to facilitate hands-on learning and practical application.

Uploaded by

pro.ysh31
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

10-Week Golang Learning Plan for

Distributed Systems
Tools & Frameworks
Tool/Framework Use Case

Gin Lightweight HTTP framework

Echo High-performance web framework

Go Kit Microservices toolkit

Protobuf Data serialization for RPC

gRPC High-performance RPC framework

Docker Containerization

Kubernetes Container orchestration

etcd Distributed key-value store

Consul Service discovery and config

Recommended Books
Book Title Link

The Go Programming Language Amazon

Go in Action Amazon

Concurrency in Go Amazon

Designing Data-Intensive Applications Amazon

GitHub Repos for Go Projects


Repo Description

golang/go Official Go repository

docker/docker Docker written in Go

kubernetes/kubernetes Distributed systems core

prometheus/prometheus Monitoring system

etcd-io/etcd Distributed key-value store

hashicorp/consul Service discovery and config

go-kit/kit Microservices toolkit

grpc/grpc-go gRPC for Go


caddyserver/caddy Fast, extensible web server

hashicorp/nomad Distributed workload orchestrator

Weekly Breakdown
Week Topic

1–2 Go Basics & Tooling

3–4 Intermediate Go (Structs, Interfaces, Testing)

5–6 Concurrency & Parallelism

7–8 Networking & HTTP

9–10 Distributed Systems (RPC, Microservices, Containers, Kubernetes)

Detailed Day-Wise Plan


Week 1–2: Go Basics & Tooling

Topics:
Syntax, variables, control structures
Functions, packages, modules
Go toolchain ( go run , go build , go mod )
Testing and debugging

Resources:
Go Tour
Effective Go
Go By Example
Udemy: Learn How To Code: Google's Go (Golang) Programming Language

Projects:
1. CLI Calculator
2. File Scanner
3. URL Shortener (CLI)
4. Todo CLI App
5. Markdown to HTML Converter

GitHub Repos to Study:


spf13/cobra
urfave/cli

Week 3–4: Intermediate Go (Structs, Interfaces, Testing)

Topics:
Structs and methods
Interfaces and type assertions
Error handling
Unit testing, benchmarks
Goroutines (intro)

Resources:
Go Blog
Go Testify
Go 101

Projects:
1. Bank Account Manager
2. REST API Client
3. CSV Data Analyzer
4. Simple ORM
5. Rate Limiter

GitHub Repos to Study:


docker/docker
etcd-io/etcd

Week 5–6: Concurrency & Parallelism

Topics:
Goroutines and sync.WaitGroup
Channels and select statements
Mutexes and atomic operations
Context package for cancellation

Resources:
Concurrency in Go (Book)
Go Concurrency Patterns (Talk by Rob Pike)
Go Channel Axioms (Talk by Sameer Ajmani)

Projects:
1. Web Crawler
2. Parallel File Downloader
3. Chat Server
4. Job Scheduler
5. Concurrent Cache

GitHub Repos to Study:


kubernetes/kubernetes
hashicorp/consul

Week 7–8: Networking & HTTP

Topics:
TCP/UDP basics
HTTP clients/servers
Middleware and routing
JSON/XML parsing
TLS/SSL

Resources:
Go HTTP Package Docs
Go Web Examples
Building Web Apps with Go (Gobook)

Projects:
1. HTTP Proxy Server
2. REST API with JWT Auth
3. WebSocket Chat App
4. Load Balancer
5. Rate-Limited API

GitHub Repos to Study:


go-kit/kit
gin-gonic/gin

Week 9–10: Distributed Systems

Topics:
RPC (Remote Procedure Calls)
gRPC and Protobuf
Microservices architecture
Containerization (Docker)
Kubernetes basics

Resources:
gRPC Go Docs
Kubernetes Docs
Go Kit Distributed Tracing
Docker Docs
Microservices Patterns (Chris Richardson)

Projects:
1. gRPC Chat Service
2. Distributed Key-Value Store
3. Service Mesh with Istio
4. CI/CD Pipeline
5. Event Streaming System

GitHub Repos to Study:


istio/istio
hashicorp/raft
nats-io/nats.go

You might also like