【翻译】Teach Yourself Programming in Ten Years

这是一篇经典文章,告诉学习编程不是一蹴而就的事情,如同学习作曲、烹饪等,都需要长时间的刻意练习才能有所成就。

最重要的是,摆正心态,要有长期学习的意识。

下面结合个人理解,没有完全翻译,而是进行的总结。
Why is everyone in such a rush?
作者从市面上那些《24小时自学C++》《21天学会java》速成编程的书籍说起,分析了为啥24小时学不会C++:

  1. 自学:只是了解无法理解,因为没时间从编程实践汲取经验教训 ,没时间与优秀的程序员共事,没有处在C++的环境中;
  2. C++:只学到了基本语法,无法理解C++的优缺点,只学会了完成任务,没学会编程,这对于编程思维的提升没有任何意义。
    “只学会一点是很危险的”。
    “如果一门编程语言无法影响你对编程的思考方式,那就不值得学习”
    “糟糕的程序设计很容易,傻瓜也能在21天内学会糟糕的程序设计”。
    Teach Yourself Programming in Ten Years
    这一部分讨论了两个关键点:刻意练习和10000小时。
    刻意练习:原文是deliberative practice,不是简单机械重复练习,而是走出舒适区,不断挑战自己,然后反思总结,进行螺旋式上升。
    10000小时:长时间重复刻意练习,保持每周20小时的练习,大概需要10年。天才也需要这么久才能达到顶尖水平。
    So You Want to be a Programmer
    作者给出几个成功秘诀,其实就是注重编程实践,软件工程思想和系统知识等。
    1. 培养编程兴趣,有兴趣才能坚持10000小时
    2. 实践出真知,完成难度适合的任务,反馈并不断重复纠错,螺旋式上升
    3. 多交流,读源代码,比看书管用
    4. 工作中协作开发项目,学会带领他人并虚心学习,学会写可维护性强的代码
    5. 多学几种语言,强调类抽象语言(java/C++)、支持声明规范语言(C++模版语言)、强调并行性的语言(go)、函数式编程语言(Haskell)、强调语法抽象语言(lisp)
    6. 学习计算机原理,理解指令、内存、磁盘读取等知识
    7. 参与语言标准化工作

总之,刻意练习,坚持实践,说不定24个月之后你就会看到改变。

你可能感兴趣的:(翻译)