那就推荐一本消遣书吧

来源:互联网 发布:医疗竞价数据分析 编辑:程序博客网 时间:2024/04/28 23:44
上学最宝贵的收获之一是结交学识过人的朋友。自己闷头学得山穷水尽时,高手轻轻一句点拨,眼前便峰回路转,柳暗花明。每次上完课,有幸和朋友小聚,请教弱智问题,听朋友妙语解惑,实在是难得的人生乐事。读The Little Schemer,也有同样的感受。读The Little Schemer的过程,就是被良师引导的过程。
 
用作者的话说,The Little Schemer是一本教人理解计算本质的书。编程语言Scheme不过是传道的载体。书的体例独特。每页分成两列。每列寥寥几行代码,数段散句。左边一列问个问题。右边一列给出答案。作者就用这种轻松对话的形式讲解递归和函数编程。例如下面的截图。
 
 
这本书最吸引我的地方是它讲解的方式:书里仿佛没有什么难点,也没有长篇讨论。每章都是逐层推进的问题和相应的解答。比如翻看书第一页,就是“atom是不是atom?”。我差点以为买了本缺页的书,下意识的向前翻了一下,看是不是漏掉了开头。J 在这些精心设计的例子启发下,我们自然地总结出编程的概念和方法。一切水到渠成。和朋友讨论做报告的技巧时,我们的口头禅是“Don't tell. Show.”这本书是绝佳范例。这其实是非常高效的训练,对初学者尤其有用。从现象里归纳出共性、由实践中抽象出模式,在表象下看到本质是解决问题的重要技巧。编程语言也好,公式也好,不过是表达我们思路的手段。何况很多强有力的编程技巧也是前人从无数代码里提炼而来。还有什么比自己体验提炼过程更让人印象深刻的学习手段呢?书不厚。180来页。10章。每章读时都觉得简单,甚至有点琐碎。但书的进度其实毫不含糊。第8章已经引导我们领悟Continuation Passing Style的奥秘。第九章解释了Y-组合子的前世今生,而第十章干脆实现了一个Scheme的解释器。单是第8章就值回书价(本来也不贵。如果连续集The Seasoned Schemer和The Reasoned Schemer一起买,还有折扣)。想象一下,一个对Scheme编程甚至对编程一无所知的新手读完这章后,突然发现CPS函数上挂着的那一大坨累赘事物(黑话所谓的continuation)变得清晰晓畅,已经融入自己的灵魂,是何等爽快的体验。
 
 
我对书唯一不满的地方是它全用各种食物做数据。鱼子酱,沙门鱼,曲奇什么的满篇都是。个人觉得和家谱树一样无趣。对了,作者没有写任何可以激励读者的内容,比如为什么CPS有用。这也许会打击一部分老大的积极性。
 
喜欢The Little Schemer的老大们,多半也会喜欢续集The Seasoned Schemer。用序言的话说,The Little Schemer展示了列表是Lisp编程的心脏,而The Seasoned Schemer展示了函数是Lisp编程的灵魂。
 
原创粉丝点击