干码农这行,读书是必不可少的。爱读书的人,经常会把"书一定要买来看的",或者"书非借不能读"之类的话挂在嘴边,这些话自然有一定的道理,但我在这里想稍微做点补充,这也是我本人在买书、读书方面的一些心得。
计算机的书,大体分两种,一种是技巧性的书籍,一种是理论性的书籍,在针对这两类书作出选择时,我的态度还是有一定的区别的。
从选择作者的角度来看,中国台湾的一些作家,和大陆的一些年轻作家在技巧性方面还是有一定的水平的,我指的是写作水平,比如eclipse方面的一些国内书籍还是相当有作用的,当然这些人大部分处于写Blog成书的阶段,离占据主流图书市场还需要时间,但我们至少看到了希望。至于理论性的书籍,由于中文描述技术相对于英文有天然的不足,二义性很多,逻辑描述方面很难保持一定的连贯性。再加上目前我们都有或多或少的浮躁情绪,使得国外图书占据了垄断地位,这恐怕还要耗掉一代人,所以我的看法是,技巧性的东西,你除了买书之外,还可以关注一些相关的Blog(比如博客堂,javaeye等),并且也可以关注他们出的一些书籍。理论性的书(比如设计模式,算法等方面),那确实该买来反复读,而且尽可能买老外的书。
从选择内容的角度来看,技巧性的书大部分是速查性的,而理论性的书大部分属于要忘记文字化入血液的,我从来不认为记忆力是个问题(除非你连什么东西该在哪儿也记不住),因此前者,利用计算机的查找本事,比你翻箱倒柜的找书要高效得多。后者,你应该在远离电脑的时候,静下来好好的思考着读,这个时候纸张的作用才是不可替代的。
当然,书买来是要读得,而对于读书,我也有三个小小的建议:
第一. 读经而已,不足以知经:
这年头,到处都有号称自己读了某某大家之作的人,有些人还读了3th去买4th,言必子曰某某,以得其乐,其实光读一本,光读一家,你理解出来的大部分不是对的东西,例如,当你读了effective系列,可能就会觉得lippman的书中细节问题一堆一堆的(虽然这些都基本无伤大雅),因此我们就开始注重细节微调和宏观设计的修炼。然而,在到真正做了项目之后,你可能又会无限感叹effective系列给你描述的是一个人人都是贵族的优雅社会,而自己只是一个生活在成千上万垃圾代码的奴隶。你又不得不会回头去看看那些垃圾代码的处理惯例,无限的悲哀就此来了。因此读书是一个记忆、理解、悟道、反省、再悟道的循环过程,好书经典无非是其中一个环节而已。
第二. 不可以书博我,以至于释卷而茫然:
在计算机行业,每天要学的东西很多,很多时候等不到好书到手你就得上手,文档、网页、论坛、论文、烂书虽说鱼龙混杂,要能分辨精华之物,才能说得上能读能用,做到以我博书,处处得益。
第三. 读书更多在谋心,切不可朝闻道夕称王:
虽然你在经典上学的东西很多一时都没有用武之地(这点不止计算机,佛经、圣经、论语也如此),但不等于他们没有读的价值,你仍然可以提高自己的专业素养、提高自己工作模块的效率。更可能有朝一日等你在其位了即可谋其政,总比你去看什么抗日神剧,玩什么魔兽要好得多。