这是最好的!这是最坏的!为什么会产生分歧?(Peter Norvig给《SICP》的书评)

我觉得在喜欢这本书和讨厌这本书的人之间的分歧是很令人着迷的一件事情。对于大多数的书来说,星级评分都是钟形曲线的分布;但这本书一个峰在一星,一个峰在五星,中间的非常少。怎么会这样呢?我想这是因为《SICP》是一本非常个人化的启示录,它只对那些内心是一个计算机科学家(或者想成为一个计算机科学家)的读者起作用。所以我赞同这样的观点:如果你在有了一些经验以后再去读它,这本书更能发挥作用。

打个比方,如果《SICP》是一本关于汽车的书,那么它针对的是那些希望了解汽车是怎么工作,怎么构建的,怎么样设计21世纪省油,安全又可靠的汽车的读者。那些讨厌《SICP》的人则仅仅想知道怎样在高速公路上开车而已,就像大多数人一样。

那些讨厌《SICP》的人觉得,相对于阅读它花费的大量时间,《SICP》并没有提供很多秘诀和技巧。但是如果你像我一样,你并不是要寻找更多的技巧,你是要去寻找一个方法来综合你已经了解的知识,并构建起一个可以终生获取新知的强力框架。而这正是《SICP》对我的作用。我在大概1982年我上大学的时候读的这本书的初版,它改变了我对我专业的思考方式。如果你是一个爱思考的计算机科学家(或者想成为一个),它也会改变你的一生。

一些评论者抱怨说《SICP》不教面向对象设计基础之类的东西。某种意义上说,他们是对的。这本书并不直接告诉你怎么用Java或者C++里展示的面向对象原则的子集,设计并写出一个面向对象程序。相反,这本书会告诉你这些原则是什么,为什么这些原则是值得的,如何从零开始实现这些原则,对于一些特定问题,怎么组合这些原则更合适。这个方法要求你理解可能的边界,设计的过程中,你要做出权衡。编程是一个常常遭遇失败的工艺:很多项目启动了又被抛弃是以为设计者并没有灵活性和经验,也不理解如何想到一个合适的设计和执行。《SICP》给你提供一个会成功的方法,但是这方法是建立在原则和智慧上的,而不是一个清单。如果你不理解这些原则,或者你只想要一本做什么事情的手册,而不是创造力地思考,或者你只想解决一个和你上次遇到的差不多的问题,那这方法不适合你。对有限范围的简单问题,有很多可复制的其它方法,但是没有比《SICP》更好地学习如何解决真正难题的方法了。

Donald Knuth说他写书给“五十个拥有能产生一个程序员的奇怪思维方式的人中的一个”。我觉得《SICP》最惊奇的一点就是只有很少的人讨厌它:如果Knuth说的是对的,那五十个人中只有一个人会给五星,而不是25个。很大的一部分解释是读者是自我选择的,所以不是一个代表性样本。但是我觉得,这其中的一部分原因是因为Sussman和Abelson成功地而伟大地将这种“奇怪的思维方式”传播给那些没有其他办法得到的人们(但并不是所有人)。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值