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

这推荐的几本书看完啥水平,能起飞不?

  •  
  •   heheheheljxx · 2023-09-04 23:03:15 +08:00 · 4145 次点击
    这是一个创建于 452 天前的主题,其中的信息可能已经有所发展或是发生改变。
    22 条回复    2023-09-05 17:01:29 +08:00
    rsy
        1
    rsy  
       2023-09-04 23:12:38 +08:00
    都是很经典的教材,能透彻掌握的话能起飞,但如果只是翻过就当看过的话就不一定了
    amlee
        2
    amlee  
       2023-09-04 23:13:23 +08:00
    你要是学生,推荐 https://csdiy.wiki/

    你要不是,当我没说
    nikenidage1
        3
    nikenidage1  
       2023-09-04 23:14:24 +08:00
    能全掌握的话,30k/month 不成问题
    rimworld
        4
    rimworld  
       2023-09-04 23:14:48 +08:00
    同推荐 https://csdiy.wiki/
    ufan0
        5
    ufan0  
       2023-09-04 23:19:26 +08:00 via iPhone
    先把学历拉上才能起飞。
    lostberryzz
        6
    lostberryzz  
       2023-09-04 23:23:09 +08:00
    都是基础课,打基础很不错,起飞不至于
    golangLover
        7
    golangLover  
       2023-09-04 23:25:26 +08:00   ❤️ 3
    没有用的。程序员就整天弄这点虚的,还不如刷刷题,做下业务。会这些理论知识,然而没有实践,在现在这环境大部分时候根本没用。
    levelworm
        8
    levelworm  
       2023-09-04 23:28:10 +08:00 via Android
    @amlee 不是学生也没啥问题,核心课程就那六七门。就算从头学也行。不过成家有娃的的确困难。
    lbprivateacc
        9
    lbprivateacc  
       2023-09-04 23:29:27 +08:00 via Android
    点进去报错了
    levelworm
        10
    levelworm  
       2023-09-04 23:29:55 +08:00 via Android
    我觉得还是得做项目,MIT 和 Berkeley 挑一些项目做做蛮好的。

    工作中很难接触到真正有难度的东西,没啥意思,做的再多也没用,还不如自己 hack 一下 kernel ,或者找 cve 。

    当然顶尖公司的顶尖组就当我没说,问题是都顶尖了还操心这些做啥。
    pocarisweat
        11
    pocarisweat  
       2023-09-04 23:52:28 +08:00   ❤️ 5
    SICP 拖了好几年都没读完,但这本书真的很有意思(或者说和 Lisp 相关的那几本著名的书都很有意思),最起码来说它可以治愈一个人的 Lisp 恐惧症,以及理解「抽象」这个抽象的词(递归了这下)。

    而 CSAPP 的话呢…一大作用应该是治愈很多程序员的「底层」恐惧症,即看到所谓底层相关的知识又觉得害怕,又盲目崇拜。从这个角度说,这本书当然是每个程序员都必读的(没说要读完或者全部弄懂)。

    文章里面提到的操作系统教材我没有读过。但从我读过的一些操作系统书籍来看,理论背景太深厚也会导致读起来过于抽象,只适合考试。如果能够结合操作系统的若干 API ,比如创建进程线程,映射内存,会好一点。南大还是哪个大学在 B 站上有个操作系统课,那个不错。

    数据库那本也没读过,当年学校用的教材是《数据库系统概念》,到今天也就记得若干 SQL 、关系代数那套理论,还有 ACID 的定义了。更进阶的一本是《数据库系统实现》,讨论了为什么数据库的索引要用 B 树,如何根据 SQL 创建查询计划等等。所以对应了两个路线的实操,一个是多写点 SQL (如果你不熟悉的话,多和聚合函数以及 HAVING 字句斗智斗勇能很快增进对关系代数的认识),一个是试着写一个数据库引擎。其实数据库实现这块知识挺有意义的,因为这可能是第一次思考内存之外的模型(比如如何优化磁盘写入),而且 CRUD 程序员很需要这个。

    说到 CRUD ,后面那本《数据密集型系统设计》就更推荐了。我觉得大多数喜欢装 X 问高并发的面试官问的问题都不会超过这本书的某个子集…而且相比偏老一些的数据库教材,这本书讨论了很多 NoSQL 的内容和新的索引结构。

    而学编译原理,真的不推荐龙书。《编译器设计》或者《现代编译原理》都比龙书更容易入门。或者有一本九十年代的书,叫《编译原理与实践》,这个更适合初学者。这本书国内有翻译版也有影印版,翻译翻得很垃圾。但从普通程序员的角度看,学编译原理并不代表真的要做编译器或者发明新语言(虽然这是很有意思的事),而主要是 (1) 会用编译器;(2) 了解编译器大概能做什么优化,写代码的时候心里有数;(3) 了解底层链接器、加载器、runtime 等的工作原理。1 你看编译原理书没啥用,得看你用的编译器的文档加多用; 2 的话有点用,但你也得先懂点汇编; 3 虽然做编译器都绕不开这个,但大部分编译原理的书都不会讲,CSAPP 倒是会讲,这个有用。
    loading
        12
    loading  
       2023-09-05 08:19:31 +08:00   ❤️ 1
    站点报错,在 github 有个比较出名的,不知道是不是一样的。

    https://github.com/PKUFlyingPig/cs-self-learning
    chenyu0532
        13
    chenyu0532  
       2023-09-05 09:32:05 +08:00
    建议边工作/实践边看,另外编译原理你们真的这么推荐么,太底层了吧。。。
    heheheheljxx
        14
    heheheheljxx  
    OP
       2023-09-05 09:49:22 +08:00
    @chenyu0532
    编译原理不推荐,推荐的是 Crafting Interpreters 这本,文章也说确实编译原理不适合
    heheheheljxx
        15
    heheheheljxx  
    OP
       2023-09-05 09:51:53 +08:00
    @rimworld 东西很全
    mikasa1024
        16
    mikasa1024  
       2023-09-05 09:52:49 +08:00
    打不开的可以看原文链接,再点中文翻译

    https://teachyourselfcs.com/
    wangpugod2003
        17
    wangpugod2003  
       2023-09-05 10:01:56 +08:00
    《数据库系统实现》->《 DDIA 》
    做分布式工程师(偏重于数据)必读,了解从 relational DB 的 B+树结构,到 noSQL 数据库的 LSM 结构的演进;了解从 ACID 到 CAP ,不同的分布式系统的 tradeoff 。
    适合有一定基础的分布式工程师,新手看了也白看,根本不理解为啥要耍这么大一摞作甚。
    wangpugod2003
        18
    wangpugod2003  
       2023-09-05 10:03:04 +08:00
    新手工程师推荐:《 21 天从入门到精通 XXX 》,边看边速成 CRUD boy~
    keepRun
        19
    keepRun  
       2023-09-05 12:34:51 +08:00
    如果你是学生的话,如果是初学,建议先从实践性较强的书籍开始学,先去动手,学计算机一定要多动手。
    我认为比较合适的学习一个领域的学习方法是:
    前期先看实践性比较强的书籍,适合入门阶段。
    后期适合看理论性相对多点的书籍,适合有一定基础后看。
    看的过程中,如果某个知识点不懂,就去 CSDN 、掘金、知乎、B 站等搜索相关内容补充知识,然后继续。
    与此同时,我建议刷书,针对某个领域,我一般至少挑 3 本书,遇到不懂的可以先跳过或者换本书,这样保证自己对这个领域认识比较全面。

    这个学习方法我认为适合学习大部分领域。

    读书最关键的是要看懂,如果一本书让你看得一点都看不懂,先得去补齐前置知识。
    wei2629
        20
    wei2629  
       2023-09-05 13:52:50 +08:00
    说实话 夸夸其谈。一问都能扯到一点,一具体什么都差点。书上得来终觉浅欲知此事需躬行,直接看杀手级的应用或者中间件,存储数据库,比这强。
    donatello
        21
    donatello  
       2023-09-05 16:59:55 +08:00
    巧了,目前跨专业考的研究生,就剩下分布式了(基本按照这个网站的推荐视频看的,原版是 teachyourselfcs.com ,部分书籍都看了),分布式难度太大了可能都不考虑,推荐的书籍感觉没啥操作性针对业务来说的...不知道有没有大佬推荐推荐分布式学习哪些 cs 课程好一点。我的建议是按照他流程的视频来看比较好,特别是 cs61a b c 对我的提升就特别大了
    donatello
        22
    donatello  
       2023-09-05 17:01:29 +08:00
    上面挺多人都认为这些没用,其实上面不只有书啊,还有一大堆 UCB mit 的课程可以跟着学习,基本都有一大堆的项目可以做,难度有些真不低
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2885 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 08:55 · PVG 16:55 · LAX 00:55 · JFK 03:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.