我在之前的文章中提到过,学习计算机最重要的点在于关注能力的成长——其实这个观察对很多领域都是成立的。而所有能力中最重要的,莫过于学习的能力。从这个角度上说,学习能力是培养其他能力的元能力。这样的元能力还包括解决问题的能力、沟通的能力、领导的能力等等。我自认为在后面的几个方面还有很大提升的空间,但对于学习这件事情来说,应该是有一些粗浅的见解的,因此写一篇文章和大家分享,但求抛砖引玉。
回顾我的学习经历,从最开始入门算法竞赛,再到科班的计算机专业的学习,再到细化的几个计算机方向:深度学习、计算机视觉、自然语言处理、操作系统、数据库、前端和交互设计,越来越觉得在一个全新的领域展开学习是一件有迹可循的事情——有特定的套路可以大幅提升入门的效率,并且快速地掌握这个领域最核心的知识。
说白了就是回答“为什么要学”这个问题。这个问题的答案可以有很多种,可以是基于兴趣,也可以是解决问题的需要,甚至是为了理性愉悦。
不过归根结底,最能提高学习效率的回答,一定是具有明确而实际的需求的。基于兴趣的学习并不是不行,而是从我亲身体验看来,现代人的兴趣十分广泛,先不说学习之外的兴趣本身就足够丰富,就拿学习来说,一个人同时感兴趣的领域和方向可能也足够令人陷入选择困难。
所以,如果你可以为你的兴趣找到一个更加具体的动机,会比简单地回答:“兴趣使然。”更加地明确。
明确动机本质上也在帮助你明确目标。毫无目的地学习,非常容易陷入知无涯而生有的虚无主义之中。只有抱着明确的学习目标,才能在遇到那些复杂或者困难的点时甘之如饴。并且,如果你一开始就有非常明确的目标,学习其实是一个非常享受的过程,因为你可以确切地感觉到反馈——你每多学到一点,就在离自己的目标更进一步,这种强烈的获得感与满足感,不就是幸福吗?
这一个步骤和明确动机其实是耦合在一起的——如果对背景毫无了解,你应该也不明白为什么一定要学。在一些情况下,如果你不了解背景,你可能都不知道有这个领域的存在。
不过在明确动机时,你可能只是对这个领域有一些模糊的认知,这些认知来自于平时非刻意的输入,甚至有可能是错的。
因此,一旦明确了学习的动机和目标,你应该更系统性地、刻意地对这个领域展开背景调查。
这个阶段,搜索引擎是我们最好的伙伴。通过广泛地搜索,从介绍性的文章了解这个领域的宏观图景,知道即将学习的知识可以解决什么样的问题,这种解决手段和其他方式相比的优劣,这个领域和其他领域、特别是自己已经熟悉的领域的关系是怎样的,这个领域的发展历史和发展脉络是怎样的,有哪些独特且重要的概念?
背景调查还有一个方式,就是让自己浸入这个领域。形象地说就是在这个领域的水中间泡汤,并把头沉进去。你需要在日常的被动信息摄取中加入来自这个领域的信息来源,譬如相关的博客、公众号、telegram 频道或者是 twitter 账号。耳濡目染地获取这个领域的更多信息,并有的放矢地对出现的新概念、有趣的话题进行更深入的探索。
背景调查获取的信息通常是宏观或者碎片化的,这并不是真正的学习。但这个过程可以提高你对这个领域的熟悉程度,在你的话语体系和思考方式中加入这个领域的成分,并提高你对这个领域的品味与认知。
经过这个过程,你不仅会获知这个领域有哪些重要的资料,更重要的是会拥有判断这个方向的学习资料的优劣的能力。接下来就是自行汇集并整理一份适合自己的高质量资料。
通常来说,我最喜欢的学习方式还是系统性地阅读教材,如果有的话,找到这个领域最好的教材。在较为成熟的领域,这是最好的方式。
公开课也是非常有效的学习资源,如果这个领域有名声在外的公开课,那么你实际上已经不需要过多地花心思收集资源了,这门课的大纲(syllabus)往往就是这个领域最重要的信息的索引。
在新兴的,或者仍在发展的领域,可以尝试向人学习。找到这个领域最优秀的人,去关注他们甚至是接触、认识他们。一个非常有效的方式是看他们是如何进入这个领域的,翻看他们的博客或者社交媒体账号的历史,找到他们最早对这个领域的发言,然后从后往前地梳理,这样你往往能获得一个成体系的学习路径。
此外,作为这个领域的关键意见领袖,他们可能会制作教程并分享出来,这也是值得关注的。
一个非常具有实操性的收集资料的方式,特别是技术领域,可以查找是否有汇集好的 awesome list。awesome list 是 GitHub 上一种较为流行的资源收集整理的形式,由社区参与贡献,可以快而全地囊括这个领域里最重要的资源。通常你只需要搜索 awesome + 你想学习的领域名称即可。如 awesome-react、awesome-rust、awesome-flutter、甚至是 awesome-awesome(awesome list 的 awesome list)。
不要花太多时间在收集资料这个阶段——资料再多,不花时间消化对于学习毫无意义,反而会让你陷入一种虚假的满足感,以为收集了资料就等于学会了。
上面说了那么多,其实也都是准备工作,最重要的、花时间最多的,然而也是反馈最强烈的,还是在扎扎实实地学习上。
对于自己手上已有的资料,制定一个消化学习的计划。这个计划最好有明确的节奏和阶段,譬如对于一本书来说,按照月、周、日的粒度划分阶段、把控进度。一个重要的观点是,每天学一个小时的效率远超出周末抽一天学 12 个小时。
对于很多领域来说,其实扎实地读完一本教材或者上完一门课程,就已经算是成为了半个专家了。
在执行学习计划的过程中可能会有枯燥的感觉,这个时候就需要回顾自己的动机、目标,并稍稍跳出来重新审视一下学习计划。但千万不要放弃,除非这个计划本身有问题或者动机改变。一个比较好的方式是,稍稍往前眺望一下后面要学的更有意思的内容,这样就会提供一个明确的反馈预期;或者是回过头去看看已经学过的内容,一方面是做一些复习,另一方面也是提高对自己已经走过的路径的认可——无论怎样都是会提升幸福感的。
另一个需要注意的点是,如果你确认学习路径的正确性,就应该暂时收束精力来投入到学习中,而不是继续漫无目的地在领域中漫游——这个时候知道太多而不深入地学习来掌握核心概念反而是危险的。有意识地回避一些让自己分心的信息,避免又看到一本新书或者一门新的课程从而改弦易辙——不要轻易这么做,除非有明确的理由。一个非常容易陷入的误区是,不断地改换学习资料,把从 0 到 0.5 的过程学了一遍又一遍,却从来没有进入过深水区。
改换学习资料和学习路径这件事情其实是有很高的代价的,这说明一开始进行背景调查和资料收集时没有找到最好的资料。但随着学习能力的提升,你会对自己有更多的了解,判断学习资料和自己的适合程度的能力也会提升,你往往可以很快地找到最适合自己的路径,并且流畅地完成从 0 到 1 的学习过程。
执行学习计划的过程其实挺幸福的,因为有确定性的反馈和收获。所以只需要扎实地,甚至是无情地推进学习计划,你就可以完成领域知识的学习,达到既定的学习目标,这几乎是板上钉钉的。
而随着学习的深入,你对这个领域的认知也会越来越扎实,你也会看到很多只有内行人士才能看到的东西,产生一些深刻的洞察,这些认知会指导你去应用这些知识来创造,也会给你更多的进一步学习的提示。
迭代加深,付出时间,坚持下去,你就会成为这个领域的专家。
其实当学习能力到达一定程度之后,没有什么公共知识是学不会的,只是需要投入时间。
这里对公共知识的定义其实很含糊——大概意思是存在一定规模知识群体的知识,即非个人或组织内独有的知识,这种知识通常有自洽、完善的定义,有发展脉络,可以被传播和教授。
拿计算机技术举例子,我很早就下过一个论断,计算机,有脑子就能学。这并不是武断,掌握正确的方法,找到适合自己的途径,在资源如此丰富的计算机世界,没有知识是学不会的。所谓的深奥,不过是需要付出过多的时间和精力来学罢了。
推而广之,具有优秀学习能力的人,可以在任何公共知识领域成为专家。然而时间是有限的,可以学习的知识是无限的,这就有点以有涯随无涯的感觉了。
所以最重要的,还是有明确的动机和目标,知道自己为什么学习,这才不容易迷失。据我所知,最好的学习动机,就是为了创造。创造是目的,知识是工具。想清楚自己想要创造什么,通过学习补上能力的缺失。
当然,有很多知识是无法通过主观能力学会的,这一点我尚没有太深的认知,但我知道这可能比公共知识的学习更加重要,特别是在人生的中后期——但目前,还是尽可能地提高公共知识领域的学习能力吧,等时机到了,再和大家分享自己的心得。
感谢阅读!