Skip to content

书籍推荐《编码·隐匿在计算机背后的语言》

最近读完了《编码·隐匿在计算机背后的语言》一书,想记录一下,作者是查尔斯·佩措尔德。以前听到“计算机”、“代码”这些词,总觉得它们和我之间隔着十万八千里,像什么科学家、程序员才能搞懂的东西。后来上了大学,读了计算机专业,其中的计算机组成原理、数字电路、操作系统以及编译原理,令我逐步走进了计算机的世界。但那时候虽然看似了解了很多,但终是囫囵吞枣,总觉得缺了点什么,像是少了一层能让人“恍然大悟”的关键连接。直到读了这本书。查尔斯·佩措尔德用一种通俗易懂却不失严谨的方式,将那些看似枯燥的概念娓娓道来。从最简单的二进制开关到摩尔斯电码,再到 ASCII 和 Unicode,他像在讲一个穿越时空的故事,带着我从最初的电报机一步步走到现代计算机的起点。

科技与人文的交汇

从摩尔斯电码到布尔代数,从真空管到晶体管,作者以清晰的笔触勾勒了技术的演化轨迹。这种叙事方式让人不禁思考,人类的创造力与想象力如何将抽象的数学逻辑变为现实中的机器。正如书中反复提到的,计算机的发明是一场集体的智慧冒险,每一个概念的诞生背后都有着深刻的故事与背景。

如今站在巨人的肩膀上回头看,那些在大学学过的二进制、补码、反码,那些做过的模拟电路灯泡实验,那些设计的指令集和CPU电路,再到那些深入到操作系统底层去看去做的代码。无不是前辈先贤们探索的成果。同时也不禁感叹,每个阶段确实想法会随心境所改变。当初这些把自己折磨得半死,嘴里不知道抱怨了多少次的课,现如今只想用赞美来形容。如果说计算机是这个时代的魔法,那么这些知识便是一部揭示魔法原理的导览书,而这本书则是系统性贯穿这些知识的一本图谱。

从“灯泡开关”到“聪明的机器”

书中故事从小时候大家最熟悉的事情开始,两个渴望交流的孩子在父母宣布关灯后通过灯光交流。是昂,谁小时候和小伙伴之间没有几句暗号或者说独特的,大人听不懂的交流语言呢。而正是这些生活中的小时候,以及对于交流的渴望,逐步衍生出了编码组合。从小学习的数字、拼音、汉字以及后来学习的英语,到现在的计算机语言。这一切又都指向了语言的学习,包括现如今正火的机器学习、神经网络。交流与沟通是动物的本能,也整驱使着交流方式的一步步革新。

书中最令我感到惊讶的讲了部分物理相关的知识,从电路到电磁,初中物理、高中物理甚至到大学物理都讲过这些知识。但是很少甚至从未将这些知识同计算机联想起来【至少当时的我是这样的】,好似学习一门知识,就是学习这一门知识,但是世间万物又是息息相关的。到了工作中,也时常陷入自身专业的局限场景中。因此埋头苦干敲代码的时候,多抬抬头看看周围的前辈们,三人行必有我师。在工作上既要专精于自身的专业,又要博览众家之所长工,所谓术业有专攻,但不应被专攻所困。计算机科学的发展,本就是站在无数领域交汇的基础之上。我们编写的代码依赖于硬件,而硬件的运作又建立在物理、化学、材料科学等学科的支持之上。就像书中所提到的,从简单的电流到复杂的晶体管,再到如今的量子计算,计算机技术的每一次飞跃都离不开跨学科的协作与创新。

工作中也是如此。我们敲下每一行代码时,或许只是为了解决某个看似简单的问题,但如果跳出自己的领域去看,问题的背后往往隐藏着更深层次的关联与可能。就像调试一个异常时,我们不仅需要理解代码逻辑,还需要追溯到底层的运行机制,甚至是外部的环境影响。这些跨领域的思考,常常能带来意想不到的灵感。

因此,我时常告诫自己,既要专注于代码的质量,又不能局限于代码本身。要敢于走出“舒适区”,去学习看似无关的知识。或许是一本讲天文学的书,或许是一场关于经济学的讲座,又或许是向团队中负责硬件的同事请教一个问题。这些看似不相关的领域,可能正是帮助我们突破瓶颈的关键所在。

就像老话说的,“不积跬步,无以至千里;不积小流,无以成江海”。计算机科学从诞生至今,也是无数个学科的小流汇聚而成的知识之海。在这片海洋里,我们每个人既是航行者,又是求索者。只有专精与博学兼备,我们才能乘风破浪,抵达更广阔的未来。

电报机与继电器

回到书本,每一个成功都来源于一次伟大的尝试。从继电器到真空管、再到晶体管,进而到集成电路等等。最开始只是源于通信的成本而采用继电器放大通信信号,后来布尔代数的诞生,将数学与电路结合起来形成了逻辑表达式的具象化。进而通过逻辑表达式,反向又描述了数学上的计算。通过数字电路开关模拟了信号,形成了形形色色的锁存器、累加器、内存等等。同时也联想出了对应的编码和编码相关的约定计算。 物理上的进步革新,也衍生出了电报机、电话以及现代的PC等等。各个学科之间亦是相辅相成的关系。

技术其实没那么冷

这本书让我最喜欢的一点,是它讲技术的时候很有温度。比如它会讲到,当年发明摩尔斯电码的人怎么苦思冥想,搞出用点和划传递信息的方式;也会提到那些发明了晶体管、存储器的科学家,如何一点一点突破技术的限制。作者不是冷冰冰地丢给你技术原理,而是用故事和类比让你觉得:这些东西真的离我们很近。

最后

坦白讲,这本书不是一本速成的“学会写代码”的教程,而是一部“让你了解计算机是怎么回事”的故事集。如果你只是想搞清楚计算机的逻辑和运行原理,这本书是再合适不过的入门读物。它让一个普通人也能明白,计算机并不是一个神秘的黑盒子,而是人类智慧的产物。而且最重要的是,作者讲得通俗易懂,很多时候甚至会让你有种“哦,原来这么简单啊”的感觉。当然,如果你是科班出身,有过相关基础知识铺垫,那理解起来更会有种豁然开朗的感觉。

Released under the MIT License.