各个击破,取众家之精华

https://weibo.com/6347862377/Iq7eTmCdj

经常有人希望我能给出一个书单或者教程列表,可以让他们看了之后,按照指引去自学,就能全面的把握计算机的一切。每当遇到这样的问题,我总是不能回答。因为我不知道任何地方存在这样一个神奇的单子,告诉你全世界最好的资源在哪里。

其实学习不需要整个的课程或者教程。我总是把学习细化到“知识点”上。比如我要掌握机器学习,我不需要一整门课都看同一个视频课程,或者同一本书。我会把每个知识点作为单元来对待,个别攻破。

每次学习一个知识点,我都是同时看好多资源。或许从中找到合适的,或许从好几个里面各自挑出最好的部分,或许把同一个主题的好几种材料全都拿来看一遍。把那些东西消化吸收掉,然后我就忘记了这些营养是从哪里来的。

打个比方,我发现自己最近长了好些肌肉,可是你要我说出我这两个月吃了什么很好的菜,所以长出了这么多肌肉,我也说不出来。我的记忆里并没有什么特别好的食物。因为菜已经在中途被我给分解消化掉了,我也不知道那些氨基酸是哪里来的,或者还有什么神秘物质。

通常说来,没有任何一个资源可以说是“最好”。比如我推荐过斯坦福的 cs231n 课程,可以用来掌握机器学习。可是 cs231n 里面其实只有一两节课是最好的,其它部分很多比较肤浅,甚至有点吹牛。这两节最好的课里面却又不是每分钟都是好的。而且要深入理解这里面的原理,我储备的 PL 理论是起了“催化剂”作用的。这就像人体肠胃里的消化酶或者益生菌,有的人身体消化功能好,他就能从同样的食物吸收到别人吸收不到的营养。PL 理论经常被我作为消化酶或者益生菌。

另外你也不能因为 cs231n 的 Andrej Karpathy 的课讲得好,就觉得他是值得信赖的。他后来成为了 Tesla 的 AI Director。如果你看他的 blog,会发现跟绝大部分 AI 人一样,很多浮夸吹嘘,不切实际的内容,把不可能的事情说得就在眼前。

我从来没觉得吴恩达的 Coursera 机器学习课程好。我曾经试图从他的 Coursera 学,可是第一堂课之后就发现云里雾里了,不知道他为什么讲那些向量计算。现在看到吴恩达吹嘘 AI 的 blog,泡沫都破灭了,才发现我看不下去是有道理的。

还有一些资源,本来它讲的是错的或者过度复杂。可是因为结合了我的很多经验和直觉,我在看到这些的内容的时候,直接把它化解掉了,启发我发现了真的简单的东西。所以最后我得到的东西,跟别人给我的完全不一样。

我在 IU 的时候被迫辅修了两门数学系的课,其中一门是抽象代数。到最后,数学系的教授都怕我了,因为我经常抓住课本上的表达方式,指出它们在语言层面上的错误,使得本来简单的数学概念难以理解。最后我确实从课上学到了很多有益的内容,然而我推荐你去上这门课吗?

同样的课同样的教授,不同的人去听讲,恐怕就不能收获什么东西。而且我非常的讨厌这门课的考试方式,以至于我弄的那么清楚,老师都怕我,最后考试成绩仍然很差!如果我推荐你去上这课,你肯定会骂我,可是我脑子里的东西确实是从那里来的。

我总是很尊重 Dan Friedman,夸他的课讲得好。结果有好几个 IU 的中国学生听了我的赞美,真的去上了 Friedman 的课。可是当我问他们反馈的时候,有的人诚实的告诉我,他完全没学到东西,懵了!

实际上我上 Friedman 课程的时候,跟我同班的有一个美国人,每次下了课都在跟我抱怨,说他跟不上课程的内容,还说了 Friedman 一些坏话,说自己上课时被轻视。我也不知道为什么他跟我的感觉如此不一样,但我成了他的好朋友,后来我经常在 Friedman 面前支持他。

后来我发现,我上课的时候有很多的信息其实不是来自 Friedman,而是因为我的脑子里早已准备好了某些东西。所以当他讲的时候,多年来存在那里的很多疑惑,忽然就通了。但如果你没有东西存在那里,你可能并不能体会到那种感觉,也许就叫“茅塞顿开”吧。要能茅塞顿开,必须得先有“茅塞”,才能顿开……

我头脑里的好多内容都不是从书里看来的。我没看过 EOPL3,没看过 HtDP。龙书在清华看了全忘了,再看新版已经发现很垃圾了。Cornell 的编译器课用的虎书,课是 Tim Teitelbaum 教的,课程设计如此之差,大部分时候在写 parser,评分方式如此不公平,简直就是在坑人,所以我到一半的时候把课退了。我不喜欢 Robert Harper 的 PL 书…… 到最后根本不能给人推荐任何这方面的书籍。

我很讨厌 Benjamin Pierce 的书,每本都是砖头一样厚,讲得云里雾里,还有很多一知半解的内容。可是我的确看了他的《Software Foundation》第一二章,并且结合其它资源,破解了他如何使用 Coq 的秘密。可是如果你去看,就只能被他牵着鼻子走。第一步做这个,第二步做那个,然后你的定理就证明出来了。可是我怎么会想到第一步做这个,第二步做那个?Benjamin Pierce 从来没有写。

同样的秘密藏在 Dan Friedman 的《The Little Prover》里面,但似乎只有我的眼睛把它看出来了。当我告诉 Friedman 他的有一个地方应该修改才好理解,他不知道我在说什么。

总之,我脑子里的东西,我已经忘了它们是怎么来的,而且这也不重要了。重要的是,我能直接告诉你那些东西是怎么回事。哦,也许不是那么直接,但是我会讲到你听懂为止!

所以我觉得,期望得到这样一个指南是一种误区。埋头啃书本,啃网上的教程,真的不如直接跟懂的人学习。现在有些人的面前摆着这样一个顾问,你们应该直接问他具体的问题,而不是问他到哪里去寻找相关的文档。你不再是孤军奋战。