谈学习:读源码
小弟交日报,说看backbone和underscore的源码看不懂,我回了邮件给他,摘录于此,表达我对“读源码”这种行为的看法。
我不赞成新人以“读源码”的方式进行学习,因为相比于看文档、看范例、实操开发,“读源码”的效率实在太低了。
这是有原因的:
- 对于大部分新人来说,多半“单看每个字都认识,全放到一起就不知道啥意思了”……速度上不去,只能看懂“how”,无从知晓“why”。最后虽然知道原作者用的A方法、B方法、C方法,但到实战的时候,还是不知道怎么做。
- 流行的库和框架,大都经历过数年的升级演变,甚至几千次提交,和早年刚出现时相比面目全非,逻辑也不再是浅显易见的。“读源码”不包含演进的过程,上来就是别人提炼过、推导过的精髓,更加难以理解。
- “读源码”难以获取成就感,因为成果难以衡量,里程碑难以界定,学到多少东西更是只有本人知道。把这个当某天的内容报告给领导,等于明确表示自己工作量不饱和,很可能招致领导的不满。
源码完全不该读么?自然不是。那么什么时候读呢?当技术精进到一定程度,或者业务诡异到一定程度,我们自然会遇到前人没有遇到过的问题;或者发现文档中语焉不详的地方。这个时候只能通过阅读源码找答案,而且这个时候读源码也是很合理高效的。因为:
- 很可能读源码是唯一途径。
- 带着问题去读,目标集中,效率会很高。已经知道了“Why”了,只关心“How”。
- 解决目标问题的过程中,可能学到很多之前不知道的东西。
相关文章
尬聊会:第六期实录
尬聊会第6期,先介绍了向上管理;然后讲解了 URL 过滤;再接着讲解了自动补全筛选。下一期将在本周日4-22,介绍性能对比测试。
2018-04-192 分钟
尬聊会:第四期实录
尬聊会第二期实录。聊了学习、半路出家、去哪里找工作等问题。
2017-09-202 分钟
看看前端技术的发展动态,我们似乎应该重新规划学习方向
现在切页面变得相对容易,大多数览器的表现都会和预期一致。所以哪怕相关经验差一些,现学也很快。但是开发经验,如果没有积累,想在短时间内快速提升到能够独立应对大多数需求的水准,就比较困难。所以前端应该尽早
2017-04-243 分钟


