最近一年,我发布了十几篇关于算法的文章,几乎都是我学习过程中的一些笔记,内容和算法4这本书重复,只是稍微添加了一些个人思考。
我寻思这些文章对于阅读者的意义,好像没有,所以我把它们都删了。
这让我想到了我目前的学习方式:刨根问底,死嗑细节。
实际上这些细节上的东西是很难记住的,而且太深入所有算法的细节让我有点不堪负重,甚至记不住每个算法的特性,我已经没有余裕去思考这些算法之间的联系,没法从更高层次上了解算法这门学科。
我应该更加关注某个算法的应用场景、性能和大体的实现流程,至少不应该在细节上花费这么大功夫。在Coursera上学习算法4这门课程的时候,作业也没有要求写算法,大多情况下是如何运用这些算法解决实际问题。
学习算法的目的是为了在一些情况下写出更高效的代码,而不是为了手搓算法。从这方面思考的话,学习效率至少可以提升好几倍。
想起几年前从上海回来面试的时候,其中有一位面试官问过我一个问题:他有时候会要求项目组的成员在一个月内看完某一本编程类的书籍,在不影响工作的前提下是否能完成。
我当时有些心虚的回答没有问题,想来是有点可笑,就我学习算法4这本书的速度,少说也要半年。
虽然具体的学习方式我还没有总结出来,不过现在我倒是可以分享一些平时使用到的工具和使用范围更小的学习方式,这些东西对我也有不小的帮助,至于具体的使用方案无需我详细说明,因为你可以很容易的从谷歌或百度搜索到。
-
支持反向链接的笔记应用:例如 Obsidian,Roamresearcher,Remnote 等笔记应用,能极大的提高记笔记的效率。使用方式需要自己探究一下,笔记多了以后效果显著。
-
GTD 时间管理:我经常用TODO来记录我需要做的事情,或者将临时想到的东西记录在TODO上,然后用GTD的方式去组织和管理它们,这真的是能确实提高生产效率的工具。
-
KWHL 学习方法:对于学习一个知识点,这种学习方式真的太高效了。例如下图是我以前学习Unicode时的思维导图