做为一名程序员,我一直在读书,一直在学习。可现在仔细回想一下,却似乎没有记住的书,大脑一片空白,读的书去了哪里?
越想越觉得可怕,大把大把的时间,N多的书,却跟没读一个样。我不禁要反思这个问题,这也许不是一个人身上的,也可能是好多程序员的通病。造成这种结果的原因,可能在以下几个方面:
1、读的书太泛泛,没有重点。虽然都是围绕着编程方面的书,但看的过多,过滥,甚至造成对同一内容却不同的说法,导致自己在正确的地方上没有加深。比如,我到现在还记得大学时看到不知哪本书,说C++跟C没有什么关系,它只是取名叫C++而已,如果它叫D++语言,那么,你就不会总拿D++和C来作比较了;而读的大部分的书,都是说C++和C是有较强的关系的。
2、读书没有复习。只是读完了,却没有重读。我只是个普通人,脑袋没那么好,读一遍就记住东西了。实际上,读完一本,合上书,基本上没记住什么。加上没有读第二遍、第三遍来加深印象,也就容易造成读了和没读一样的效果。
3、读书没有做笔记。如果读一遍,能把重点的东西,记下来,写下来的话,还是能加深印象的,但我却做的很不好,读完就读完了,往书架上一扔,这当然和没读一个样了。
4、读书没有认真的思考。读的时候,没用脑袋使劲想想,没有真正的理解其思想和内容。而是模棱两可的往下读,想着下次再读,或者过会再回来看看,却没有下次,也没有回过头来再看这段内容。也可以说,在困难面前,在拦路虎面前,我没勇敢的站起来当个武松,而是绕道而行,当了个孙子。
5、读书虎头蛇尾。时常出现这样的情况:正在读《Windows核心编程》,结果工作忙起来,要用到JavaScript,于是开始读《JavaScript高级程序设计》,把前者晾在一边做冷板凳,导致Windows核心编程的已读内容没有消化,再次读起时,还得从头读。这样持续下去,浪费了大段的时间。
6、读书不分重点,全盘接收。这种没有针对性的读书方式,容易造成本来清楚的内容读模糊了,越读越乱,不知所读。
7、读书过程中不及时实践。只是光读书了,并没有把代码敲进电脑,编译运行一下。这样做看似快,实际上没有将知识吸收,只是在浪费时间而已。就像健身所说的一样:光吃不练,等于白吃;光练不吃,等于白练。
也许还有其它的一些错误的读书方式,导致我被读书。时间一天一天过去,书架上的书越堆越多,自身的进步却不明显。痛定思痛,我决定改变恶劣的读书方式,让付出有些回报,让努力不付之东流。所以,我尝试了一下几个读书的原则和方式,效果有了一定的改变。
1、只读经典。这是首要的,选择很重要,其次才是努力。再也不瞎读书了,不会从网上下载一本电子书,或者不知哪个公司东拼西凑的PPT,就使傻读下去。我只读大师的书,读久负盛名的技术书籍:如:《C++ Primer》、《C++编程思想》等。而不去读想《C++程序设计》之类的书了。万变不离其宗,市面上乱七八糟的书,都是从这些经典的书中折射出去的,只是加上了作者的一些话,变个方式说了一下而已。关于程序员应该读的书,在网上有很多。能够把这些书读完,吸收掉大部分内容,就不错了。脑袋里就有东西了,面试别人的时候,不至于问不出什么实质性的问题来了。
2、反复读经典,把书读薄。经典的书,读完再读,温故知新,举一反三。抓住一本好书,使劲读,把自己关注的知识点,真正读懂,读透。这其中要结合实践,不要怕麻烦,打开电脑,输入代码,勇敢的质疑书的内容,把不明白的、似懂非懂的内容,在跟踪代码中变得明朗。
3、多问几个What、Why、How。这本书是关于什么的?它的预期读者是谁,我是否适合读这本书?作者为什么写这本书,它的价值在哪里?作者是如何组织书中的结构的,为什么这样组织结构?章节之间有何联系?作者是怎样表达的?在解释这个问题的时候,作者用了什么比喻?作者为什么推荐这个架构?它的优点在哪里?我怎样将这个技巧应用到实际工作当中?诸如此类的问题,当它频繁的出现在脑海中的时候,我开始学会了思考,也就能更深刻地理解其思想和内容。
4、先看目录,读需要阅读的内容。从整体上把握书的主题内容,一本书不必全部读完,也许有些内容,根本不是你想要的,此时建议不要读,因为即使读了,由于没有应用到实际项目中,很可能会遗忘。那么这段时间,就是被浪费的。此时只需要知道有这么个东西,在用到的时候,再回过头来将它阅读、理解和应用。
5、写读书笔记,并试图讲给别人听。写读书笔记,也是为了把书读薄,把自己有感触的,不易理解的内容,标记下了,做个笔记,写个心得。这看似浪费时间,实际上从长远看,只会节省时间。自己会,并不是真的会。能够把不明白的人讲明白,让他也会了,才是真的会。多尝试跟同事交流,把你理解的讲给大家,多上上论坛,给别人解答问题,讨论问题。这样在他人的质疑中,会出现新的问题,也许真是你所忽略的或者误解的,把这问题搞清楚后,才是真正的理解,真正的会。
以上是我走的一些弯路,以及尝试改进后的心得体会,欢迎批评指正。把题目定为程序员如何读书,感觉话题太大,实在惭愧。本想改为程序员读书的误区和改进,或者一个程序员读书的坏习惯和好习惯,都觉得有些死板,所以索性不改啦。
HavenZhao http://vcsky.net