如何学习新技术

我从 2009年~2010 年左右开始学习信息技术,从初期围绕单片机做电子设计,一路浅尝辄止,走马观花。什么语言都用过,在各种平台上都干过活,有用的没用的都学了一些,一路尝鲜一路丢。

虽然有识之士们都说,光靠广度没法找到工作,要对一门手艺有深度,到达深奥幽玄的境界。我自知能力有限,更何况,工作后每日加班,精力不济,能让我一窥天道的时间窗口越来越窄了。

即便如此,我也不觉得自己不行,这就是愚蠢人的乐趣。因为总有与你同样愚蠢的人,他们很快乐,我为什么不能快乐。我不仅快乐,而且要分享,要写作,本文就谈谈在下走马观花的本领。

兴味使然

首先要解决驱动力的问题,即便走马观花,心里也得有股劲,是不是?所以你得喜欢编程这门手艺,不喜欢,那至少也得好奇,当个好奇宝宝。既不喜欢,也无好奇心,自主学习就没法成立。

既然喜欢这门手艺,热爱这个行业,那么你自然有感兴趣的领域,或者小问题,这就是学习新技术前要做的第一件事,确定一个你感兴趣的方向。

有的朋友爱流行技术,因为网民们在学,所以他也想学。或者就业市场需要某个技能,所以被迫去学。这当然好啦,针对性地优化你的简历,在求职时候有用,但也仅限于此了。

兴味使然的学习完全不同,你能用更加轻松的心态看待每个知识点,也能在适当的时候深入挖掘一些现象的背后原因,这是一个充满快感的旅程,没有人提醒你:那里不是考点。

探寻入口

选择了方向以后,就该选学习材料了。随处可见的大型书单其实用处有限,因为材料的准备是分阶段的,侧重点不同的,这个过程伴随着你对该领域的初步认识的建立,混杂着你的直觉,常识,以及一点点随机性。

首先,做一些”自由探索”,闭上眼睛,听听伟大的互联网在你耳边的低语:Google,维基百科,问答社区。从庞杂的噪声中,你需要找到以下知识点:

  1. 基本定义:例如,机器学习是什么,不是什么?与相关概念(人工智能)之间的区别和联系。
  2. 主要工具:例如,机器学习的理论工具是什么,实践方式是什么?
  3. 核心问题或矛盾:例如,机器学习研究或应用中面临的基本问题是什么?

同时,也要了解几个主要的资料源(每个资料源不一定都适合你),例如:

  1. coursera/edx 公开课
  2. 大部头教材英文版,中文版
  3. 由网友编写的野鸡教程

基本概念的探寻,学习资料的搜索,两个过程并不相互独立。基本概念的逐步建立,能帮助你更高效地筛选资料,而好的学习资料往往会花相当的篇幅来阐明基本概念。

不专业的作者,要么开篇就贴代码,深入细节,要么对某项技术过渡吹捧,盲目狂热。好的学习材料也许轻松幽默,也许精确冷峻,但绝对不愚蠢。请务必花时间浏览各个教材前 5% 的内容,慢慢甄别优劣。

此外,好的学习资料,能够包含适当的实践内容。无论是数学题还是编程题,能否找到参考答案,是否提供代码实验环境,都是很重要的因素。

举几个例子,SICP,每道题都能在 Racket 上做实验,网上也能找到大家的解题方法;斯坦福 CS224N课程,完整的习题解答和项目环境;Nand2tetris,甚至有一整套硬件描述语言,虚拟机的环境,非常优秀。也有不好的例子,MLAPP,整本书都是印刷错误,习题无解答,全靠个人感觉,虽说是本好书,但阅读过程中我不停地做一些人工勘误的工作,非常痛苦,不适合入门阅读。

最后,很重要的一点,这个资料是否适合你当前的知识水平。太简单,以至于整本书都在印证你的想法,让你觉得它”很好读”;太难,你无法通过直觉跳过某些推导步骤,每一页的阅读都需要大量的思考,哪怕看完一整章,你也没有对这个章节的完整图景。

合适的难度,就是让你兴奋的难度,你能从中找到你过往的一些经验,也能看到很多全新的方法和观念,学完一章后,是否有一些愉快的想象,如果有,那么它的难度刚刚好。

短期专注

找到资料后,不要浪费它。快速,完整地把它消化掉,不要中断,每天至少两个小时以上的专注,周末也不要停,这是我的方法。

有些朋友喜欢同时做几件重要的事,然后在事情之间做时间片轮转,先做做A,再做做B,这种方式有助于应对给领导长辈跑腿之类的琐事,但对学习来说效率较低。

在短时间内全身心沉入到单一的问题中,在这段时间里,连潜意识都在帮你工作,你不仅在记忆知识点,更是在构建对这个领域的基本直觉。混合多种学习方式也很重要,不仅有被动的听和阅读,也有主动的实验,试错,推导。前文所说的资料准备,正是为了服务这个近乎宗教仪式的过程,如果选不对资料,你就没法找到这条灵性之路。

自然遗忘

人类会遗忘,这件事情曾让我很难过。

半年不接触一门手艺,就会生疏,再过半年,完全遗忘。我想把所有的理论,公式,语言,框架都记住,一有生疏,我就复习,就像抱着满满一筐苹果,一路丢,一路捡。心里疲惫,身体劳累,甚至觉得,如果最终都会遗忘,那一开始为什么要学。

后来才想明白,苹果框满了,我们就倒掉,再来一筐梨,桃子,火龙果,葡萄。对于学习新知识的方法论,逐年在磨练精进,虽然知识点没法记住,但对于该领域的直觉已经建立。

现在我把学习新知识,当时一次次旅行,其中的滋味,留给大家各自体会。