首页 » 人工智能 » 9本醍醐灌顶的计算机好书,本书禁阅·熹微。

9本醍醐灌顶的计算机好书,本书禁阅·熹微。

深圳海外装饰工程通讯 2024-09-30 0

扫一扫用手机浏览

文章目录 [+]

1 The Art of Doing Science and Engineering

2 The Mythical Man-Month: Essays on Software Engineering 人月神话

9本醍醐灌顶的计算机好书 9本醍醐灌顶的计算机好书 人工智能

3 Probability and Computing

9本醍醐灌顶的计算机好书 9本醍醐灌顶的计算机好书 人工智能
(图片来自网络侵删)

4 The Cathedral & the Bazaar 大教堂与集市

5 Staff Engineer

6 Designing Data Intensive Applications

7 Software Engineering at Google 谷歌软件工程

8 Economics Rules 经济学规则

9 Computer Systems: A Programmer's Perspective

本文凑集了鹅厂程序员们强烈推举的9本经典打算机图书,“事情往后重新读来让我有种醍醐灌顶之感”,这是他们对这些书本的评价。

这9本书涵盖了打算机理论科学、软件工程、分布式系统等,做到了既经典又全面。
如果你在方案自己的学习操持,不妨将这几本书放进自己的书单,结合实际事情和问题场景去阅读,相信会给你带来全新的体会和认知。

01

The Art of Doing Science and Engineering

这本书是 Richard Wesley Hamming(1968 年的图灵奖得主、20 世纪最著名的运用数学家之一、编码论的奠基人)一门课程的口述稿,是 Hamming 生平关于学术、研究、聪慧的结晶。
本书的主题因此下几个问题:

是什么引发了伟大的想法?我们能否通过演习,以期使我们的思考办法能够孕育出足以改变天下的理解和见地?在一个知识爆炸的年代,我们如何节制和理解知识,才能做出故意义的学术研究和工程?

在书中,Hamming 根据他自己的学术生涯履历总结了打算机科学与技能的紧张领域,并在书的末了给出了很多关于研究与工程的真知灼见。
You and Your Research 是 Richard Hamming 最著名的演讲,收录于本书的末了一章。
对我影响最大的几个不雅观点是:

该当做“好”的研究和项目。
方向不对,努力无用。
学习有复利效应。
数学无非是清晰地思考。
人是自身所有习气的总和。

我最为赞许“学习有复利效应”这个不雅观点。
从上学到现在,我常常见到和我同龄乃至比我小的人,知识量的渊博和不雅观点的深刻都远超于我许多倍。
Richard 也有过这个纠结(他乃至在书中讲了一个完备类似的故事),而他得到的答案是,学习的复利效应很明显,以是开卷有益,而且是远超想象的收益。
以是我一贯不遗余力地宣扬程序员也该当持续学习,多读书。
学不进去的末了都转行去开宠物乐园了。

02

The Mythical Man-Month: Essays on Software Engineering 人月神话

人月神话这本书的经典之处在于,本书初版上市于 1975 年,距今已有近 50 年的历史。
在技能更新换代如此之快的本日,这本书的不雅观点与理论仍旧具有超越时期的辅导意义。

打算机领域飞速发展了近 50 年,性能更强的硬件、延迟更低速率更快的网络、更加极致弹性的打算、存储资源、更加完善的框架、更多花活的编程措辞、更为前辈的设计思想……软件工程领域过往存在的问题,却并没有随着底层技能的进步、根本举动步伐的完善而得到办理,反而更加凸显:事情量仍旧无法评估、进度排期仍旧难以合理安排、万事未定叠人力、 Bug 反复涌现大家都是草台班子、大量软件陷入失落败……

人月神话领先于时期地指出,人力和韶光并不呈现线性关系。
以大量职员和较短的韶光,并不能缩短软件的开拓进度。
一窝蜂的作业办法无助于软件生产,且会制造麻烦,产生出更差的软件。
向进度掉队的项目追加人力,只会使进度更加掉队。

“没有银弹”,是人月神话的又一个经典。
在这个微做事办理统统问题确当下,技能选型上的迷信和辩论仍旧喋喋不休。
越深入软件开拓,读起《人月神话》你的感触和体悟会更深。

03

Probability and Computing

常读常新。
概率论在打算机科学的运用的经典之作。
这本书中的知识和技巧该当是做算法与系统设计的必备。

概率论近几十年在打算机科学中的运用可谓显学,在不同的领域,尤其是算法设计、数据库、网络、机器学习、大数据中有极其广泛的运用。

本书每一个章节都从概率知识开始讲起,以在打算机科学中的实际运用扫尾。
作者 Michael Mitzenmacher 是随机算法、网络方面的专家,特殊是深耕过一系列关于 Bloom Filter 的领域。
熟读这本书能够为理解概率数据构造、Sketching 等工程中常用工具供应坚实的理论根本,对读干系的论文也有帮助。

这本书编排很实用。
它的出发点是为打算机科学家所写,以是紧张聚拢于离散过程,不须要像普通的概率论教材一样从测度论开始。
测度论当然很有趣,但对事情的浸染的测度为 0。

04

The Cathedral & the Bazaar 大教堂与集市

本书谈论的是两种不同的软件开拓模式:

大教堂模式(The Cathedral model):源代码在软件发行后公开,但在软件的每个版本开拓过程中是由一个专属的团队所控管的。
商场模式(The Bazaar model):源代码在开拓过程中即在互联网上公开,供人查看及开拓。

本书的核心要义是“让够多人看到源代码,缺点将无所遁形”(Given enough eyeballs, all bugs are shallow)林纳斯定律。

大略摘录几句书中的经典不雅观点,你就能 get 到本书的含金量:

精良的程序员知道写什么,卓越的程序员知道改写(和重用)什么。

好的软件作品,每每源自于开拓者的个人须要。

当你对一个程序不再感兴趣时,你末了的任务便是把它交给一个可以胜任的接棒者。

当你开始社区培植的时候,你须要能够呈现一个可行的 前景。
你的程序不一定要事情的非常好。
它可以是粗糙的、 问题多多的、不完全的、短缺文档记录的。
它一定不能失落败的是(1)能运行,(2)说服潜在的互助者它可以在可预 见的将来进化成真正俊秀的东西。

05

Staff Engineer

Will Larson 的作品,可以命名为“高阶程序员生存指南”。
这本书不是关于打算机科学知识,而是关于软件工程。
更确切地,这本书是“微不雅观软件工程”,描述了作为一名高阶工程师的事情任务和职责,以及常见的陷阱须要避免。

这本书可以完美地回答“TL 到底有什么用”的问题。
尤其,它阐明了为什么一个高 T 一年不写几行代码并不代表他没有干活。
书中的答案是:

设定技能方向

须要务实、寻思熟虑、关注长期趋势。
不要过度关注自己感兴趣的技能,而是理解和解决组织的真正需求。

这本书严重地警告 “Stop Chasing Ghosts”:一个高等管理在空降到一家公司的时候,会完备地误判了当前的真正寻衅,而急速驱动一项重大的计策转变。
他们在原来公司里面的成功或是失落败的履历会极强地影响他们对新公司情形的理解,以至于他们把熟习确当成主要的。

辅导、培养和支持

不要过度个人英雄主义。
给低级工程师供应辅导,给高等工程师供应支持。

供应技能视角

没有一个技能产品是纯“技能”产品。
商业产品每每是多个视角的结合体:商业、技能、产品、运营、设计……

为高层的商业策略供应“技能”层面角度,不要让技能缺席,涌现“这个需求很大略,怎么实现我不管”。

每个 TL 都该当是一个好的产品经理。
如果一个老板以为 TL 只该当管技能的事情,连参与谈论产品都不应该,那这个老板是生手,而你也该当准备跑路了。

写代码

是否仍旧写代码该当看项目的详细情形。
但是如果写太多,犹如你在更低的级别,那每每是躺在舒适区、而没有把韶光放在更主要的任务上的表现。

当然,不写代码不应该是由于不会,而该当是优先度不高。
对大部分高阶工程师来说,Code review 仍旧很常见。

衡量一个 TL 的代码水平,不应该看他的代码质量,而该当看他所管理的项目的代码质量。

不管是哪个级别的同学,这本书都值得一读,虽然可能体会不同。
这也是一本常读常新的书。

06

Designing Data Intensive Applications

可能是数据密集型运用开拓最好的入门书。
虽然有 data-intensive 这个定语使得这本书看上去运用面比较窄,但是 data-intensive 是与 computation-intensive 对应的,当代工业界的大部分系统都是数据密集型的。
这本书难得地领悟了学术界理论与工业界实践。

这本书已经有太多人推举了,在此不再赘述。
在此轻微提一点读书的心得:该当把这本书作为知识体系的根本,以”修书“的办法来读这本书。

本书的层次非常高,适宜入门。
如果之前只是对系统设计有初步理解的同学,用来建立自己的知识体系会很得当。
但同样,很多可以深挖的细节也被一笔带过了。
举一个大略的例子,文中提到 "ACID" 这个词由于定义不清晰,已经被滥用了,成了一个营销专用词。
但实际上不同的数据库对 ACID 的不同理解和取舍是很不一样的。
以是,对这本书进行扩写,会是扩展完善自己知识体系的好办法。
书中的文献引用内有大量有代价的内容,非常值得一读,可以极大地扩展知识体系的深度。
分布式、数据库、打算框架这几年的进展很快,以是个中的描述的一些系统和认知每年都有新的更新。
可以把书中的内容按自己的理解更新认知。
阅读其它的文献,扩展知识体系的广度。

07

Software Engineering at Google 谷歌软件工程

大部分软件工程的教材会很详细地描述软件工程的全体生命周期,设计、需求、建模、开拓、测试、发布、掩护,但是对详细的工程实践所涉甚少。

归根结底,一方面软件工程还处于发展的初期,还没有系统的方法论;另一方面,软件工程的主体不是软件,而是人,而人是极其繁芜的,很难有简化的模型。
以是,业界的共识是,对软件工程,尤其是工程师的产出,进行量化,至少在现在是不可能的。
但是,软件开拓的繁芜性是切实的,又须要对项目进行管理。

SE@Google 这本书非常老实地描述了 G 家对软件开拓的核心繁芜度的认识:繁芜度来自于韶光,所谓 软件工程=代码韶光。
他们的软件工程都是在与韶光导致的繁芜度做斗争,紧张分为文化、流程和工具三种。
我尤其关注了工具部分,由于与本职事情更干系。

这本书好就好在它不只讲了怎么做,还讲了为什么要这么做:每一样大规模推广的工程实践都详细地阐述了动机,乃至对个中的子决定的取舍都做了阐述。
个中书中的大部分实践,也正是我们在日常事情中都须要的:

版本掌握构建系统持续集成持续支配代码评审文档编写测试

不过,学习别人的实践要做到三层境界:“怎么做/WHAT”,“为什么这么做/WHY”,“为什么不用别的办法做/WHY NOT”。
选择某些实践可能看上去情由充分,但是为什么不选择同样合理的其它实践呢?这可能只是由于公司的惯性和历史等很多成分,而这并不为外人所知。
那么,如果只是纯挚地复制别人的实践,很随意马虎东施效颦。
一定要结合组织的实际情形(正如 Staff Engineer 中所说,stop chasing the ghost)。
在做大型的软件工程管理时,该当治大国如烹小鲜,谋定而后动;而一动下定决心,就该当不再转头。

08

Economics Rules 经济学规则

办理了我长久以来的困惑:如果抽象的模型是简化的,那么它在映射到现实天下时不会失落灵吗?如果会的话,那么抽象模型的意义是什么呢?

果真,这个困惑不但是我专有:著名的经济学家 Ariel Rubinstein 说,“‘模型’一词听起来比‘寓言’或‘童话’更科学,(但)我看不出它们有多大的差异。
”。
这本书并不是打算机书本,而是一本经济学家的反思之作:“部分由于经济学家把自然科学当作榜样,他们有误用模型的方向。
他们常常会把详细模型误解为无论何时皆适用的普适模型。
经济学家必须战胜这种方向。
他们必须根据条件变革、根据关注工具的变革而谨慎选择模型。
他们须要学习如何更自若地在不同模型之间转换”。

这本书给我的启迪是,软件工程并不是自然科学,而更像经济学/社会学/管理学。
如果没有模型,软件工程也很难进行知识创造,但是,滥用模型,把所有的问题诉诸于利用某些大银弹,会极大地增加模型失落灵的风险。

不应该在软件工程中过度利用数学方法。
不应该建立关于软件工程的基本假设,然后在此建立繁芜的数学推理进行模型推演以得到一些自己都说不定不信的结论。

这本书同时回答了我另一个困惑:为什么知道这么多道理,但还是过不好这生平。
由于所有的道理都是简化的模型。
这个天下上只有这个天下才是真实的模型,在此之外,不过是你的,还是别人的,还是脱销书的道理、真理、方法论,都是简化的模型。
拉普拉斯之妖并不存在,打算的极限也解释决定论是不存在的,而心智的成熟便是我们内心中那个模型逐渐完善的过程。

09

Computer Systems: A Programmer's Perspective

本书的中文译名叫《深入理解打算机系统》,但实际上原意更符合“系统开拓者的视角”看打算机系统,这是本操作系统入门书,不是所谓读一本就精通 os 的万灵药。
无论是北大上交还是 CMU,这本书都是作为大一大二的 ICS 打算机系统导论课进行传授教化。

这本书在海内打算机领域的地位非常稳健,无论是本科阶段的传授教化还是考研阶段的进阶,都会大量利用到本书作为学习工具。
对海内的打算机专业学生而言,这本书更像是一种启蒙,而非30天精通的毕业之作。

然而现实情形是,大多数打算机专业毕业生直到参加事情,都未必对本书有多深入的理解。
只管如此,它仍旧值得每个没有打仗过类似书本的人去负责阅读。

相关文章

大华监控二维码,大华股份。

大华无线摄像头怎么添加大华无线摄像头的添加步骤如下:下载大华无线摄像头APP:首先需要在手机应用商店下载并安装大华无线摄像头APP...

人工智能 2024-09-30 阅读1 评论0

人民周刊杂志社,武契奇。

大众周刊创办时间1941年5月17日,邹韬奋在香港重办《大众生活》。在复刊词中,他大声疾呼:“摆在全国人民面前的紧急问题,就是如何...

人工智能 2024-09-30 阅读2 评论0