小土刀

新博客地址 -> wdxtub.com
我的微信 -> wdxtub
加我请简单介绍下自己哈

【编程大师访谈录】拓荒

翻看一下这本书的笔记,第一条居然是5月24日的,这么一算,居然看了将近四个月才把这本书看完。为什么花了这么久,一来是因为里面的编程大师我基本都连听都没听说过,二来是因为可能生长在windows的时代,已经习惯了这种模式,对于早期拓荒般的努力没有特别大的感触。


其实要说我们能从这些编程大师身上学到什么,那一定是比较抽象的东西,因为对于拓荒时代的程序员来说,他们面对的和我们是完全不一样的。但是大师之所以成为大师,是因为他们的心智更加成熟、意志更加坚定、思维更加灵活,这些才是我们需要像他们学习的。而具体的技术反而显得次要,因为技术只要肯学迟早能学会,但是大师的心智才真正需要去认真感受。

所以这里我挑选了访谈录里面比较能体现大师们心智的只言片语,希望对大家有所启发:

通过数学,你学会逻辑推理。你还会学到如何证明,以及怎么处理抽象要素。通过物理学等实验科学或人文学科,你学会如何应用这些抽象在现实中建立联系。

一切都应该尽可能简单。但要做到这一点你必须掌握复杂性。

设计程序和发明算法截然不同。对算法而言,关键是要在头脑中形成整个计划,然后不断重新调整各个部分,最终找到能达成计划的最佳方法。诀窍在于充分明确算法,这样你才能完全掌握这个算法,并了然于胸。

最重要的素质是能够把问题的解决方案组织成容易操控的结构,其中每个组件都可以用简单的方式说明。

学习数学。学会思考。阅读。写作。这些东西会更有持久的价值。学习如何证明定理:过去几个世纪累积下来的大量证据表明,这项技能可以运用到其他许多事情上。

在动手做任何事情之前,我都会深思熟虑。但一旦开始做事,我就不怕把它扔到一边儿。有一点非常重要,程序员看待一段代码应当像对待一本书的烂章节那样,弃之如敝屣。千万不要过份迷恋一个想法,绝不要固守某样东西以致不能在必要时把它丢掉,这才是程序员应有的态度。

我相信在数学、英语和基础科学方面拥有坚实的基础极为重要。然后,等到读研时,可以尽管放手去学习计算机知识。

要想取得成功,你需要找一拨才华横溢的人,而且他们的技能可以很好地融合互补。这就是成功的秘诀。

我教的两件事情对学生们的学习来说是非常重要的:解决问题以及如何学习。知道如何学习能够让你顺利通过考试并获得其他的校园生存技能。而如果能学会如何解决问题,你这一生过得应该都会不错。

你需要学习其他人的工作。他们解决问题的方法和他们使用的工具会让你以一个新的视角来审视自己的工作。在写程序前只需要学习一组为数不多的程序模块。

数学对计算机科学有着很大的影响。大多数优秀的程序员都有一定的数学背景,因为它有助于学习证明定理过程中的纯正性,在证明定理的时候不能做模糊的陈述,只能做精准的陈述。在数学中,不仅要建立完整的特征描述,而且要以很不明显的方式把定理结合起来。你常常会去证明一个问题是可以在更短的时间内解决的。数学与编程有很直接的联系,因为我是这么看待这个问题的,所以我的这种观点可能比别人更强烈一些。我认为两者之间有着天然的联系。

所以其实你会发现,好好学数学是归宿。

评论

热度(2)

  1. Erving小土刀 转载了此文字
©小土刀 | Powered by LOFTER