答读者问 | 如何寻找简单易懂的学习资料?
最近,有个同学在我的知识星球问我:
我是个程序员小白,是其他专业转来的,看了您的课,真仿佛要上天一般。想求教老师 ,除了学习您的数据结构和算法课程,能推荐一下我还能到哪里找到讲得这么容易理解的课程,来提高技术水平吗?
bobo老师的回答:
我的回答可能要让你失望了。简单来说,我没有任何秘密的资料,或者秘密的资料源,这些资料通俗易懂,看了就上天了。
各个领域的经典资料,通常都是好资料。关键是它是否适合你。即使是我经常不推荐的《算法导论》,它的经典程度也是毋庸置疑的。只不过对大多数人来说,尤其是初学者来说,水平完全不适合看《算法导论》而已。实际上,很多同学会在我的课程问答区问出一些水平很高的偏理论的问题,我的回答都会引用《算法导论》中的推导。
怎么找各个领域的经典资料?我的经验,在大多数情况下,网上一搜,评价高的书籍或者课程,都不会太差。
但是,关键在于,不能指望某一个资料,跟着它学就“从入门到精通”了。这是不现实的。大多数资料,都是有的地方很精彩,但有的地方一塌糊涂。我的课程也不例外。
我的经验:比对参考不同的资料,对于同一个知识点,看不同的人怎么说,是非常非常重要的。很多时候,一本书这里的例子举得不好,但是看那本书的例子就懂了;可是那本书的那个公式推导过程又不清晰,看这本书就很清晰了。
这是正常的学习过程,不能犯懒。也不能“完美主义”:认准一个教材就一路走到黑。只有这样,才能慢慢综合众家之言,形成自己对知识的理解。对此,我强烈建议再阅读一遍我的公众号文章:《高效学习的秘密》
如果真要说找资料有什么诀窍的话,我认为有以下几点可以分享:
1)
在这个时代,不要只关注出版物或者大平台上的课程。很多网络上的帖子的讨论,或者博客,或者简单的教学视频,或者一些大学的公开课件,出奇的棒。尤其是当你不需要系统学习某个领域,只是想学习某一个知识点的时候,通过网络上的碎片化知识介绍进行学习,其实是非常高效的。
2)
找英文资料。
不吹不黑,在当下,就我接触的资料范畴,英文资料,真的比中文资料强太多。不仅仅在出版物方面,还在我上面说的网络讨论或者博客或者简短的教学视频上。比如 Youtube,在我看来就是超牛的教育网站。
这里,我说的强太多,首先,就在于可读性和可理解性上。对于大多数英文教材,别看厚厚一大本,其实里面涵盖的内容,和很多中国教材薄薄的一小本儿,内容量是一样的。甚至中国教材涵盖的内容可能更多。但国外教材为什么厚?很多时候,就是翻来覆去地说,站在不同角度用不同例子说,生怕你看不懂。
另外一点,就是英文世界资料涵盖内容的丰富程度和细腻程度,很多时候出乎我的意料。
比如,我在我的知识星球分享过一份资料,一本书的厚度,只讲贝塞尔曲线一个主题。把贝塞尔曲线的来龙去脉讲得一清二楚。要知道,一般,在图形学课本中,贝塞尔曲线只是一章甚至是半章的内容。
比如,我的算法或者数据结构课程,大量使用面向对象的编程特性。就有很多同学问我,如果用 C 语言怎么办?我会推荐他们读一本书《Object-Oriented Programming With ANSI C》。这本书在网上完全是开源的。它使用 C 语言——一个没有面向对象语言特性的语言,重构了面向对象语言的各种特性。通过这个过程,绝对既对面向对象有了深刻的底层理解,同时对 C 语言有了更深刻的理解。
比如,有的同学学习深度学习,却总是想把高数线数重新学习一遍。我在很多地方都说过,只要你本科的高数线数及格了,就没必要。直接去学习机器学习,遇见数学发现自己搞不定,再有针对性地补一下数学。目标性强,效率高。但如果你一定要因为学习深度学习复习一下相关数学的话,英文的世界里早就有这样的材料了。比如这份 The Matrix Calculus You Need For Deep Learning :
https://explained.ai/matrix-calculus/index.html
这些资料在我看来都还太“古板”,再举几个例子。比如你想自己搞一个邮箱服务器?来看看这 How To Run Your Own Mail Server :
https://www.c0ffee.net/blog/mail-server-guide/
想了解一下量子计算是怎么回事儿?来看看这个 An Interactive Introduction To Quantum Computing :
http://davidbkemp.github.io/QuantumComputingArticle/
(微信公众号文章不能直接放外链链接,感兴趣的同学请自行复制粘贴。)
... ...
这样的例子太多太多了,举也举不完。
所以,英语真的很重要。虽然我曾经写过《答读者问 | 这个年代,还有必要学英语吗?非说没必要,也没毛病》,但那是因为有的人很明确自己不需要英语。那就没必要学。
但从接受技术资料的角度,如果你能无碍接受任何英文资料,我个人认为,学习速率将直接超越 99%,甚至 99.99% 的程序员。
3)
现在,越来越多的资料,以开源的形式呈现,也都非常好。我在上面举的很多例子,其实就是开源资料,而非出版物。如果翻我的知识星球中【资源共享】的标签,还能看到更多例子。
不过,我的知识星球建立时间也不长,积累不够多。很多我过去接触到的好资料,都“丢失”了。我最近在思考创建一个开源项目,整理这些“非正规出版”,但极其有价值的开源资料:)
最后,因为这个回答里提及了英语,所以多说两句。
我之前写了一篇文章,叫《慢增长》,其中举的例子里“炫耀”了一下我在扇贝单词的打卡记录,于是,很多同学也开始天天背单词了。
在这里,我必须说,直接背单词并不是我推荐的英语学习方式。脱离具体的英语资料,用中英对应的方式去背单词,在大多数时候是低效的。
正确的积累单词的方式,是在英语使用中去积累。最常见也是成本最低的英语使用方式,就是阅读。在大量英语阅读的基础上,不认识的或者模糊的单词记录一下,每天复习一下,效果比死记硬背好太多。具体阅读什么,大家不用太纠结,你喜欢就好。人文,社科,历史,政治,科幻,恐怖,奇幻...其实...小黄书都可以...关键是你喜欢,读得下去。如果连中文都不想读的材料,就算了。
当然,除了阅读以外,电影、游戏、漫画、音乐......都可以。我曾经写过一篇文章:《看美剧学英语靠不靠谱?我说靠谱,方法都在这里了》
前几天,我在我的知识星球,也转载了我朋友圈里一位妈妈的分享。她观察自己的孩子在英国学习,是怎样积累词汇量的:
最后,对我的知识星球感兴趣的同学,欢迎扫码加入。免费的。
不在公众号的日子里,我都在知识星球。
大家加油!
本文相关阅读推荐:
《是不是很酷》虽然只是一个个人公众号,但在用心做技术原创。每周至少一更。希望一起陪你,用技术人的眼光,观察这个世界,探索这个世界。
因为今天的首推文章是广告,所以在这里,给大家发一个小红包。相信也只有铁粉,才能点开这篇文章,看到这里吧:)
166.6 元,88 个名额。周日(9月22日)早上 10:30 开奖。
如果喜欢我的文章,点个”在看“吧