所以,你要试试SICP
SICP真的很酷!不过你可能不知道该从何下手。
那就让我们开始吧!
等等,这到底是个什么东西?
计算机程序结构和解释(Structure and Interpretation of Computer Programs, 也就是SICP)是由麻省理工(MIT)教授计算机编程的一门课程演变而来的一本好书,
你可能会问,为什么你应该了解SICP?这个问题让Stack Overflow来回答:
一些经典书籍[...]教给你高效的工作习惯以及这个行业的某些需要注意的细节,其他一些[...]则带领你进入软件开发的某个特定领域,这些书都有他们各自的市场。
SICP,尽管如此,和它们完全处在不同的级别,这是一本带给你启发的书,它会唤起你编写优秀程序的激情。此外,它还会教你识别和欣赏什么是优秀,它会将你带入一种渴求了解更多知识的状态。其他书可能会让你成为一个更好的程序员,但这本书会让你成为一个真正的程序员。
如果以上观点还不足以打动你,那么恐怕我也帮不了你了。
书
这本书的全部内容,包括课程以及练习,都可以在MIT网站找到:
http://mitpress.mit.edu/sicp/full-text/book/book.html
当然,要完全领会SICP,你需要做些练习,对此你要有心里准备,这些练习的难度是逐次递增的,有些需要你动点脑筋,还有些概念则会让你头痛欲裂。
SICP使用了Scheme作为教学语言,一种Lisp方言,这让SICP成为一本不错的函数式编程入门介绍,在Erlang,Haskell,Scala,Clojure甚至Arc(如果你读Hacker News的话)流行的今天,这看起来还挺时髦。
好了,但是只做练习而不测试是没有意义的,要做测试,你就需要一个Scheme REPL!
REPL
REPL是Read-Eval-Print-Loop的缩写,举个例子,我们可以将bash看做是一个REPL,你输入一行代码,代码被执行,打印出结果,然后继续。
Scheme有很多不错的REPL,比如Gambit Scheme。如果你用的是Mac,并且装了Homebrew,可以通过brew install gambit-scheme 安装,然后执行scheme-r5rsin,好了,你已经可以开始了!
如果你实在不想在本地倒弄scheme环境,你可以使用这个很不错的在线REPL:
http://sisc-scheme.org/sisc-online.php
(不过注意:在Mac上,你不能使用拷贝和粘贴,同样Firefox 4也不可以,不管mac还是windows都不行,求验证)
听起来还不错,但如果遇到困难该怎么办呢?
答案
别担心,有许多人已经在网上发布了他们的SICP练习的答案,Scheme的社区wiki就是个好地方:
http://community.schemewiki.org/?sicp-solutions
如果你足够信任我,也可以在github看到我的练习答案。
就是这样,你没有任何理由不去试试SICP,没错,就是现在,你这个懒人。
顺祝愉快!
更新: Hacker news上的评论总是那么的有深度。
原文链接,作者: Florent Delannoy
无觅猜您也喜欢: | |||
救援机器人的日本地震救援计划 |
JavaScript版查找树介绍及性能分析 |
网站背后的面孔 |
创业者能得到的最高“赞扬”:你全都搞错了 |
无觅 |