16 comments

关于读书

看到师弟蔡白银写的文章, 有所感, 写下几句不成文的心得体会.

大学读经典书, 能缩小自己和发达国家学生的差距. 我们国家的大学和发达国家相比, 差距大家也都能看到. 在理工科上, 或许中国大学唯一能和外国大学在同一起跑线的, 就是图书馆里面躺着的经典英文原版书了. 科学发展到今天, 每个领域都是枝丫茂盛, 都有经典的著作. 作为大学生, 如果没有读过(哪怕看看前言也行呀), 在我看来, 不算合格. 修身第一条, 就是读读经典.

要是上大学的时候只是全是靠课堂而不主动阅读, 这大学也和幼儿园没两样.

好书能帮你打通筋脉, 读了之后立即高屋建瓴, 建立起对一个领域的全盘认识. 我常常觉得, 好书大气磅礴, 就像武林名门正道功夫一样, 大开大阖, 读完以后人的气象都不一样. 读烂书, 或者上用烂教材的课, 会降低你的智商.不相信我这句话的人可以选择 TAoCP 读一下第一小节,再比较一下其他(本校)写数据结构和算法的书.

好的教材好比是心法, 提纲挈领. 先看心法是磨刀不误砍柴功的. 而可惜的是无论是市场还是实际, 砍柴的书都很受欢迎, 磨刀的书没人喜欢看. 很多做技术的都容易做到头, 就是因为没心法, 练不好72绝技的. 就计算机方面而言, 数据结构算法 (Intro. to Algorithm/TAoCP)看一本, 编程工具(TIJ/TIC++/SICP+Python)看一本, 离散数学(Concrete M/Discrete M)看一本, 足以秒杀大多数公司面试题了.

要善于利用中英对照, 好坏对照的比武看书法. 我并非崇洋媚外, 国内很多大学的教材, 存在很强的门户之见, 其教材主要内容囿于本校擅长的某些领域, 往往不能使人窥得一个体系的全貌. 因此最好的办法是找本英文的, 找本中文的. 英文书往往文字冗长, 实例繁多; 中文书往往讲空泛理论, 几乎无例子, 两者结合, 能够取长补短. 更有效的是想像两个作者在吵架, 并且将自己置于审稿人的地位, 跳出书本, 评点某处某书写得如何, 如果自己写该如何写等等. 如此一比武, 好书烂书高下立判, 而且能从一个更高的层次审视一本书. 一招一式学高手, 未必能成高手; 常看高手过招, 华山论剑, 你很快会变成高手.

书是要往厚处读的. 一本书, 哪怕只读一章, 也要保证从头读到尾. 如果没这个自信, 还是不要读了. 弱水三千, 只取一瓢, 与其说是走捷径, 不如说是纵容自己的浮躁和浅尝辄止. 这样读书, 基础不牢. 好比光看别人拳法打的好看, 自己不下功夫从头到尾把拳法演练几遍, 很快就会忘掉的. 我认识不少人, 书往往看得很多, 但考试面试或者实际运用的时候, 和没读过没两样. 结果如此, 那当年读了干啥?

–推而广之, 书上的程序和习题是要一条一条做的. 我认识一个高中朋友, 他说物理不好. 我给他出了个主意: 只做一本书上的习题, 而且一丝不苟, 从格式到步骤都要完美, 假想自己是写本能出版的习题解. 他尝试了几个星期, 单科成绩已经是年级第一了. 往往看上去最笨的方法, 实际上是最聪明的. 就我个人而言, 高年级小学生一笔一划写完初中平面几何只要一年半, 老师讲要三年; 完全不懂OO的大一新生一键一键敲完 Thinking in Java 上的所有程序只要半学期, 就能独步于10万行代码的中型项目. 而很多人学 4 年 Java 也不知道架构到底是什么样子的.

如果我没记错的话, 侯捷在 STL 源码剖析的序言中, 引用了老子的一句话: “天下大事,必作于细”. 我觉得, 能将这句心法读到, 又有什么不能剖析的源码呢. 纵使若干年后, STL 丢在历史某处, 你仍然能够在新的技术中”游刃有余”.

补充: 有很多辅助手段能帮人选书. 我的选法是: 互联网. 判断一本书(我特指数学或计算机方面的教材)是不是好书太简单了, 看看这本书作者如何, 这本书反馈如何. 如果有网页的话, 看看 Google 给这本书的 PageRank 是多少. 尽量选择国外一流大学的教材. 一般情况下, 国内出版的教材, 如果不是清华北大中科院或者这方面的杰出专家出的, 可直接略过. 少买几本庸书, 是为抵制全球变暖和保护森林做贡献.

当然, 说的这些, 都是一己之见. 我知道大家都很”快餐阅读”. 但愿看这篇文章的, 和能认真做到的比例, 能到10:1, 也就行了.

  • pt

    不错的文章
    博主能否多推荐些计算机方面的图书?

  • http://logpie.googlepages.com logpie

    good!

  • John

    四书五经很不错的

  • http://deleted Miss Wang

    刚刚看了前辈的简介,to speak frankly, 前辈的确不帅
    但是,像前辈这样有才气的人,帅这个特征是毫无实际意义的,您已经不需要“帅”来做装饰了。

    老兄的文章令人深受启发,很有可读性

    —–
    哈, 这条留言我喜欢 :)

  • welovecs

    好文。:)

    感觉国内让人打瞌睡的书越来越多了。

    最近对着自己的书架发呆了几次,发现几乎都是国外的。

    感觉一本书的好与差,对我个人而言,就是:这本书,在我阅读它时究竟能给我多少”A-ha’。

  • welovecs

    不好意思,上文中“暑假”应为“书架”。 – -


    帮你更正过来了

  • helen

    的确写的挺好!
    好久就开始关注你的文章,其实,帅不帅不重要啊,在感情里面,如果两个人相互喜欢,看到的不是他或她的外表,是一份感觉,认定了一种感觉。

  • http://blog.solrex.cn Solrex Yang

    pt
    你可以到豆瓣去找~~~

  • YzY

    赞一个~~~
    我从大二起就开始关注楼主的blog啦,一直将楼主捧为学习的榜样!很高兴看到楼主将自己的经验分享出来,期待楼主更多类似的文章:-)

  • YzY

    楼主不仅计算机学得好,古文功底也很深厚,期待楼主分享下学习古文的经历:)

  • YzY

    sorry,上面的“楼主”应该改为“博主”更为贴切些,实在冒昧!

  • cheng

    好文,收了。
    事实上现在国内很多书仅仅是外文书的“翻译”而已。

  • http://iwinux.blogbus.com iwinux

    很多时候我选书是这样的标准: 如果是国内作者写的书而作者我又不认识的话, 直接跳过.

  • http://hi.baidu.com/cyc4s HermitBaby

    很受用。。
    这篇文章和那篇读品的选择都打印出来了,句句研读,哈哈。
    关于选书,豆瓣很不错。不过不知道博主的豆瓣账号为什么失效了。

  • http://ruiliu.info/2011/10/28/apue-reading-1/ APUE 阅读笔记 | 10 years of endeavor

    [...] 首先就是要把一本技术书籍完全的消化掉,逐字逐句的耐心读是必要的。 在读APUE的过程中,遇到最大的困难不是来自于书中的知识内容,而是我自己无时无刻的浮躁。在推特还有Google Reader上面时常能够看到的行业巨头的招聘信息还有高额的薪水,每次看到这样的帖子,我总是会合上书,然后幻想着自己突然变成技术达人,秒杀面试进入 心仪公司,受到无数人羡慕的场景。说出来有点难堪,可是这确确实实是我经常会不由自主做的事情。而当我进入这个状态以后,就觉着手头放着的这本书,脑子里 面刚刚还在思考的技术细节,简直是太没有诱惑力了,我恨不得把书一下子从封面翻到封底,然后把所有的内容吸到脑子里面,赶快去投简历面试。这样亢奋的状态 往往会持续几个小时到半天,而这段时间的自己是绝对没有耐心坐下来看书的。而是会在几天之后突然意识到不管大公司再如何扩招,自己的技术跟它们的要求还是 差的十万八千里,这个时候自己才会狠狠的悔恨一番,然后默默地把这几天落下的东西慢慢捡回来。这个循环可以说时间虽然短,但是如果我自己经常陷入这样的循 环,相比于技术本身对于结果的期盼会越来越占上风,这样会导致这种恶性循环的周期越来越短。当然最后的结果多半是,我把这本书直接扔掉了,转而去看另外一 本看似能给我成就感的书了。在我接触计算机编程的这几年里面,这样的事情发生的实在是太多了,而被我以这样的理由扔掉的书,也实在数不胜数。现在回头想 想,浮躁,还是这一切的根源。大家经常听到的一个理论是,当你投入的做一件事情并不是为了钱的时候,往往结果你会得到更多的回报。而自己,恰恰是走了另外 一个极端吧。 [...]

  • http://ruiliu.info/2011/10/31/the-art-of-computer-programming-note-1/ 10 years of endeavor » The Art of Computer Programming 笔记

    [...] 花了好几天的时间,才勉强看完TAoCP的6.2.4 Multiway Trees一小节。本来是为了看一下Knuth爷爷是如何介绍B树的,结果我发现书里面基本每句话都需要我仔细读,每当我看到一个不太直观的结论,就马上停下来开始在纸上算。就这样,有两天基本上在公交车上面都是在反复的思考书中并不起眼的一句话。想起来,也是蛮有乐趣的。之所以这么做,是读了徐宥的这篇文章有所共鸣。 [...]