Hall of FamePeter Norvig200112 min readintro
Teach Yourself Programming in Ten Years
Summary
The essay argues that becoming a competent programmer takes roughly ten years (about 10,000 hours) of deliberate practice, not the quick crash‑course promises. It offers concrete habits—regular coding, peer interaction, diverse language exposure, and real project work—to sustain long‑term growth.
- Mastery needs ~10 years of deliberate practice; short‑term books can’t replace sustained effort.
- Learn by doing: write code, get feedback, repeat, and tackle tasks just beyond your current ability.
- Collaborate with other programmers, read and maintain their code, and work on varied projects to broaden experience.
- Study several programming paradigms and languages to develop different abstractions and problem‑solving skills.
Software engineers and aspiring programmers should read it to reset expectations and adopt habits that lead to real expertise over time.
6/10