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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    我正在看第 3 章。

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

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

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

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

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

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

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

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