这一期在清华科技园D座火炬大厦28层的网易北京公司举行,主题是《前端工程师的知识收集与管理》。本次交流会没有投影,没有人讲PPT,三十来人集中在办公室里面自由讨论,气氛很活跃,主持人裕波对讨论进度把握非常好。

来自百度有啊团队的月影同学第一个发言,滔滔不绝讲了十几分钟,话题从前端开发工程师个人的知识管理、分享到团队知识收集发布均有涉及。月影对知识管理方面已经思考了很长时间,在这方面有大量积累,发言连贯,思路清晰,令人佩服。

我在会上也有发言,但是没有准备,即兴讲得不好,这里再用文字小结一下。

对于知识收集和管理,首先得明确什么样的知识值得收集和管理?

只有经过自己思考沉淀的知识才值得收集和记录。比如会上大部分同学都提到的,在开发过程中遇到的陷阱(也就是所谓的坑),如果没有多少人遇到过,或者自己有新的理解,这样就应该记录下来,以免自己或者别人再次碰到,重复浪费大量的时间精力。又比如看过好的文章和书籍,有自己的感悟和总结,这些应该收集起来,即使你只是写给自己看。没有仔细看过的链接,没有心得收获的文章,这些不需要任何记录,即使将来找不到,也没有关系,因为它没有价值。

我知识收集的方法是三多:多读好书,多看好代码,多写代码。

多读好书,要看《javascript权威指南》,《javascript高级程序设计》,《css权威指南》等等这些经典,另外douglas crockford和john resig个人网站上的文章都不要错过; 多看好代码,YUI和jQuery的代码就是最好的范例,看的越多,收获越多; 多写代码,代码写百遍,其义自现。

这些是知识收集的基础和主干,是最重要的部分。搜索引擎和订阅RSS是知识收集中的枝叶,Greader上面的好文章很多,但是自己感兴趣并去消化的好文难得一遇,采集的效率偏低。收藏网址和文章没有任何必要,如果觉得它不错,把它的要点记录下来,大部分收集的文章都不会再次阅读,收集和整理的过程又耗尽心力。

我在知识收集方面犯过最大的错误就是收集保存了大量的文章,而从来不去看第二遍,购买和储藏了一整个书柜的书籍,却没时间和心思认真阅读过多少本。这是我踩过最大的坑,此生绝对不会再犯第二次。

在知识管理方面,blog和wiki都是不错的方式,blog比较适合记录完整的思考,wiki适合零散的记录。团队知识的收集发布,wiki几乎是标配,很多公司都在用,这是非常好的现象。除这两者以外,我还经常使用google note和纸制的笔记本写笔记和整理零散的思路,而twitter则不太适合作知识管理,当然如果喜欢,你也可以这么做。最近看李笑来老师的《把时间当作朋友》,以后可能会增加日记的方式,看自己能不能坚持。

另外,会上月影提到浏览器和开发框架(如YUI、jQuery)的css selector实现正好相反,浏览器从后往前匹配,而YUI部分则从前往后匹配,其中涉及getElementsByTagName的思路和算法都很有意思,有空也研究研究。