阅读书单
在我的职业生涯中,我读了很多书——这些是基础书籍:这些书名塑造了我对计算机、代码及其背后的系统的看法。
- Computer Systems: A Programmer's Perspective
程序实际上如何在硬件上运行——位和数字表示、机器代码、内存层次结构、链接、虚拟内存和并发性。这本书对我来说将“魔法”变成了力学。
- The Elements of Computing Systems: Building a Modern Computer from First Principles
从 NAND 门构建一台工作计算机:逻辑、ALU、CPU、汇编器、VM、编译器、操作系统。 CS:APP 的实用伴侣 — 您不仅可以阅读堆栈,还可以构建它。
- Code: The Hidden Language of Computer Hardware and Software
Petzold 从莫尔斯电码和手电筒信号开始,通过继电器和逻辑门,一直到工作的 CPU——每一步在出现之前就受到激励。以最温和的方式了解计算机实际工作原理。
- The Information: A History, a Theory, a Flood
格莱克讲述了信息本身的故事——非洲会说话的鼓、电报、巴贝奇和洛夫莱斯,然后是香农,香农使“信息”成为可测量的比特量。此列表中所有内容的史前史:熵、压缩和纠错作为工程之前的想法。
- Code Complete
一千页关于编写代码技巧的具体建议:命名、例程、控制流、防御性编程、调试、重构。内容厚重但可读性强——是那种你多年后仍会读到的书。
- Designing Data-Intensive Applications
Kleppmann 绘制了现代数据系统的图景:存储引擎、复制、分区、事务、共识、批处理和流处理。解释您将做出的每个数据库和消息队列决策背后的权衡。
- A Brief History of Intelligence: Evolution, AI, and the Five Breakthroughs That Made Our Brains
贝内特将 6 亿年的大脑进化重述为五项突破——操控、强化、模拟、心智化、说话——并在每一项突破中询问人工智能中的相应举措是什么。我所知道的关于为什么强化学习、世界模型和语言最终成为难题的最清晰的解释。
- Why Machines Learn: The Elegant Math Behind Modern AI
阿南萨斯瓦米追溯了默默支撑现代机器学习的数学思想——从感知器到梯度下降、内核和反向传播。手写波普科幻故事和真实教科书之间的可读桥梁。
- An Introduction to Statistical Learning: with Applications in Python
James、Witten、Hastie、Tibshirani 和 Taylor 介绍了经典的机器学习工具包——线性回归和逻辑回归、交叉验证和引导程序、岭和套索、样条线和 GAM、树和集成、SVM、PCA 和聚类——数学保持在你需要的范围内,每章后都有一个 Python 实验室。科普报道一直指出的真正教科书。
- Deep Learning with Python, Third Edition
Chollet 在 Keras 中实践现代深度学习——从密集网络和卷积网络到变压器和生成模型。实用,有主见,由构建框架的人编写。
- High Performance Browser Networking
Grigorik 解压了浏览器实际使用的网络堆栈:TCP、TLS、HTTP/1.1、HTTP/2、WebSocket、WebRTC 以及其之下的移动无线电层。如果您通过网络发送任何东西,这就解释了为什么您的页面速度很慢。
- Fluent Python: Clear, Concise, and Effective Programming
Ramalho 回顾了语法并进入了 Python 的数据模型:dunder 方法、描述符、迭代器、协程和异步机制实际上如何组合在一起。这本书将 Python 用户转变为 Python 程序员。
- JavaScript: The Definitive Guide
Flanagan 对语言的百科全书式参考:类型、对象、闭包、类、模块、异步和完整的标准库。如果您想将整个语言集中在一个地方,那么厚重、精确,是您值得拥有的一本书。
- Pro Git
Chacon 和 Straub 的免费官方 Git 书籍:从日常工作流程到分支、合并和变基,一直到对象模型和管道命令。最清楚地解释了当您输入“git”时 Git 实际执行的操作。
- Seven Concurrency Models in Seven Weeks
Butcher 介绍了线程和锁、函数式编程、Clojure 身份/状态分离、参与者、CSP、GPU 上的数据并行性以及 lambda 架构——每周一个范例。这本书让“选择正确的并发模型”成为真正的选择,而不是一句口号。