V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
x97bgt
V2EX  ›  程序员

看完了 CSAPP,打个卡,同时求推荐一些可以修炼内功的计算机书籍

  •  
  •   x97bgt · 2019-03-14 17:25:08 +08:00 · 8961 次点击
    这是一个创建于 2083 天前的主题,其中的信息可能已经有所发展或是发生改变。

    年初到现在,历时 3 个月,终于看完了 CSAPP,很多知识点现在似乎都串起来了,简直太畅快了。

    自己基础太差,决定今年用一整年的业余时间来补基础。

    求大家推荐一些能修炼内功的计算机书籍啊,抱拳感谢了!

    第 1 条附言  ·  2019-03-15 00:00:17 +08:00
    楼主下一本书准备看 OSTEP 了,谢谢各位大佬!
    67 条回复    2019-03-16 16:04:23 +08:00
    neoblackcap
        1
    neoblackcap  
       2019-03-14 17:27:50 +08:00
    《现代操作系统》
    Mistwave
        2
    Mistwave  
       2019-03-14 17:49:19 +08:00 via iPhone   ❤️ 3
    操作系统 推荐 OSTEP 自学的话比楼上的现代操作系统要好
    数据结构 算法第四版
    软件工程 构建之法
    编译原理 编程语言实现模式
    网络 不熟 请楼下推荐

    综合:The Pragmatic Programmer (薄) 和 Code Complete (厚)

    当然还有更多好书 比如 SICP 重构啥的 慢慢来吧
    lostberryzz
        3
    lostberryzz  
       2019-03-14 17:51:15 +08:00   ❤️ 17
    又到了我最喜欢的推荐自己没看过的书的环节了 (doge
    111qqz
        4
    111qqz  
       2019-03-14 17:52:19 +08:00
    推荐 ostep+1,看得非常舒服
    maoyun234
        5
    maoyun234  
       2019-03-14 17:53:46 +08:00
    计算机网络,自顶向下方法
    CSAPP 目前也在看
    cyaki
        6
    cyaki  
       2019-03-14 18:06:04 +08:00   ❤️ 2
    使用对话形式讲解操作系统, 很直白易懂
    [Operating Systems: Three Easy Pieces]( http://pages.cs.wisc.edu/~remzi/OSTEP/)
    x97bgt
        7
    x97bgt  
    OP
       2019-03-14 18:15:25 +08:00 via iPhone
    @Mistwave #2 SCIP 会不会比较适合工作一段时间的人读,似乎是比较偏哲学的?(我还没工作……
    lxy42
        8
    lxy42  
       2019-03-14 18:15:27 +08:00
    我正在慢慢看英文原版,很久之前看过中文版。

    你看得挺快的,有做课后习题吗?
    x97bgt
        9
    x97bgt  
    OP
       2019-03-14 18:17:40 +08:00 via iPhone
    @cyaki #6 这本就是 ls 说的 OSTEP 吧(好像首字母可以对起来
    IsaacYoung
        10
    IsaacYoung  
       2019-03-14 18:18:40 +08:00 via iPhone
    🐮🍺
    x97bgt
        11
    x97bgt  
    OP
       2019-03-14 18:19:24 +08:00 via iPhone
    @lxy42 #8 就看的中文版第 3 版,翻译挺好的,阅读很流畅。课后习题有做。习题比较简单,不会花很多时间。
    jetbillwin
        12
    jetbillwin  
       2019-03-14 18:25:21 +08:00
    计算机系统要素
    CocaColf
        13
    CocaColf  
       2019-03-14 18:30:25 +08:00 via Android
    楼主可以分享一下怎么阅读这本书的,这本书一直没有坚持看完,你三个月看完真是很快了。
    hackerang
        14
    hackerang  
       2019-03-14 18:31:47 +08:00
    @x97bgt SCIP 有没有工作经验都可以,读书的时光是最好打磨技术的时候。
    xFrye
        15
    xFrye  
       2019-03-14 18:32:06 +08:00
    最近在看 sicp,感觉还是挺有意思的
    Mistwave
        16
    Mistwave  
       2019-03-14 18:35:28 +08:00 via iPhone
    @x97bgt
    SICP (不是 SCIP )我是在校的时候读的 适合拿来作为 FP 入门(用 Scheme 讲解)和软件工程入门(控制复杂度)
    也正是用的 Scheme 的原因,导致与实际工程联系不强,所以我没有放在前面推荐。

    OSTEP 就是上面老哥给链接的那本。
    我推荐的都是我看过的书,除了 Code Complete 是正在看,同样非科班出身,可以多多交流。
    nimrc
        17
    nimrc  
       2019-03-14 18:52:03 +08:00
    三个月真的能读的完吗
    x97bgt
        18
    x97bgt  
    OP
       2019-03-14 18:53:57 +08:00 via iPhone
    @CocaColf #13
    我的策略是力求理解,但不求记忆。偶尔遇到搞不懂的,做个标记,在不影响后面阅读的情况下就跳过了。
    此外每阅读完一章,就做一个简短的提纲,写明这一章的每一节讲了什么。

    别对这本书太畏惧。一开始我总是想着“找一个大块的时间(比如整个下午)”后,才开始阅读。
    后来都是早起睡前读一会,慢慢地就能读完。这在精神上还是蛮容易坚持的。
    总结一下,就是 养成每天读一点的习惯+不要拖延。
    x97bgt
        19
    x97bgt  
    OP
       2019-03-14 18:54:40 +08:00 via iPhone
    @nimrc #17 有相当一部分是过年回家,有空余时间读的。
    jdhao
        20
    jdhao  
       2019-03-14 18:54:58 +08:00 via Android
    纯用时多少,三个月只是笼统时间,另外只是看完吗
    x97bgt
        21
    x97bgt  
    OP
       2019-03-14 18:59:01 +08:00 via iPhone
    @jdhao #20 纯用时没计算过,基本都是工作日早起睡前和周末下午阅读的。内容是感觉都理解了,至少读下来挺顺畅的,逻辑都能理清。
    不过我的策略原本就是先完整读一遍,有时间再多翻一翻。好书肯定不能只读一遍。
    letianqiu
        22
    letianqiu  
       2019-03-14 19:20:52 +08:00   ❤️ 1
    操作系统和编译原理都不是看一本书就够了的。除了楼上提到的威大的那本,还有一本 Operating System in Depth 不错。现代操作系统偏理论,实践部分不足。编译原理的话建议先看 MIT 的 Theory of Computation,之后龙书,engineering a compiler 互相参考。龙书因为是多位作者合著的,所以章节安排方面有很大的问题,不太连贯,对编译原理没有概念的话直接看龙书太痛苦了。
    ChristopherWu
        23
    ChristopherWu  
       2019-03-14 20:55:34 +08:00
    楼主加个微信互相打卡?
    mengqi
        24
    mengqi  
       2019-03-14 21:02:00 +08:00   ❤️ 1
    如果平常经常和数据库打交道的话,推荐一本《 Designing Data-Intensive Applications 》
    x97bgt
        25
    x97bgt  
    OP
       2019-03-14 21:36:57 +08:00
    kristpan
        26
    kristpan  
       2019-03-14 21:54:55 +08:00 via Android
    读算法导论吧,我最近刚入坑,公式推得头疼。https://panqiincs.me/2019/03/01/clrs-learning-plan/
    CharmanderS5
        27
    CharmanderS5  
       2019-03-14 21:56:35 +08:00 via Android
    收藏咯,大神们继续
    none
        28
    none  
       2019-03-15 00:26:01 +08:00
    同在看这本书,刚开始不久,不知道楼主看完觉得如何? 看完这个再去读内核源码会不会容易理解很多?
    wangluofansi
        29
    wangluofansi  
       2019-03-15 00:28:25 +08:00
    SICP 讲的是函数式编程和抽象,抽象即隔离变化的部分。我真正理解递归是从这本书开始的。
    另外楼上推荐的 Designing Data-Intensive Applications 适合所有后端入门分布式系统。而且不是简单的入门,我个人感觉这本书对于分布式系统的逻辑是自洽的,有种融会贯通的感觉。
    Mirana
        30
    Mirana  
       2019-03-15 00:29:05 +08:00
    算法导论。。。
    HeliumTang
        31
    HeliumTang  
       2019-03-15 06:20:48 +08:00 via Android
    正在看 The Linux Command Line,比鸟哥更适合新手的 linux 基础书。
    同推荐 SICP
    x97bgt
        32
    x97bgt  
    OP
       2019-03-15 08:00:15 +08:00
    @none 看完后觉得知识不那么零碎了,各个部分能连在一起。
    x97bgt
        33
    x97bgt  
    OP
       2019-03-15 08:04:48 +08:00
    @HeliumTang The Linux Command Line 蛮不错,不过只讲命令行表层的使用,没有涉及原理。但偶尔翻一翻还是不错的。
    catcn
        34
    catcn  
       2019-03-15 10:01:55 +08:00
    程序员的自我修养,准备读第三遍,这次要细致的读,这次要细致的读,这次要细致的读
    x97bgt
        35
    x97bgt  
    OP
       2019-03-15 11:34:24 +08:00 via iPhone
    @catcn #34 ⛽️加油⛽️
    hackpro
        36
    hackpro  
       2019-03-15 12:34:39 +08:00
    @x97bgt @neoblackcap @Mistwave @lostberryzz @111qqz @maoyun234 @cyaki @lxy42 @IsaacYoung @jetbillwin @CocaColf @hackerang @xFrye @nimrc @jdhao @letianqiu @ChristopherWu @mengqi @kristpan @CharmanderS5 @none @wangluofansi @Mirana @HeliumTang @catcn

    贴个我自己维护的书单
    大部分是我自己读过或者 Team 内部 Training 用的教材
    欢迎各位老哥 star
    hackpro
        37
    hackpro  
       2019-03-15 12:35:26 +08:00
    lostberryzz
        38
    lostberryzz  
       2019-03-15 12:37:56 +08:00
    @hackpro 一上来就 PRML 合适吗( doge
    jdhao
        39
    jdhao  
       2019-03-15 12:42:28 +08:00 via Android
    @HeliumTang 有一本「 Unix & Linux 大学教程」,个人感觉写的非常好,基础入门 Linux 使用书籍,也可以作为参考书
    hackpro
        40
    hackpro  
       2019-03-15 12:48:50 +08:00
    @lostberryzz #38 我这书单并没有说按照顺序阅读 没有基础的初学者可以先看 ISLR
    另外你讲话也没必要这么阴阳怪气的 Team 里面有不少 Intern 实习结束的时候这本书都啃完了
    lostberryzz
        41
    lostberryzz  
       2019-03-15 12:49:58 +08:00
    @hackpro 只是吐槽一下。。
    lxy42
        42
    lxy42  
       2019-03-15 12:54:09 +08:00 via Android   ❤️ 1
    CSAPP 正在看第二遍(英文版)。

    第一次是在大学的时候看的中文版,当时看的比较快,一些细节没有深究直接跳过了,课后习题也没怎么认真做,看完依然觉得很有收获。

    说一下我的心得:
    - 一定要静下新来慢慢看,不要忽略细节,遇到推导公式试着自己计算一下。

    - 课后习题认真完成,对知识点的理解很有帮助。

    - 把书中的源码下载下来,编译运行一下,最好修改代码验证一下对应的知识点。
    hackpro
        43
    hackpro  
       2019-03-15 13:54:45 +08:00
    @hackpro #36

    由于书的种类较杂 根据某位老哥的建议修改了 Repository Name 另外对书籍类别进行了细分
    https://github.com/hao-lh/books-making-you-better
    Lostars
        44
    Lostars  
       2019-03-15 14:20:25 +08:00
    intel 手册,arm 手册(老实人的笑容)
    catcn
        45
    catcn  
       2019-03-15 15:18:24 +08:00
    @hackpro C++一点都不感冒。
    skywalkerfc
        46
    skywalkerfc  
       2019-03-15 15:42:42 +08:00
    去年看了下 ostep,确实挺好的
    dinjufen
        47
    dinjufen  
       2019-03-15 15:57:45 +08:00
    大家都是看的英文版吗,感觉英文版看的比较慢。。
    syc721
        48
    syc721  
       2019-03-15 16:03:58 +08:00
    Computer Organization and Design : The Hardware/Software Interface
    Stevenv
        49
    Stevenv  
       2019-03-15 16:06:22 +08:00
    CSAPP 我看了几章,汇编那有点难搞。。
    kristpan
        50
    kristpan  
       2019-03-15 16:59:57 +08:00
    @Stevenv 汇编那章性价比相当高,看完后读基本的汇编代码基本没问题。
    Stevenv
        51
    Stevenv  
       2019-03-15 17:05:09 +08:00
    @kristpan #50 有什么阅读心得吗?
    nicoley
        52
    nicoley  
       2019-03-15 17:09:27 +08:00
    请问 ostep 有中文版嘛
    x97bgt
        53
    x97bgt  
    OP
       2019-03-15 17:28:25 +08:00
    @nicoley 我只找到中文版的,好像木有。
    x97bgt
        54
    x97bgt  
    OP
       2019-03-15 17:32:56 +08:00   ❤️ 1
    @Stevenv 如果实在不理解,你可以看一下 [汇编语言]( https://book.douban.com/subject/1215178/) 这本,汇编就大致能掌握下来了。
    kristpan
        55
    kristpan  
       2019-03-15 17:38:47 +08:00   ❤️ 1
    @Stevenv 如果之前有 C 语言以及操作系统的基础,仔细阅读,基本上都能读懂的。最好用大块的时间读,要有耐心,一章的内容看个几天也很正常,不能心急。
    lxy42
        56
    lxy42  
       2019-03-15 17:45:59 +08:00   ❤️ 1
    @Stevenv #49

    我正在看第 3 章。

    我觉得理解汇编的关键是:

    - CPU 做的都是非常简单的计算,加法乘除,位运算之类的。对应汇编中的操作符、操作数。

    - 理解栈帧的作用,过程调用(函数调用)时栈空间是如何变化的,如何保存和恢复当前函数的状态。

    建议:最好像书中那样,动手把栈画出来,标上变量名、地址等。

    关键字:call、ret、%ebp、%esp 等。

    大概就想到这些。可能因为我有工作经验和看第二遍的关系,我觉得还是比较好理解的。
    lyminghao
        57
    lyminghao  
       2019-03-15 18:01:05 +08:00
    计算机程序设计艺术
    The Art of Computer Programming (TAOCP)

    大概是最少人读下来的计算机经典了。
    justou
        58
    justou  
       2019-03-15 18:42:57 +08:00
    当初为了看懂第三章的汇编, 专门去补了汇编基础: 王爽的那本汇编, 还有本 Assembly Language for x86 Processors, 然后发现第三章没有必要看了...
    Justin13
        59
    Justin13  
       2019-03-15 18:50:28 +08:00 via Android
    sicp...
    我是项目间隔时期在公司刷的,刷到逻辑编程那卡住了,再加上项目一开始忙就没继续。
    回头有空继续看看。。。
    Stevenv
        60
    Stevenv  
       2019-03-15 18:55:53 +08:00
    @lxy42 #56
    @kristpan #55
    @x97bgt #54
    谢谢三位指教。感激不尽
    daryl
        61
    daryl  
       2019-03-15 19:53:28 +08:00 via iPhone
    三个月?我四个月才看完第一部分……
    1998qiu
        62
    1998qiu  
       2019-03-15 23:50:43 +08:00 via Android
    楼主,你是直接看书学习?还是看书加上 cmu 视频学习啊?
    1998qiu
        63
    1998qiu  
       2019-03-15 23:53:08 +08:00 via Android
    @HeliumTang 赞同
    x97bgt
        64
    x97bgt  
    OP
       2019-03-16 00:35:48 +08:00
    @daryl @1998qiu
    我只看了书,没有跟 CMU 的视频学,实验也没做。准备二刷再回来做实验。
    daryl
        65
    daryl  
       2019-03-16 09:24:15 +08:00 via iPhone
    @x97bgt 我也基本没看视频,现在刚看完存储器那一章…脑阔疼
    Chell
        66
    Chell  
       2019-03-16 12:14:47 +08:00
    这还是有点强的,上学期学校上这门课,加上做 Lab 时间不少了,最后还是虚得一笔
    hx1997
        67
    hx1997  
       2019-03-16 16:04:23 +08:00 via Android
    Sanjoy Dasgupta 的《算法概论》,在看,讲得不错,但示例代码比较少,基本是讲原理。

    网络的话推荐 Kurose 的《计算机网络:自顶向下方法》,不推荐 Tannenbaum 的《计算机网络》,那本讲了太多琐碎细节,厚厚一本,还有他的《现代操作系统》也是这个风格。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1445 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 17:17 · PVG 01:17 · LAX 09:17 · JFK 12:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.