谈谈学习方法论
刘未鹏在他的《暗时间》中提到:
学习一项知识,必须问自己三个重要问题:1. 它的本质是什么。2. 它的第一原则是什么。3. 它的知识结构是怎样的。
但是后来我在实践中发现,如果刚接触一样新事物,一上来就给自己抛出这三个问题,反而是个负担。就第一个问题来说,其实我们可以发现,很多在这个领域工作多年的人都不一定能回答上来。
后来我发现他说的其他方法论更加有操作性一点,譬如,“学习一个东西之前,首先在大脑中积累充分的疑惑感”。很多知识,你怀着解决问题的思路去学习,往往更加有效。就iptables这个服务来说,之前在做服务端的时候有接触过几次,但是当初配置的时候只是上网找了一下相关问题,然后依样画葫芦搞定了问题,至于这个对服务里的很多细节却是云里雾里。
最近重新整理了一下这方面的知识,首先从两个问题入手:iptables是什么(what)?为什么很多服务器管理者选择iptables(why)?然后在这个基础上和解决问题的途中继续提出更细化的问题。譬如从第一个问题,可以了解到iptables实际上是一种防火墙服务,于是又可以提出其他问题:防火墙是什么?它的结构是什么?可以分为哪几类?iptables属于哪一类。。。
实际上,通过这种提出问题——解决问题——再提出问题——再解决问题……这种方式,直到最后,你会发现,这样东西的知识结构你已经弄清楚了,也就是开篇提到的第三个问题。而且在学习这样东西的途中,也是一个不断反馈的过程,最终形成了一个个闭环,这也是很多牛人经常提到的戴明环。
最后,搞清楚了iptables的基本知识结构和概念之后,再去弄明白这个服务是怎么用的,已经是顺手牵羊的问题了。
除了不断解决问题,我同时也是怀着“教”的目的去做这件事的。“教”是最好的“学”,如果一件事情你不能讲清楚,十有八九你还没有完全理解。很多知识,你只有写出来,你才会更加注重它的结构以及逻辑关系,这个时候,你才算真正开始深入。
总的来说,学习一样东西,方法论有千千万万种,适合自己的才是最好的,而我总结出来的方法是:
- 积累足够疑惑
- 提出问题——解决问题并形成闭环
- 以输出带动输入