【硬核分享】12本最具影响力的程序员书籍( 二 )


每个专栏被组织为一个章节 。章节通常以一个实际问题的情景呈现开头 。然后,提出各种解决方案和相应的经验教训 。写作风格清晰明快 。
《 》不是教授新编程概念的寻常书籍 。虽然它包含了优秀,有时甚至是相当新奇的想法,但这本书的目的不是教你一些新的东西,而是帮助你成为一个更好的问题解决者 。
8.《CODE: Theofand 》
这本书清理了创建和开发复杂系统的大量“魔法” 。现在的抽象是如此之多,以致于一些低层次的细节反而不为开发人员所知 。虽然你可能不会发现自己在实践中时刻使用着这本书——但我相信,知道自己正在构建什么以及整个编排的工作原理是什么,总归是一个好主意 。当你需要打开“黑匣子”,深入软件或硬件来解决一个讨厌的bug的时候,它就能派上用场了 。写的《CODE: Theofand 》梳理了许多编程概念——从数字系统的十进制,八进制,二进制到高级语言 。这本书介绍了基于包的通信协议和TCP 。许多章节讲解了有关硬件的概念,有五个章节涉及到了软件和教导操作系统,浮点运算和图形用户界面 。
7.《The Art of》
这又是一部经典之作 。由著名的计算机科学家教授 Knuth编著,并得到行业内众多顶尖程序员的一致好评 。甚至连Bill Gates也对这本书赞誉有加:
“如果你认为你是一个真正优秀的程序员……那么就去读[Knuth的]《The Art of》吧……如果你能读懂整本书,那么请一定要给我发简历 。”
这本书以基本的编程概念和技术开头,然后聚焦于更具体的信息结构——计算机内的信息表示,数据元素之间的结构关系,以及如何有效地处理这些问题 。此外还提供了基本的应用程序给仿真模拟,数值方法,符号计算,软件和系统设计 。
6.《》
写的《》主要关于改进现有代码的设计 。这是一个改变软件系统而不改变代码的外部行为,却能提高它内部结构的过程 。通过重构,你甚至可以将一个糟糕的设计重新制作为一个很好的设计 。这本书对重构原则进行了深入探讨,包括在哪里发现重构的机会,以及如何建立所需的测试 。另外还有一个目录有40多个已经用细节证明的重构,这些细节包括何时以及为什么要使用重构,逐步说明如何实现重构,并举例说明重构是如何工作的 。这本书用Java作为其主要语言而写,但其中的思路适用于任何OO语言 。

【硬核分享】12本最具影响力的程序员书籍

文章插图
5.《Clean Code》
《Clean Code》,作者 C. ,分为三个部分 。第一部分介绍原则、模式和编写干净代码的实践方法 。第二部分包括若干个复杂度渐进的研究案例 。每个案例研究就是一个清洁代码的练习,也是通过解决代码库中的一些问题让代码变得健全、高效的练习 。第三部分是决定性的一个部分:每个单独的章节在创建案例研究的时候包含了一系列启发式的教学法 。最后得到了描述我们在编写、阅读和清理代码时的思考方式的知识库 。
4.《 to 》
这必须是理解和使用算法(将在软件开发中涉及很多)的最佳书籍 。有些关于算法的书虽然严谨,但不全面——还有一些虽然涉及面广,但却缺乏严谨性 。《 to 》独特地结合了严谨性和全面性 。这本书涵盖了广泛又深入的算法,使得书中的设计和分析能够面向所有层次的阅读人员 。每个章节相对独立,可看作是一个学习单元 。算法用英语和可读的伪代码描述 。它使用初级基本的解释,并不牺牲覆盖的深度和材料的严谨性 。第一版不仅广泛成为了世界各地高校的教材,还成为了专业人士的标准参考书 。第二版新增了算法,概率分析,随机算法,线性规划的章节 。