那些编程水平很高的程序员是怎么训练出来的?
1.大量写代码(Write lots of code.)
就是说练习的量要大,搞题海战术。这是人尽皆知的道理,量变引起质变。无他,唯手熟尔。
2.深入学习开源代码
有两个要点:
(1)不能只看,要练。John Carmack的原话是Clone existing things as exercises.
具体怎么练呢,他没说,Edward Kmett的那两句话给出了具体的方法:
a)找的开源代码要简洁(finding something neat)。
b)编写自己的版本以加强理解(writing my own version to understand it)。
c)优先改编核心部分,重新设计它(change a core part; redesign it),过程中要尝试理解人家的代码为什么要写成这样(understanding why it is what it is)。
这正是咱们需要学习之处,我们一般学习一样东西,脑子里的关键词都是理解、吸收、消化,顶多也就是什么费曼学习法,将所学知识教给别人。总之,目的都是学会。人家是一边学习一边通过重构创新,层次境界高下立判。咱们普通人即便没有这个本事,至少也应该有这种意识,有这种冲动。
(2)要深入地学习(Learn deeply.)。不能流于表面,不能走马观花。要知道冰山下面是什么,方法背后的原理。理解它是如何产生的,它为什么是这样,它与其他知识的关联。
3.边实践边看文献(Alternate trying yourself and reading literature.)
这一点Edward Kmett也给出了具体的方法,与学开源代码一样,自己尝试重新设计论文的核心部分。
4.保持痴迷(Be obsessive)
纯粹热爱,陶醉其中,无法自拔。
全情投入,不顾其他。
不为赚钱,不为成大神,不为装叉。
就像韦神一样。
版权声明:本文转载于今日头条,版权归作者所有,如果侵权,请联系本站编辑删除
本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.iotsj.com//kuaixun/3241.html