想看 SCIP, 铁子们有没有推荐的打开姿势? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要回答技术问题时复制粘贴 AI 生成的内容
asanelder
V2EX    程序员

想看 SCIP, 铁子们有没有推荐的打开姿势?

  •  1
     
  •   asanelder 2021-02-02 20:13:02 +08:00 5085 次点击
    这是一个创建于 1713 天前的主题,其中的信息可能已经有所发展或是发生改变。
    终于按耐不住自己的好奇心了, 下定决心, 干它!

    但干它之前, 想问问铁子们, 2021 年了, 这本书有没有正确的打开姿势?

    俺怕自己看偏了, 消磨了兴趣

    另外, 有没有铁子说一下, 为什么要看这本书捏? 看之前和看之后, 有啥不同?
    34 条回复    2021-02-04 09:28:30 +08:00
    Rasphino
        1
    Rasphino  
       2021-02-02 20:18:36 +08:00
    不懂就问,什么是 SCIP ?只听说过 SICP
    dalibaxiaoliba
        2
    dalibaxiaoliba  
       2021-02-02 20:19:14 +08:00
    直接看就好了,还么看就有疑问么...
    IsaacYoung
        3
    IsaacYoung  
       2021-02-02 20:21:49 +08:00
    SICP
    6.S081
    CS143
    misaka19000
        4
    misaka19000  
       2021-02-02 20:26:23 +08:00
    干就完事儿了
    asanelder
        5
    asanelder  
    OP
       2021-02-02 20:47:53 +08:00
    @Rasphino #1 哈哈, 一直拼错
    @dalibaxiaoliba #2 准备就着 mit 的视频看了
    @IsaacYoung #3 看 http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/ 没问题吧
    @misaka19000 #4 奥力给!
    darksword21
        6
    darksword21  
    PRO
       2021-02-02 20:48:58 +08:00
    顺势安利 emacs
    Accessing
        7
    Accessing  
       2021-02-02 20:57:46 +08:00   1

    在没有上下文环境的情况下,不要用缩写
    否则给人的感觉就是这家伙在装
    Accessing
        8
    Accessing  
       2021-02-02 20:58:15 +08:00
    真的装了其实也挺好的
    拼错了可就全毁了
    catsoul
        9
    catsoul  
       2021-02-02 20:59:41 +08:00   1
    据扯,凌晨 1 点 45 分左右,在南墙根儿点一盏烛灯(没有烛灯可用煤油灯代替,电灯不行),人在对角线盘腿坐下,闭幕诵念 108 次“天灭 Vim,用 Emacs 包平安”后,以左手是指轻触舌尖后翻书,修炼方可获得最大功效(逃
    imzhazha
        10
    imzhazha  
       2021-02-02 21:14:28 +08:00 via Android
    我不是计算机专业的,当年接受了知乎上的建议,上手就是这本。有啥正确的打开姿势,看就完事了。
    asanelder
        11
    asanelder  
    OP
       2021-02-02 21:16:44 +08:00
    @Accessing #7
    @Accessing #8 这个缩写应该是学计算机的都知道, 只是俺一直在拼错(逃~~~)
    @darksword21 #6
    @catsoul #9 这个为啥能和 emacs 产生关系呢? 二位铁子?
    gricn
        12
    gricn  
       2021-02-02 21:21:27 +08:00
    借着在这问一下,直接看书和配合 MIT or Stanford 的视频比,有哪些差别?
    gricn
        13
    gricn  
       2021-02-02 21:22:11 +08:00
    我的个人感受目前只有一个,push 自己的学习进度
    KousukeSakurako
        14
    KousukeSakurako  
       2021-02-02 21:23:15 +08:00   2
    http://composingprograms.com/
    我看的这个, 虽然后来又把原版书也读了一遍
    墙裂推荐, 没什么好说的
    dc25b
        15
    dc25b  
       2021-02-02 21:40:48 +08:00
    我是有点懒。。把伯克利的 CS61a 做了一遍,所有 lab 加 project,算是浅尝辄止吧。
    gowk
        16
    gowk  
       2021-02-02 21:56:19 +08:00
    asanelder
        17
    asanelder  
    OP
       2021-02-02 21:59:05 +08:00
    @qidada4880 #14
    @gowk #16 感谢铁子给的资源, 看了一下, 好东西
    546L5LiK6ZOt
        18
    546L5LiK6ZOt  
       2021-02-02 22:41:45 +08:00
    我就是题主说的消磨了兴趣的人,已经看到了第 4 章。
    我觉得如果作为编程入门,SICP 是一本很好的书。我看的时候,一直在后悔入门学的还是谭浩强的 C 语言设计。
    但是编程久了,SICP 里面讲的一些理念自然早已理解,我看的时候感觉有点无聊,最近刚打算放弃读下去。
    oneforallsoft
        19
    oneforallsoft  
       2021-02-02 22:47:09 +08:00 via Android
    像 mit 一样 所有该系本科生入学前都应该看完
    ikw
        20
    ikw  
       2021-02-02 22:47:46 +08:00 via iPhone
    emacs 是因为 lisp
    levelworm
        21
    levelworm  
       2021-02-03 01:12:05 +08:00 via Android
    我觉得别纠结做完练习,练习里头有一些算法的东西,还有一些比如什么电子工程的玩意。我觉得可以找名校课程跟着他们的作业和实验就好了。
    levelworm
        22
    levelworm  
       2021-02-03 05:25:15 +08:00 via Android
    话说大家有没有兴趣搞个 discord 一块看?最好是跟 CS61A 而不是看书,因为习题实在太多了。周末可以视频或者音频聚一次,大家总结一下经验和问题,平时就文字讨论,如何?
    1490213
        23
    1490213  
       2021-02-03 07:32:50 +08:00 via Android
    直接看就行了,能有啥问题?只是后面几章需要多花点时间琢磨一下而已。
    xpresslink
        24
    xpresslink  
       2021-02-03 10:04:48 +08:00   1
    楼主是要干以前 scheme 版还是现在的 python 版?

    scheme 版, 百度 《计算机程序的构造和解释( SICP 中文第 2 版)
    https://download.csdn.net/download/a19980115/10289121
    https://github.com/huyubing/books-pdf/find/master

    python 版
    https://wizardforcel.gitbooks.io/sicp-py/content/
    namelosw
        25
    namelosw  
       2021-02-03 12:13:55 +08:00   7
    除了第五章没看完其他都看得差不多了. 一些打开方式:

    * 快速扫一遍, 确认真的想读. 很多人读过了大呼上当, 其实前半本书很多东西都跟日常工作对应.

    * 看完了就忘是最没意义的, 尝试避免这点, 不然还不如不看.

    * 从快到慢多看两遍效果比较好. 不然上来精读总也看不到后边, 前面其实都不重要.

    * 找个时间心气高的时候一口气看一两章, 然后接下来的几天里努力把第三章啃完

    * 看二三章之后如果看不下去了, 可以回顾一下, 拿一些现代的工具比较一下, 思考一下优劣. 比如里面的 data directed 和 Java 的扩展机制比有什么优劣. 再比如第三章既介绍了 map 和 flatMap, 又介绍了 stream, 这两个能不能合并起来呢? 其实合并起来就是 Reactive extension.

    * 第三章的结束是一个重点: OO 和 FP 思想的区别. 可以找一下原教旨的 OO 语言比如 Smalltalk 玩一玩, 感受一下和 Java 有什么不一样的. 然后再找个现代函数式语言试试, 比如 Elixir(易)或者 Haskell(难).

    * 看完要做题, 但是卡住了直接跳到下一道, 基本上做上一半或者三分之一就代表你大概理解了, 赶紧趁热乎看后续章节, 别纠结. 某些题一看就很花时间就跳过, 或者上网看一下思路.

    * 第四章第五章基本就不是第一轮看的. 大部分人都会看两三章就放下了, 然后过几个月就全还回给书了. 所以二刷的时候可以快速温习一下前三章.

    * 第四章看完可以试一下 Prolog/Datalog, 比如 Datomic 数据库.

    * 四五章看到后面觉得不着地可以再去看 crafting interpreters 看, 前半本跟第四章对应, 后半本跟第五章的一部分对应.

    * 学不学 Emacs 都行, 不学 Emacs 就用 Racket, 里面有 SICP 的 language pack. 但是如果看不下去书的时候又没啥好做的可以折腾一下 Emacs, 然后折腾烦了再看书. 切忌把 Emacs 当前置条件, 同时学两个东西很容易互相卡住.

    ---

    大概列一下提纲, 感兴趣的同学可以大概扫一眼是不是真的感兴趣:

    * 五章五个主题, 这五个主题描述的是和编程语言相关的主要话题, 一个编程语言的重点是它如何处理原语, 组合, 抽象.

    * SICP 的特点是扔掉现实世界, 在一个极小的 LISP 世界里从 0 开始构建所有关于计算机的基础知识.

    * 前两章讲介绍了 LISP 原语 /组合 /抽象, 第一章是函数抽象, 第二张是数据抽象(最终引向多态)

    * 前三章和规模化软件开发相关, 也就是日常我们说怎么写可维护可扩展的软件. 第三章说的是引入状态之后编程会变得复杂, 就有了函数式和面向对象两种互相矛盾的思想. 面向对象是把状态拆散, 函数式风格是不分状态而靠函数组合模块化(横切纵切), 他们各有合适的场景, 比如量子物理模拟用面向对象就没有意义, 书里的逻辑电路模拟用函数式风格就特别难写.

    * 第四章先讲了怎么用 LISP 实现 LISP 解释器, 这样对 LISP 的实现就有了一半的理解. 后面套用 LISP 解释器的套路, 可以把 LISP 改造成风格不同的 LISP, 也可以改造成其他语言, 可以解决风格迥然不同的实际问题(既然没有最好的语言, 只有最适合的语言, 那么最好的语言就是可以变成最适合语言的语言).

    * 第四章借用了很多 LISP 原语, 所以只有一半理解, 第五章从头实现一个假想的电脑: 固定逻辑计算机, 寄存器, 汇编语言, 重新实现解释器, GC, 最后再重新给这套假想的电脑实现一个到假想汇编的编译器 (最后一个作业是用 C 重写一遍…).
    levelworm
        26
    levelworm  
       2021-02-03 13:07:11 +08:00 via Android
    @namelosw 其实我一直好奇直接看第四章第五章行不行。当然事先把基本语法过一遍。
    no1xsyzy
        27
    no1xsyzy  
       2021-02-03 13:53:58 +08:00   1
    @levelworm 如果有软件工程的底子应当是没问题的,但不确定是否有部分前面直接疏通过去了
    Kirsk
        28
    Kirsk  
       2021-02-03 13:54:03 +08:00 via Android
    这本书我都搞不懂好在什么地方 只看了目录就不想看了 大概太菜
    namelosw
        29
    namelosw  
       2021-02-03 15:05:09 +08:00   1
    @levelworm 我觉得能看懂代码就完全没问题. 这本书前面都在讲上层建筑, 后面讲基础设施, 走的两个方向, 关系的确不大.
    hurryning
        30
    hurryning  
       2021-02-03 15:12:38 +08:00
    干就完了
    asanelder
        31
    asanelder  
    OP
       2021-02-03 15:44:27 +08:00
    @546L5LiK6ZOt #18 俺就是好奇这书到底有没有说的那么神
    @zwpaper #20 soga!
    @levelworm #21 不纠结
    @xpresslink #24 打算就是 scheme 原汁原味
    @namelosw #25 铁子给的建议好啊, 大大减轻了俺的抵触心理. 书就应该这么看! 俺现在越来越期待了

    有一个问题, 现在函数式语言可不可以用 Scala?
    namelosw
        32
    namelosw  
       2021-02-03 18:55:36 +08:00
    @asanelder 这本书很多内容用 Scala 很难写, 因为 Scala 是静态类型语言. 宏也没有 LISP 那么简单好用.
    日常用 Scala 函数式风格肯定是没问题, 毕竟向 Haskell 对齐的语言.
    levelworm
        33
    levelworm  
       2021-02-04 02:21:59 +08:00 via Android
    @namelosw 多谢那我之后试试看过了第一章然后直奔第四章。Python 的那个倒是挺好懂的。我觉得我还是不习惯 scheme 比如说没有循环,所以得重练下第一章某些习题。
    asanelder
        34
    asanelder  
    OP
       2021-02-04 09:28:30 +08:00
    @namelosw #32 ok
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3690 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 04:18 PVG 12:18 LAX 21:18 JFK 00:18
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86