上一次看这本书的时候还是大三,但是因为考研(懒)等原因只寥寥看了两周的时间就放下了。但正是这短短的两周,让我彻底感受到了SICP和Lisp语言的魅力。说实话,最近前端做的非常迷茫,决定回归本源,来认真研读SICP这本好书
本文只是个引子,具体的读书笔记我之后会单独列文章出来的
Why SICP
我现在正处于本科和研究生阶段交接的地步,我最近一直在做的前端最近感觉到了迷茫,因为感觉前端的东西都很浅(不管是我现在用到的东西,还是框架,我总感觉不是很踏实)。虽然研究生阶段师兄们找的工作都是算法岗(也就是研究生阶段做的事)但是我还是想挑战一下算法岗。原本我的计划是先做把前端做到一定的程度(即差不多找工作,另外百度前端学院也自称,完成它几个月的任务就能达到国内一线大公司实习的标准),再去看一下纯粹的编程。现在看来这个计划似乎有点本末倒置的嫌疑,应该是先研读优秀的纯编程方面的知识,有了一定的底气,再去看js前端方面的内容,可能就会有种“一览众山小”的感觉,先这样计划着吧
这本书的很多内容、习题需要仔细揣摩才能领略其精髓,所以看这本书一定不要心急。 其次,在阅读时,请务必关闭手机上一些社交工具,并预留出至少 1 个小时的完整时间来看,否则我不认为你真的能有所收获。
学习是件很苦的事,大多数人都是三分钟热度,所以如果你觉得看这本书让你很烦躁,不妨出去运动一下,或听一会音乐🎵,第二天接着来。坚持下来,不要放弃,更不要失去对探索编程真谛的好奇心。
参考资料
开发环境环境配置
我之前是使用的DrRacket,是一个GUI版本,而且自带简便的调试功能。但这次我觉得它的代码补全和高亮什么的不太好,而且SICP应该不需要太强的调试功能,我决定自己在atom上搞,下载一个language-scheme
的插件,然后在终端下运行对应的scheme程序。我使用的scheme解释器是mit-scheme。
下载完上面的scheme解释器之后,将其加入在系统的全局路径里,在终端里输入scheme就可以直接交互运行了,但这样的话会无法使用方向键
。下载rlwrap就可以了brew install rlwrap
,下载完运行rlwrap scheme
即可。
SICP计划
- 我计划1年内读完,即研一的阶段做完
- 重点放在前3章(假设做不完的话)
- 之前刷的时候,重点放在做题上。这次在做的时候,要开始利用好git了,每个题单独成一个scm文件
- 每一章单独做一个总结,参考,每一个题单独做一份文件,并且push到github上
辅助资料链接
- 北大SICP教学主页
- SICP in javascript
- MIT 教学视频
SICP笔记链接