卡卷网
当前位置:卡卷网 / 每日看点 / 正文

那些编程水平很高的程序员是怎么训练出来的?

作者:卡卷网发布时间:2025-01-14 20:20浏览数量:79次评论数量:0次

知乎上一个高赞答案:只要照着John Carmack和Edward Kmett的这三句话,一定可以成为编程高手。

John Carmack(游戏开发大神,最早的3D游戏引擎开发者):

Write lots of code. Clone existing things as exercises. Learn deeply. Alternate trying yourself and reading literature. Be obsessive

编写大量代码。克隆现有的东西作为练习。深入学习。自己尝试和阅读文献交替进行。痴迷

Edward Kmett(函数式编程大神):

Most of my programming career has involved finding something neat, writing my own version to understand it & often throwing it away.

在我的大部分编程生涯中,我都是找到一些简洁的东西,编写自己的版本来理解它,然后经常把它扔掉。

Edward Kmett:

l program those "clones" like l read papers: change a core part; redesign it. Gain progress or understanding why it is what it is.

我给那些“克隆体”编程,就像我读论文一样:改变一个核心部分;重新设计它。获得进步或理解为什么它是这样的。

总结一下:

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)

纯粹热爱,陶醉其中,无法自拔。

全情投入,不顾其他。

不为赚钱,不为成大神,不为装叉。

就像韦神一样。

END

免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。

卡卷网

卡卷网 主页 联系他吧

请记住:卡卷网 Www.Kajuan.Net

欢迎 发表评论:

请填写验证码