程序员为什么会淡忘?

一 起因:

(1)你是否有过这种尴尬经历:明明昨天研究非常熟悉的技术。今天却不能非常好的领导解说?

(2)你是否有过这种尴尬处境:明明之前做好的项目。过一段时间居然把它统统忘记?

(3)你是否有过这种汗颜情景:自己很熟悉的技术。突然一下子被一个爱刨根问题的”无招数的江湖小子“。给问的自己不知道怎样回答?

(4)你是否有过这种纠结状况:明明记了N多次的算法。总是一次一次查看,再一次一次的忘去?

(5)你或许会说忘记。是为了接收、接受新的知识和信息……

你或许会说忘记,是为了更好的记住……

你或许会说忘记。是为了……

(好了。你要是再找,会找到一万种理由),纵使你有一万种理由,可是对于一个算法(比如快排 —— quickSort, 堆排 —— deapSort)你看了N遍的算法,你还是没有记住,这是说只是去的!

你有没有考虑过。你根本就没有弄清楚问题的来龙去脉。根本就不晓得算法的真谛。更不知道算法的本末,只停留在我会用……并不知道为什么是这个样子。

二:怎样尽量避免这些窘况的发生

(1)我只以自己学习算法的经历为例:

(2)对于比較复杂但还不是非常复杂的算法(algorithm)。一定要找到一种适合自己记忆的方法

(3)最好把这样的方法,模拟一遍。绘图,画表格,都能够,。一定要模拟一遍。

(4)就拿DP(01背包,全然背包。多重背包)算法来说。如果把最根本的推导公式记住了,你能够通过画一个矩阵(二维数组)。模拟一遍,就会发现,原来空间复杂度能够由二维 降为 一维

(5)还有就是并查集,路径压缩,自己模拟一下会非常方便的记住的

(6)各中排序算法。二分查找等等算法

posted @ 2017-08-16 18:40  yxysuanfa  阅读(183)  评论(0编辑  收藏  举报