很久没有把我在 adRise 内部的演讲放出来了,一来最近我分享的频率低了(同事们也做了不少分享),二来有些分享是我们内部的系统,不方便放出来,但今天我跟团队分享的内容和内部系统无关,而是一个 framework,一个学习的 framework。
虽然演讲的标题是「如何学习一门新的语言」,slides 的所有内容也围绕着学习一门新的语言展开,但正如我最后放出的两个 head fake,我讲这个主题的目的并非教大家一门新的语言 elixir(尽管我以此为例),也并非教大家如何学习一门新的语言(尽管整个篇幅由此展开),其实深层次的内容是如何总结出一套方法论,去学习新的东西。
罗蒙诺索夫子曰:不学习,毋宁死。孔夫子也曰:不学习,不知DAO。大部分职业,学习其实不是个生死攸关的事情;然而计算机,或者软件开发,真的是个不持续学习就分分钟被淘汰的局面。那么,如何更有效地学习呢?整个 Lecture,我从 why -> what -> how 几个方面阐述,并且在 how 这里提出了一个我觉得行之有效的 framework。
概括地说,why 这一层是找到学习这个东西的好处。小平同志告诉我们:捉到老鼠的就是好猫。在软件开发领域,每日诞生的「猫」实在太多了,乱花渐欲迷人眼,留牌子还是赐花实在太难抉择,那么,评价它是否是好猫的因子是什么呢?我主要提了这几点:
通过 why,你过滤出一些符合的可以学习的内容,接下来是 what。对于语言的学习,我列了不少方向,归根结底是一个思维:跳出舒适区,找一个你最不擅长的方向。比如你所接触的都是解释型语言,那么一个编译型的语言能够让你收获良多;你 NoSQL 的数据库(比如 MongoDB)用得多了,回过头好好钻研 RDBMS(比如 PostgreSQL),收获会非常大。
弄清楚了 why(你的 motivation),确定了 what(to learn),接下来是 how。how 是这个 framework 的关键,不同的方法决定了不同的学习效率和效果。概括来说:
OK,就讲这么多,本来是想凑三百字原创的,没想到话匣子打开收不住了。下面是看图不说话时间。不用谢。