Chapter 1 · Practice 1 of 3
Define "learned" as something you can build, not a course you finished
Why it matters
"Learn Rust" has no finish line. "Build a command line tool in Rust that parses our log files and prints error counts" does. A concrete goal tells you what to study, what to skip and when you are done.
Good learning goals are:
- Concrete: a working program, a feature in a real codebase, a deployed service.
- Slightly beyond you: big enough to need new knowledge, small enough to finish.
- Time-boxed: two weeks of evenings, or one sprint at work.
| Vague | Concrete |
|---|---|
| Learn React | Build a page that lists, filters and edits tasks from a REST API |
| Learn Go | Write an HTTP service with two endpoints, tests and a Dockerfile |
| Learn Kubernetes | Deploy one existing app with a Deployment, Service and health checks |
Do
- Write your goal as something you will build or ship
- Set a time box and review at the end
Avoid
- Measuring progress by videos watched or chapters read