面试时带一只铅笔是一个程序员的基本素养

来源:互联网 发布:知乎 冷门游戏主机 编辑:程序博客网 时间:2024/04/28 02:23

怎么才能在学算法的时候学到背后的东西呢?有以下几点很重要:


1、不要觉得每个步骤都很显然,每个nontrivial的算法背后都有一段艰辛的探索经历,觉得显然的话必然是一种幻觉。Stay foolish,才能发现某些环节其实并不是那么显然的。



2、检验是否真正理解的最佳方法就是过一段时间之后,自己试着证明一次。如果真正理解了的话,你的证明便会比较顺畅。如果当时没有真正理解,那么凡是那些你当时觉得显然但其实不显然的地方,都会成为你证明里面缺失的环节。


3、对于一个算法,多寻找各种来源的资料,也许能够找到一个讲的比较深刻的。在《数学之美番外篇:快排为什么那么快》和《知其所以然(一)》里面都举到了这样的例子。


4、多试着去抽象背后的一般性法则,即便后来发现抽象得是错的,也比不去抽象要好。抽象是推广的基础。只有抽象出更深层的法则,才能让你事半功倍,触类旁通,否则一个萝卜永远是一个坑。(注意,其实我们的下意识是会进行一定程度的抽象的,例如前面提到的原始人的例子,小溪和小河(或者小沟)细节上是不同的,但本质上是一样的,我们的大脑会自动进行这种简单抽象,提出事物的共性。正因此,即便你不去有意识地总结一般规律,只要你看的足够多,练的足够多,必然就会越来越谙熟。)
原创粉丝点击