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

? 10-Week Golang Learning Plan for Distributed Systems (1)

The document outlines a 10-week learning plan for mastering Golang in the context of distributed systems, detailing essential resources, tools, frameworks, and recommended books. It provides a weekly breakdown of topics, projects, and GitHub repositories to study, covering areas from Go basics to advanced distributed systems concepts. Additionally, it includes project ideas across various skill levels and specialized domains, emphasizing key learning areas such as concurrency and performance.

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 views6 pages

? 10-Week Golang Learning Plan for Distributed Systems (1)

The document outlines a 10-week learning plan for mastering Golang in the context of distributed systems, detailing essential resources, tools, frameworks, and recommended books. It provides a weekly breakdown of topics, projects, and GitHub repositories to study, covering areas from Go basics to advanced distributed systems concepts. Additionally, it includes project ideas across various skill levels and specialized domains, emphasizing key learning areas such as concurrency and performance.

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/ 6

10-Week Golang Learning Plan for

Distributed Systems
Top 3 Resources for Starting:
A Tour of Go
Go By Example
Let's go
Let's go Further

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

Golang Project Ideas


Beginner Projects
Project Description Tech Stack

CLI File Sort files by extension with command-


os/exec, flag, filepath
Organizer line flags

HTTP Weather Fetch and display data from weather net/http, JSON
Service APIs unmarshaling

Create persistent short links with


URL Shortener gin/echo, BoltDB
basic storage

Intermediate Projects
Project Description Tech Stack

Distributed Key- Redis-like store with TCP


TCP sockets, sync.Map
Value Store interface

Websocket-based messaging with gorilla/websocket, Redis


Real-time Chat App
rooms Pub/Sub

Microservices with Order processing system with gRPC, protocol


gRPC payment service buffers

Concurrent web scraper with rate


Scraper Framework colly, worker pools
limiting

Advanced Projects
Project Description Tech Stack

Auto-scale custom resources based client-go, controller-


Kubernetes Operator
on metrics runtime

Blockchain PoW blockchain with transactions crypto/sha256,


Implementation & mining persistence

Distributed Task Fault-tolerant cron with leader Raft consensus,


Scheduler election hashicorp/raft

Service Mesh Mini-proxy for mTLS and traffic Envoy xDS, SPIFFE
Sidecar routing identities

Infrastructure/DevOps Focus
Project Description Tech Stack

Infrastructure-as- Terraform-like cloud resource


Cobra CLI, AWS SDK
Code Tool manager

Collect/process logs from Fluentd architecture,


Log Aggregator
multiple services Elasticsearch

Chaos Engineering Inject failures into Kubernetes


client-go, chaos-mesh SDK
Platform clusters
Specialized Domains
Project Description Tech Stack

Cilium/eBPF
eBPF Data Collector Monitor system calls via eBPF probes
libraries

WebAssembly Image Run image manipulation in browsers TinyGo,


Processor via WASM WebAssembly

Order matching engine with nanosecond Lock-free


HFT Trading Simulator
precision algorithms

Full-Stack Projects
Project Description Tech Stack

Serverless E-
AWS Lambda product catalog AWS SDK, DynamoDB
Commerce

IoT Data Sensor data collection → Kafka → DB → MQTT, Kafka,


Pipeline Dashboard TimescaleDB

Key Learning Areas

- Concurrency: Worker pools, fan-out/fan-in


- Performance: pprof profiling, GC tuning
- Resilience: Circuit breakers, backpressure
- Observability: OpenTelemetry tracing
- Deployment: Docker multi-stage builds

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy