weixiaoxing

 

关于《计算机程序的构造和解释》,这本书讲什么,别人的评价,我不多说。点开链接去豆瓣读书看一下就了解。

 

英文原版:《Structure and Interpretation of Computer Programs》 简称SICP

 

我只是围绕这本书,再多说一些与它有关的八卦和资料。

 

《How to Design Programs》入门比SICP低一些。而且会把Scheme的基本语法讲的更清楚。SICP和HtDP用的都是Scheme,Lisp的一种。

 

打开How to Design Programs的主页,这本书是免费开放的,而且已经有第二版了。

 

我建议阅读第二版本,第二版对第一版做了较大的修订。

最主要的是,教学语言从Scheme换成Racket。编程环境也从原来的DrScheme换成了现在的DrRacket。Racket能很好支持我们现在主流的操作系统。

 

Racket其实就是从Scheme而来,兼容Scheme的语法。

 

也就是说,如果你想学SICP的话,并且自己写写Lisp程序过把瘾。你需要去Racket主页下载我们需要的编程环境,安装后运行DrRacket。

 

如果你一开始对Lisp的语法不熟悉,你就可以先读读《How to Design Programs Second Edition》自己写几行Lisp程序过过瘾。

 

如果你觉得Lisp很cool,你也不想卷入不休止的编程语言的战争,那么你可以看看《黑客与画家》

 

在“拒绝平庸”和“书呆子的复仇”两章中,作者大加赞赏Lisp,并且道出了自己用Lisp开发商业软件的经历,

 

作者认为编程语言是有高低之分的,Lisp可以让你成为更好的程序员,如果这些引起了你的兴趣,那么你是该去读一读。

 

还有一本《软件随想录》,在"学校只教Java的危险性"一文中,作者认为Java太简单,不足以分辨出优秀的程序员。而且作者极力推荐了SICP这门课,因为这门课很难,

 

作者认为只有学过这些困难的课程,才能证明你有出色的程序设计能力。同样,作者认为面向对象程序设计太简单,不足以吓跑那些刚刚踏入软件开发的年轻人。而函数式编程(Functional Programing)可以难倒这些年轻人。

 

《黑客与画家》和《软件随想录》的作者都是出色的程序员,他们的观点或许可以给你学下去这门课的动力。

 

如果你想知道Lisp的历史,那么《奇思妙想》是一个不错的参考,它的第二章就讲了Lisp的发明人的约翰·麦卡锡的历史和他如何发明Lisp。

 

最后还有,这里是Berkeley的SICP课程是用Python3教的,也可以参考学习。你也可以先读读阮一峰的《函数式编程初探》

 

你会看到其实程序设计有一个更广阔的世界,而不是只在一个面向对象的世界里。

 

附录:

1.我怎么学习SICP的。刚开始我是用的Racket环境去写代码。后来去看伯克利的SICP课程,用Python。后来就用Python写书上的代码。感觉也很不错。还有,我觉得也可以试试Scala。Scala的函数式编程特性,也足以过瘾。

这里有一份中文版总结的SICP习题集:http://sicp.readthedocs.org/en/latest/

 

分类:

技术点:

相关文章:

  • 2021-11-20
  • 2022-12-23
  • 2022-12-23
  • 2021-09-22
  • 2021-09-17
  • 2022-01-31
  • 2022-03-02
  • 2022-03-09
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-01-13
  • 2021-08-30
  • 2022-12-23
  • 2022-02-06
  • 2022-02-14
相关资源
相似解决方案