Researchers (Hayes, Bloom) 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, and research in neuropsychology and topology.
one that supports functional abstraction (like Lisp or ML), one that supports syntactic abstraction (like Lisp)
Teach Yourself Programming in Ten Years
the most effective learning requires a well-defined task with an appropriate difficulty level for the particular individual, informative fee
dback, and opportunities for
repetition and corrections of errors.
Learn at least a half dozen programming languages. Include one language that supports class abstractions (like Java or C++), one that supports functional abstraction (like Lisp or ML), one that supports syntactic abstraction (like Lisp), one that supports declarative specifications (like Prolog or C++ templates), one that supports coroutines (like Icon or Scheme), and one that supports parallelism (like Sisal).