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

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

  •  
  •   x97bgt · 253 天前 · 5704 次点击
    这是一个创建于 253 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

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

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

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

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

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

    - 把书中的源码下载下来,编译运行一下,最好修改代码验证一下对应的知识点。
        43
    hackpro   252 天前
    @hackpro #36

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

    我正在看第 3 章。

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

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

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

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

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

    大概就想到这些。可能因为我有工作经验和看第二遍的关系,我觉得还是比较好理解的。
        57
    lyminghao   252 天前
    计算机程序设计艺术
    The Art of Computer Programming (TAOCP)

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

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