Programming Languages: Overview và Roadmap
Section này tập trung vào language engineering ở góc nhìn production: runtime behavior, memory model, concurrency semantics, performance tuning, và trade-offs khi design API/library.
Mục tiêu: học để ship system bền vững, không phải học syntax cho vui.
Cấu trúc section
programming-language/
├── README.md ← file này
├── go-advanced.md ← Overview: Runtime mental model tổng quan
├── go-scheduler-internals.md ← Deep dive: G-M-P scheduler chi tiết
├── go-memory-gc.md ← Memory allocator, GC internals, escape analysis
├── go-concurrency-patterns.md ← Patterns thực chiến: worker pool, pipeline, errgroup
├── go-performance-profiling.md ← pprof, tracing, benchmarking, optimization
└── go-interview-deep-dive.md ← Câu hỏi interview senior + cách trả lời
Go là điểm bắt đầu vì sao?
- Runtime gồm scheduler + GC + network poller đã được tối ưu cho backend workloads.
- Tooling đhọc Go chuyên sâu
Đọc theo thứ tự:
- Go: Overview và Mental Model — Bức tranh tổng thể runtime (30 phút)
- Scheduler Internals: G-M-P Deep Dive — Cách goroutine thực sự chạy (1-2 giờ)
- Memory & GC Internals — Allocator, escape analysis, GC tuning (1-2 giờ)
- Concurrency Patterns — Patterns production-ready (1 giờ)
- Performance & Profiling — Tối ưu dựa trên data (1-2 giờ)
- Interview Deep Dive — Câu hỏi + cách trả lời senior (1 giờ)
Hoặc đọc theo nhu cầu:
- Đang gặp latency spike? → Memory & GC + Performance
- Design concurrent system? → Concurrency Patterns
- Chuẩn bị interview? → Interview Deep Dive
- Muốn hiểu sâu runtime? → Scheduler + Memory
Tiếp theo (sẽ bổ sung)
Roadmap trong section này
- Go Advanced Runtime và Concurrency: Go: Chuyên sâu cho production systems
- Tiếp theo (sẽ bổ sung): Rust ownership cho system-level safety, JVM internals cho latency-sensitive apps.
Cách đọc để tối ưu
- Đọc overview trong file Go để nắm mental model.
- Chạy examples benchmark nhỏ và đo bằng
go test -bench. - Mapping mỗi concept vào production incident đã gặp (latency spike, memory leak, goroutine leak).
Bối cảnh interview senior
Nhà tuyển dụng senior quan tâm:
- Bạn có phân biệt được bug do business logic hay do runtime behavior không?
- Bạn có biết cách sử dụng data để tối ưu (profiles, traces) thay vì đoán mò không?
- Bạn có biết trade-off của từng pattern concurrency không?