Teach Yourself Programming in Ten Years

I came across this interesting article by Peter Norvig – Teach Yourself Programming in Ten Years.
Here are the keypoints:

  • “Write several significant programs, and learn from your successes and failures.”
  • “Work with an experienced programmer and understand what it is like to live in that environment.”
  • “In 3 days you might be able to learn the syntax” (…) “but you couldn’t learn much about how to use the syntax”
  • “Researchers have shown it takes about ten years to develop expertise in any of a wide variety of areas, including chess playing, music composition, painting, piano playing, swimming, tennis” (…) “There appear to be no real shortcuts.”
  • “Get interested in programming, and do some because it is fun.”
  • “Talk to other programmers; read other programs. This is more important than any book or training course.”
  • “The best kind of learning is learning by doing.”
  • “The most effective learning requires a well-defined task with an appropriate difficulty level for the particular individual, informative feedback, and opportunities for repetition and corrections of errors.”
  • “In any case, book learning alone won’t be enough.”
  • “Be the best programmer on some projects; be the worst on some others. When you’re the best, you get to test your abilities to lead a project, and to inspire others with your vision. When you’re the worst, you learn what the masters do, and you learn what they don’t like to do (because they make you do it for them).”
  • ” Work on projects after other programmers.” (…) “See what it takes to understand and fix it when the original programmers are not around. Think about how to design your programs to make it easier for those who will maintain it after you.”
  • ” Learn at least a half dozen programming languages.” (…) “You learn about what other people like in a language, how deeply they feel so, and perhaps even a little about why they feel so.”