Featured image of post Reading List

Reading List

Architecture

  1. 计算机体系结构:量化研究方法(第6版) : 量化研究方法 (⭐️⭐️⭐️⭐️⭐️)
  • 图灵奖得主的作品,之前看的是第五版,后因为毕业设计重新翻了一遍第六版RISC-V版本,建议看英文版,包括后面附录的内容更是有不少重点。整本书读起来需要较长的时间和一定的耐心,但是相对地收获也不少。
  1. 深入理解计算机系统(第四版) (⭐️⭐️⭐️⭐️⭐️)
  • 大二期间跟着x86汇编一并看完,那时候的理解还不是很深,很多内容也是跳着过了,后面大三又回去补了CMU对应的lab,lab的内容主要包括gdb使用,对于反汇编的理解等。相对于实验而言,仔细读全书的收获要更大。作为经典必读书籍,涵盖的范围非常多,从程序的结构以及执行,到系统运行时,再到IPC,看完后对整个计算机体系有一个较全的理解。同样也因为难度较大,看完需要一定耐心。
  1. 计算机组成原理与设计——软件/硬件接口(⭐️⭐️⭐️⭐️⭐️)
  • 大三时看的还是MIPS版本,同为了毕设重新看了一遍RISC-V版。在流水线一章图文并茂,内容十分详细,作为必读书目,非常适合作为计组的教课书来看。
  1. 汇编语言(第四版) (⭐️⭐️⭐️⭐️)
  • 跟着CSAPP一块读的,作为第三章的补充,感觉比较适合零基础的阅读,不过美中不足的是有些内容相对较老。
  1. 程序员的自我修养——链接、装载与库(⭐️⭐️⭐️⭐️)
  • 主要看完了前一大半,后面与Win/Linux运行库实例部分跳了,很多细节和API记不住,还是靠现查。本书前几章对与编译链接的介绍还是非常详尽的,可以同时作为编译原理的部分知识学习。

Operating Systems

  1. 现代操作系统——原理与实现(⭐️⭐️⭐️⭐️⭐️)
  • 由交大IPADS团队编写的操作系统教材,但是与其说是传统教材,更像是囊括了很多系统前沿理论的导论。在书中由浅入深,包括了非常多样化的内容,代码和插图也是非常生动,认真读完后学到了非常多的知识。在看完电子版后甚至忍不住买了正版纸质书支持一下。
  1. 操作系统导论(⭐️⭐️⭐️⭐️⭐️)
  • 跟着jyy的OS课一起看的,不过当时自己也是对操作系统有了一定了解,所以觉得这本书读起来并没有很惊艳的感觉,不过该有的内容都涵盖了。同时本书的中文翻译一言难尽,还是看英文的比较好。
  1. Linux/UNIX Programming Interface(⭐️⭐️⭐️⭐️⭐️)
  • 感觉更像是现代版的APUE,很适合作为字典查阅,是一本需要放在手边的书,尤其是在man太长看不下去的时候(。
  1. 鸟哥的Linux私房菜(⭐️⭐️⭐️)
  • 因为推荐的人非常多,在刚入门Linux时看的,当时感觉越看越迷茫,并不知道该从哪里学习。感觉书的排列可以再优化一下,时而有抓不住重点的感觉,有一些语句也可以再精简。

Networking

  1. 计算机网络(第八版)(⭐️⭐️⭐️⭐️⭐️)
  • 应该是本书单唯一一个国内计算机高校通用教材也是考研参考书?为数不多的国产好教材,内容算是比较全面,从5个层次自底向上去介绍计算机网络,读完后有一个较为完善的认识 (前提是不把这门课学成文科)。
  1. 计算机网络——自顶向下方法(⭐️⭐️⭐️⭐️⭐️)
  • 和上科大郑老师的课程一块看的,其中印象最深刻的莫过于对可靠传输协议状态机的推导(当时还很年轻,对状态机的认识不深刻),前前后后由可靠传输的状态机到TCP的SEQ和ACK实现,能够有一个比较深刻的理解。后面又跟着umass的lab重新做了一遍,比较简单,就顺手学了一下wireshark的使用。总言之是非常不错的教材。
  1. TCP/IP详解(⭐️⭐️⭐️⭐️⭐️)
  • 相对于前两本,内容更厚。主要重温了一下TCP的机制,并没有全部看完,主要是随用随查。主要卷一部分后面对与TCP的介绍有一个非常深刻理解,同时这本书也补充了不少ipv6的知识,可以作为前者的补充读物来看。

Programming

Functional

  1. Functional Programming in Scala(⭐️⭐️⭐️⭐️⭐️)
  • 很想学好一门函数式编程语言,恰好毕设期间用到了Chisel3,同时自己肤浅地认为Haskell和Lisp学习的ROI不高,遂找了一门比较现代化的语言Scala。Scala本身作为OOP和FP兼容的语言,编程风格也相对自由,同时也支持大量语法糖。这本书从消除side-effect开始,一步步到链表,异常处理,到monad,内容由浅入深,比较具有可读性。只能说函数式太多奇技淫巧(
  1. 计算机程序的构造和解释(SICP)(第二版)(⭐️⭐️⭐️⭐️⭐️)
  • 实际上这本书不完全只有函数式编程,更多是理解程序语义的抽象,最早开始看的时候还是Lisp版本,当时实在是没有心境完整读下去。后来出了JavaScript ed.感觉上好了很多,又重零开始看了一遍,收获还是不少的,作为经典必读书,看完后对程序的形式化描述有了较深刻的理解。

Language

Java

  1. Java核心技术(卷一二)(⭐️⭐️⭐️⭐️⭐️)
  • 大二时学Java的入门书,主要是卷一的部分,卷二后续有些用不太上的部分直接跳了。这书对零基础的同学非常友好,书的内容也相对循序渐进,可以作为Java的入门教材来读。
  1. 深入理解Java虚拟机(第三版)(⭐️⭐️⭐️⭐️⭐️)
  • 八股文重点考试题,第一遍看完后对整个Java有了一个全新的理解,包括整个JVM的设计,从思想上能学到不少东西,虽然长年不看,到现在也就记得一个cafebabe。这本书还是有一个相对全面的介绍,对源码的描述也不枯燥,比较易懂。
  1. Effective Java (⭐️⭐️⭐️⭐️⭐️)
  • 闲暇时间读完的书,里边的很多思想在OOP语言中都能够得到通用。虽然这本书不是很厚,但是其内容也十分详实,仔细读完能学会很多东西,最后到毕业了也没舍得送给学弟。
  1. Java并发编程实战(⭐️⭐️⭐️⭐️)
  • 看的比较老的版本,印象里只到了JDK5,不过内容比较充实,实践的代码写的也很好,比较适合从零开始学习并发的阅读。
  1. Java编程思想(⭐️⭐️⭐️)
  • 看了一半没看下去,语句太啰嗦,比较有跳跃感,感觉有一种你懂了以后才能看懂的感觉,阅读体验远远不如Effective Java的案例式教程。
  1. Java并发编程的艺术(⭐️⭐️⭐️)
  • 当时还是和同学对着源码讨论了半天,发现了里面一些瑕疵,可能作者写的时候都没有理解到。同时代码风格比较混乱,感觉并不是很适合读。
  1. Spring源码深度解析(⭐️⭐️⭐️)
  • 到底还是不如直接看源码,感觉很多东西也是翻译而来。不过看完后还是从容器的实现与加载,到AOP,事务等有一个较为完整的学习,可以作为闲暇时读物,有专心的时间还是建议直接去看源码。

Go

  1. Go 语言设计与实现(⭐️⭐️⭐️⭐️⭐️)
  • 当时读的还是博客版本,因为阅读人数太多而出版了书。主要内容是第三部分即Go语言的运行时,包括调度循环,GC,内存管理等。对于进阶Go语言来说是非常有意义的读物,书里边图文并茂,同时也需要一定语言的基础,作为Go语言深入学习肯定是首选推荐。

Python

Rust

I just want a peaceful life without troubles
Built with Hugo
Theme Stack designed by Jimmy