[转]孟岩: 如何学习新东西?
学编程技术最有效的办法,就是:
- ①找到该领域口碑最好的那本书,尽量不要找视频
- ②找到学这门技术最好的编辑器/IDE及其插件/扩展
- ③关闭社交应用
- ④给自己定一个1个月的计划及目标,开始做
- ⑤构思一个一万行代码量左右的实践项目,开始做
- ⑥总结,补缺,重构,增强。
在具备基础之后,学习任何新东西,都要抓住主线,突出重点。 对于关键理论的学习,要集中精力,速战速决。而旁枝末节和非本质性的知识内容,完全可以留给实践去零敲碎打。
原因是这样的,任何一个高级的知识内容,其中都只有一小部分是有思想创新、有重大影响的,而其它很多东西都是琐碎的、非本质的。 因此,集中学习时必须把握住真正重要那部分,把其它东西留给实践。对于重点知识,只有集中学习其理论,才能确保体系性、连贯性、正确性; 而对于那些旁枝末节,只有边干边学能够让你了解它们的真实价值是大是小,才能让你留下更生动的印象。 如果你把精力用错了地方,比如用集中大块的时间来学习那些本来只需要查查手册就可以明白的小技巧,而对于真正重要的、思想性东西放在平时零敲碎打,那么肯定是事倍功半,甚至适得其反。
因此我对于市面上绝大部分开发类图书都不满——它们基本上都是面向知识体系本身的,而不是面向读者的。 总是把相关的所有知识细节都放在一堆,然后一堆一堆攒起来变成一本书。 反映在内容上,就是毫无重点地平铺直叙,不分轻重地陈述细节,往往在第三章以前就用无聊的细节谋杀了读者的热情。 为什么当年侯捷先生的《深入浅出MFC》和 Scott Meyers 的 Effective C++ 能够成为经典? 就在于这两本书抓住了各自领域中的主干,提纲挈领,纲举目张,一下子打通读者的任督二脉。 可惜这样的书太少,就算是已故 Richard Stevens 和当今 Jeffrey Richter 的书,也只是在体系性和深入性上高人一头,并不是面向读者的书。
最近我闲逛各技术社区,最深的一个感受,就是开发者的niubility value也跟中国社会的 income distribution 一样,呈现严重的两极分化状态。 所以我建议那些老鸟们,多做一点提纲挈领的总结工作,把真正紧要的东西总结出来,给社区一些贡献。