home book                                                                                书房

我们一拿起一本这样的古书来,即使只读半小时,也会觉得无比的轻松、愉快、清净、超逸,仿佛汲饮清冽的泉水似的舒适。

                                                                                                                                                     — 叔本华

本文所记的,正是 IT 领域如叔本华所说的古书。

技术类

  • 《Operating System Concepts - 9th edition》

曾尝试读过各类 Linux 书籍,无一以失败告终,究其原因,未知原理,先上代码,堆砌细节,难免一头雾水。此书高屋建瓴,提纲挈领的勾画操作系统的模型,从进程模型、进程调度、内存管理再到文件系统,每个部分由浅入深的介绍多种实现方式以及各自的优缺点,不仅知其然,而且知其所以然。理解此书后,再阅读 Linux/Unix 相关书籍,会轻松许多,若能结合伯克利的公开课 CS162,将事半功倍。

  • 《Unix 环境高级编程(第三版)》

如今的内核源码已达千万行规模,大多数软件工程师没有必要去理解内核的具体的实现,但是应该知道内核能为我们提供什么功能,以及我们该如何使用这些功能。书中列举了数百个常用的系统调用,几乎覆盖了除网络编程外的方法面面,如:进程/线程、同步、信号和 IO 等。熟知此书,有利于迅速掌握一门语言,因为许多语言的内建和系统库正是基于这些系统调用。此书亦可做手册,用于工作查询,可闲暇翻阅,但中文翻阅很烂,最好阅读原版。

  • 《TCP/IP 协议,卷 1》

我的专业是通信工程,学习了《信号与系统》、《通信原理》等书籍,但工作之中,却远不如 《TCP/IP》实用。从 LAN/VLAN,路由,再到 TCP/UDP,尤其是 TCP 几章,循序渐进,深入浅出!理解常用协议的报文及原理,再掌握 Linux 平台常用的网络工具,分析抓包,即可定位和解决常见网络问题。

  • 《Unix 网络编程》

此书详细的介绍了 Unix 网络编程,从 90 年代起,网络经历了爆炸式的发展,作者把网络知识独立著成一书,可见对网络之重视。掌握了 TCP/IP 基础知识后,阅读此书,甚是通畅。本书主要讲解基于 UPD/TCP 的 socket 编程,IO 和并发模型是本书的精髓,如能结合 C10K 问题,将更有助于理解 IO 和并发模型。卷二的 RPC 也值得一读,因为许多分布式系统大量的使用了 RPC(高级) 解耦。

思想类

  • 《人月神话》

作者是 IBM OS/360 的负责人,此书写于 40 年前,但是许多关于大型项目开发的观点至今依旧深刻。如:人月不可替代,软件复杂度随代码指数增长,追求架构的一致性,大型项目下的人员组织架构等。

  • 《黑客与画家》

惊!奇!此书一气读完,仍不过瘾,再读一遍,越发深刻。如果说《人月神话》大型软件开发的圣经,《黑客与画家》则是互联网软件开发的圣经!作者对互联网软件的快速开发、迭代和发布,对编程语言的理解和剖析,是本书的最精彩之处。

  • 《硅谷之火》

《硅谷之火》介绍了 PC 的发展历史,从硬件、操作系统到上层的软件应用,诞生了多少公司和成就了多少人物,也谱写了多少故事。此外还有一部名为《硅谷海盗》的电影,值得一看。我想,此书应该是献给那些创业者,献给那些弄潮人。Good artist copy, Great artist steal。

论文