Some Notes of "Teach Yourself Programming in Ten Years"



"Teach Yourself Programming in Ten Years" was recommended by the Speaker of ALPHA Camp in the event last weekend. I've read it today and find that there are some practical concepts which are worth taking note. To practice English, I write this quick note in English.

The author observe that nowadays, many people are in a rush to master programming skills, so when we walk into a book store, you'll see books with titles like that "Teach Yourself Java in 24 Hours".

The author thinks that spending 24 hours (or days) to master one language is impossible. You can only be talking about a superficial familiarity, not a deep understanding.

Besides, in this article, the concept of "deliberative practice" is mentioned several times, like "not just doing it again and again, but challenging your performance while and after doing it and correct any mistakes." "the maximal level of performance for individuals in a given domain is not attained automatically as a function of extended experience, but the level of performance can be increased even by highly experienced individuals as a result of deliberate efforts to improve."

Since I've read this book before, I'm very familiar with the concepts and examples about deliberative practice, 10000 hours theory... etc. You can grab those concepts by Google very easily.

OK! So now we know that if you want to master programming skill, you can't expect it will happen just by reading some books. The valuable part of this article is that author provide several specific suggestions of how to achieve that, I'll make a quick summary amongst them:
  1. Make sure programming is enough fun to you by doing something just because it is fun, so that you'll be willing to put in your 10 years / 10,000 hours.
  2. Learning by doing, if you are familiar with the concept "deliberative practice", there's not much to say, just get your hand dirty and practice with conscious.
  3. Talk with other programmers; read other programs. This is more important than any book or course.
  4. Go to College / on your own / by job
  5. Work on projects with other programmers. Be the best programmer on some project; be the worst on some others. When you are the best, try to lead the project. When you are the worst, you can learn by observe what the masters do, and what's they don't like to do.
  6. Understand a program written by someone else. Try to fix some bug or improve efficiency. 
  7. Learn different kinds of programming languages, categorized below (list by author, I've never heard most of them before):
    1. emphasizes class abstractions: Java, C++
    2. emphasizes functional abstraction: Lisp, ML or Haskell
    3. supports syntactic abstraction: Lisp
    4. declarative specifications: Prolog, C++ templates
    5. emphasizes parallelism: Clojure, Go
  8. Know some basic knowledges about computer.
  9. Get involved in a language standardization effort.
Thanks for the practical guides shared by author, I spend about 1 hour to make it more concise. Hope it's helpful for you too.

留言

熱門文章