忘了很正常。
「无忌,我教你的还记得多少?」「回太师傅,我只记得一大半」
「那,现在呢?」「已经剩下一小半了」
「那,现在呢?」「我已经把所有的全忘记了!」
「好,你可以上了…」
张教主的这个名场面也时刻发生在刷题中。想靠记住每道题的解法显然是不现实的,况且题目只会越刷越多。
刷一道算法题,求解的思考过程远比知道最终解法要重要。就好比数学/物理定理,你知道了会用是一种境界,能完整证明它们又是另一种境界。所以如果可能的话,尽量不要让自己陷入靠记忆解决问题的地步。
要怎么做呢?我提供一个以前同学的例子。他本科是工科,研究生转了CS专业,毕业后刷题3个月拿到了Facebook,Google,Amazon的全职offer。他刷题的方法就是做笔记,这是他3个月刷题过程中整理的笔记,将近900页,你们感受下(笔记链接点这里)
他刷题的原则很简单,不要把“题目数量”作为刷题指标,而应该把问题拆解,拆成具体的问题模式和对应的解决方法。用图来表示的话大概像是这样: