程序员究竟还需要读书么?
近来看了2篇和读书有关的文章,一篇提到Joel讲现在程序员不太读书了,主要靠在网上找各种参考资料;一篇则是马总说的:成功与情商有关 与读书多少关系不大。一定程度上这两个观点都有点道理,可以靠StackOverflow.com和搜索引擎找到各种问题的答案和例子,刘邦项羽不太读书一样闹革命,还成功了,但如果得出一个“读书无用”的结论来就错了。
人类获取知识的手段无非就两个要么靠实践直接获取,要么间接获取,而间接获取中最关键的手段则是读书。“实践无疑是最有效的提升自己的手段,但只依赖于实践无疑也是愚蠢的。”忘记那个大侠说的这句话了,但这不看着很有道理么?
如果把人类有历史以来的书按其价值排成金字塔,如果第一层就一本,那这本应该空着,非要有,也只能是“宇宙+社会历史”自身,这点争议应该不大,这就是为什么实践最关键的原因。第二层的可能是宗教哲学(各种带“经”的书),社会人文历史的书就要依次排在下面。当一个人读了这些书,并读懂的时候,这个人就和伟大的精神同化,也许能看穿历史长河,位置越高越应该读读,不读这些书,精神的厚重就压不住成绩带来的荣光,人就容易发狂,发狂就容易挂。希特勒当年兵锋那么盛,一发狂四面树敌,该挂还是挂。老实讲越是大佬越应该读读,所谓高处不胜寒,真心期望IT界的大佬别折戟沉沙啥的。
说跑题了,接下来说程序员。
在金字塔上位置越高的书,越必须体现为书的形式,因为它往往有深刻的思辨和严密的体系结构。但这对解决具体那个Bug,那个API怎么用,那个框架怎么用,应该用怎么样的架构解决眼前的问题等等半毛钱作用也没有。解决这些问题最好的方法就是用搜索引擎,找到例子进行参考。所以会有Joel提到的现象:程序员不太读书了。这事情中外皆一,属于生产力决定生产关系的范畴。
我也确实认为,讲技法的书越来越没有存在价值,这类书和StackOverFlow比一点竞争优势也没有。感觉上各种面向程序员的“傻瓜”书,应该已经消失殆尽了。但有思想,有严密体系结构的书并不能被StackOverFlow所取代。想想《代码大全》,这种书对软件进行了全景式的剖析,读过之后,还要去想想各章节间的关联,因此并不适合把每个小节的内容变成一个问题,接下来在问答网站上了解这本书里陈述的知识。因此,不管用什么形式(电子的或纸版的),这都是书,都应该读。而这类书,是有思想的人纵观无数实践,总结出来的,你不去看看,不是疯了么?这种疯狂的形象描述是,我做坐于井底,我也知道自己坐于井底,但我就喜欢看我头顶这片天。
这样一来,“还需要读书么?”就不是个问题,显然是需要读书的。而更大的问题在于究竟应该读那本书上。
庄子在很久以前就说“道术将为天下裂”,但估计他要看到裂成现在这状况也会很惊讶的。随着人们获取知识变得越来越容易,人们输出知识也变得越来越容易,所以写书变容易了,作为结果一下子五花八门的书都呈现在你面前,于是选择成为最大的难题。
把实践的时间压缩太厉害,专门读书倒是能读很多书,但这样一来就成书呆子了。即使以平均每天2小时算,一个人一年也就有730个小时来读书,即使以40小时读一本书论,也就能读不到20本书。实际上大部分人应该是没有这个时间的?认真算起来正儿八经的,比较硬的书感觉上一年也就能读个4~5本。要想有效利用这点时间,选择方法比较关键。
选择的关键有两个,一个是你要有个知识的分类,有个大致的全景视图,知道自己缺啥,而后缺啥补啥。偏技法的不看就不看了。这里有份参考。一个是靠口碑+试读。口碑是指基于个人的真的口碑,不要被宣传所忽悠。口碑还行的书,大致瞄下,应该可以知道值不值得精读。