Code Craft¶
The craft side of programming-language work — how to shape, polish, and evolve code regardless of the language it's written in. These chapters are language-agnostic; the actual golang/, java/, python/ etc. sections live under languages/.
Sections¶
- Clean Code — meaningful names, small functions, comments, formatting, error handling, boundaries, unit tests, classes, emergence, concurrency, and beyond. Robert C. Martin's Clean Code rebuilt with modern angles (async/functional, generics, immutability, pure functions, defensive vs offensive, code reviews, logging, cognitive load).
- Design Patterns — the GoF 23 (creational · structural · behavioral) with per-level walkthroughs (junior / middle / senior / professional / optimize / find-bug / interview / tasks).
- Refactoring — code smells (bloaters, OO abusers, change preventers, dispensables, couplers) and the corresponding refactoring techniques (composing methods, moving features, organizing data, simplifying conditionals, simplifying method calls, dealing with generalization).
- Anti-Patterns — what not to do, organized by phase: development, design, concurrency, async.
- Functional Programming — pure functions, immutability, higher-order functions, composition; cross-language take.
How the levels work¶
Most leaf pages follow a stepped-difficulty layout:
| Level | Audience | Depth |
|---|---|---|
| junior | New engineer, ~0–2 yrs | "What is this and why does it exist?" |
| middle | Comfortable, ~2–5 yrs | Trade-offs, when to apply, when to skip. |
| senior | Lead, ~5–10 yrs | System-level consequences, edge cases. |
| professional | Staff / principal | Cross-team patterns, evolution, deprecation. |
| optimize | Performance angle | Hot paths, memory, allocation, profiling. |
| find-bug | Debugger's seat | Realistic broken code + the fix. |
| interview | Hiring-bar prep | The conversation, the follow-ups. |
| tasks | Hands-on practice | Exercises with grading criteria. |
Not every section has every file — early/incomplete sections will fill in as the Roadmap grows.
Related¶
- Languages — concrete language tracks (Go, Java, Python, Rust, SQL) that apply these crafts.
- Quality Engineering — testing, performance, build systems — the other half of the engineering discipline.
- Diagnostics — debugging, logging, error handling at the system level.