这里只贴一些“个人建议”了,文章全篇在我的博客上,http://www.cnblogs.com/JeffreyZhao/archive/2009/07/15/recommended-reading-2-sicp.html,很多富文本内容贴不上来。
最后,还是补充一些老赵自己的建议吧3。
首先,SICP是一本教科书,里面的示例和习题都是经过精心设计的,几乎可以说都是有针对性地培养各种能力。换句话说,如果您太“功利”地阅读这本书,可能会让您觉得失望。您没法从中学到如何开发一个网站,开发一个记事本,如何绘图,它完全是在锻炼程序员的基本能力,而不是“技术”。有时候,您可以把它当作一本数学书看,里面的题目也经常和数学有关——别担心,似乎高中数学水平应该足够了吧。另外,老赵建议您在看这本书时,最好可以挑一个风和日丽天气,准备一台笔记本去附近大学的图书馆里找个座位,像一个学生那样参加自习,慢慢地看耐心的看——没有笔记本?那也没关系,一个拔网线的台式机也可以起到差不多的效果。老赵也欢迎大家和我一起探讨其中的题目——虽然有相当部分内容我也不会。:P
看一本书,不一定要从头到底全部看完。SICP全书共分五章,我建议可以认真阅读前三章——没时间的话就精读前两章“过程抽象”与“数据抽象”。如果您有时间的话,也可以把第四章看完。至于第五章,有人说是SICP的精华所在,但是我认为啃下第五章的投入产出比相对前几章来说就相对较低了(第四和第五章使用Lisp实现一个解释器及一个简单的CPU逻辑实现,很难,不过这的确是Lisp最“美”最能体现出完备性的地方)。如果,我是说如果,您在阅读前两章时较为困难,也不妨先看一下《Simply Scheme: Introducing Computer Science》,您可以把它看作是SICP的基础4。值得一提的是,SICP和SSICS都在互联网上公开——不得不敬佩他们对学术推广的态度。
您在学习SICP这本书时,也可以选择配合相关的公开视频。您有两个选择,一是Berkeley的上课视频,二是MIT的公开课件。前者的讲述较为轻松有趣,相对容易理解一些,老赵看了大半;而后者为SICP原书作者Hal Abelson 和Gerald Jay Sussman为Hewlett-Packard公司员工培训时的录像,我感觉更为体系、理论、也相对较为难懂——当然,这只是我看了Lecture 1的两段录像后的感觉。此外,北大也开设了《程序设计技术和方法》课程,使用SICP作为教材,相信也是不错的参考。
最后便是开发环境了。SICP使用Lisp语言,而在实验时,您不妨使用Scheme,它是Lisp语言的两种常见方言之一(还有一种是Common Lisp)。您可以使用GNU/MIT Scheme作为编译/解释器,不过老赵使用的是IronScheme,它基于DLR,也是.NET平台下的另一个编程语言实现。不过话说回来,其实老赵在做SICP的习题时使用最多的还是F#,它是由微软研究院发明的又一种.NET语言,同时拥有强大的函数式编程和面向对象能力。此外,我现在对于Haskell也有相当兴趣,这个老牌的纯函数式编程语言也慢慢地回到人们视线中来。我使用的参考书是《Real World Haskell》,它获得了Jolt大奖最佳技术书籍,希望能从中获取更多灵感。最关键的是,这本书也在互联网上完全公开——这是一种什么样的精神!
本文由作者笔名:小小评论家 于 2023-03-26 16:34:56发表在本站,文章来源于网络,内容仅供娱乐参考,不能盲信。
本文链接: http://www.w2mh.com/show/62164.html