摘要:近日,经典著作《 编码》第2版中文版火爆上市,已成为科技圈里很多人追逐的热点。今年5月,另一本计算机系统入门书 《计算机系统要素》第2版中文版也新鲜上市。在网络上的一些讨论中,这两本书也经常被放在一起比较。本文就从这两本书在写作形式、内容特色、阅读难度、适度人
近日,经典著作《 编码》第2版中文版火爆上市,已成为科技圈里很多人追逐的热点。今年5月,另一本计算机系统入门书 《计算机系统要素》第2版中文版也新鲜上市。在网络上的一些讨论中,这两本书也经常被放在一起比较。本文就从这两本书在写作形式、内容特色、阅读难度、适度人群 等方面做一个简单探讨。
概况
《编码》由美国计算机科学家 Charles Petzold 编写,是一本面向大众的计算机科学启蒙读物。它从最基础的“如何用手电筒传递信息”讲起,最终构建出一个完整的计算机系统,是一本计算机系统入门科普书。《计算机系统要素》一本经典的计算机系统入门教程,全球已有400多所高校将这本书纳入教学体系。它以“从与非门到俄罗斯方块”为学习目标,使初学者能够结合项目实践对计算机建立宏观的理解,并能完成制作一个基本计算机系统的任务。
一句话总结
《编码》:用“讲故事”的方式带你理解计算机是怎么来的。
《计算机系统要素》:用“做项目”的方式带你亲手造一台能跑程序的计算机。
先让《编码》告诉你“为什么”,再让《计算机系统要素》教你“怎么做”。
作者写作目的
《编码》:科普/通识。作者 Petzold 想让“没有任何技术背景的人”也能明白计算机为何能“思考”。
《计算机系统要素》:教材/实验手册。作者 Nisan & Schocken 想让初学者通过 12 个逐步递进的实验,真正从零构建出一台可运行高级语言的计算机。
预期学习收获
想“看得懂”——读《编码》。
想“做得出”——读《计算机系统要素》。
《编码》读完你能搞清楚:
二进制、十进制、十六进制都是怎么回事
为什么计算机能算加法
为什么硬盘能存文件
……
《计算机系统要素》读完、做完项目你拥有:
一颗用 NAND 拼出的 16 位 CPU
自己的汇编器、VM、语言编译器
一个极简操作系统(含数学库、内存管理、图形输出等)
……
适读人群
《编码》:零基础,甚至可以完全对计算机没概念。
《计算机系统要素》:可以零基础,但读起来会有一些难度,最好有一些前置知识对计算机基础概念及编程语言有初步了解,比如你已经读过或者正在读《编码》。
先读《编码》,再读《计算机系统要素》,是绝大多数人的最优顺序。
如果你并非零基础,已经学过数字电路及一门编程语言,可跳过《编码》直接阅读《计算机系统要素》。但如果你读《编码》也一定会有新收获。
如果你只是为了兴趣看一本科普读物,不是计算机专业学生,也不会从事跟计算机有关的工作,可以只读《编码》。
内容特色
《编码》:沉浸式阅读,作者用大量类比和手绘插图降低门槛,并不硬性要求动手实验。
《计算机系统要素》:强调动手实践——官方提供 HDL 仿真器、CPU 模拟器、测试框架;一个合格的读者最终应该交付一个能够运行俄罗斯方块的完整计算机平台。
《编码》
从手电筒传递暗号讲到二进制、逻辑门、加法器、内存、CPU,最后到操作系统雏形。
侧重“概念”和“历史演进”,不会要求你去仿真、布线或写编译器。
《计算机系统要素》
从与非门(NAND gate)开始,一路做到 ALU、CPU、寄存器、RAM、汇编器、虚拟机、编译器、操作系统核心模块(内存管理、I/O 驱动等)。
每一章都有明确的项目:用硬件描述语言(HDL)写芯片、用高级语言写汇编器/编译器/操作系统部件。
△《计算机系统要素》
△《编码》及两本套装
来源:机械工业出版社一点号