每日一书|《c++沉思录》:程序员进阶经典书

《新程序员》编辑部 《新程序员》编辑部     2023-01-27     124

关键词:

杜甫诗云:“读书破万卷,下笔如有神”。开发者多读书、读好书,能打好基础、掌握实践、答疑解惑、拓展视野。正基于此,2021年11月1日起,CSDN、《新程序员》推出“每日一书”栏目,为你推荐精选好书,助力你的开发工作如行云流水。

在C++编程方面的书籍中,《C++沉思录》是值得C++程序员进阶学习的经典书。

图书作者凯尼格曾在贝尔实验室与C++之父比雅尼·斯特劳斯特鲁普博士共同发展C++语言,这本《C++沉思录》汇聚了凯尼格多年来对C++语言深层次的分析和独到的见解。书籍内容由凯尼格在知名技术杂志发表的技术文章、世界各地发表的演讲以及斯坦福大学的课程讲义整理而成。

经典书的内容自然是值得畅读的,但今天异步君要和大家分享这本书创作背后的故事——关于作者本人的爱情故事。

— 01 —

进入贝尔实验室,结识C++创建者

与C语言一样,C++语言也是在贝尔实验室诞生。1979年,比雅尼·斯特劳斯特鲁普博士(Bjarne Stroustrup)在贝尔实验室工作。

在工作中,他发现Simula语言具备的特点使其很适用于大型软件开发,但运行速度太慢,无法在现实需求中发挥其功效;BCPL的运行速度虽快得多,但它过于低级的特性,使其并不适于大型软件的开发。

所以,他想找到一门语言,既便于开发大型软件开发,又能保持不错的运行速度。

最终,他选中了可移植、用途广、运行速度较快的C语言,他为C语言增加了一些类似Simula的特点,使得新语言逐渐能够满足需求现实中的开发需求,这门新语言刚开始被称作“C with Classes”。

而在这之后不久,本书的作者之一凯尼格(Andrew Koenig)在贝尔实验室的研究方向也转向了这门新语言,他和比雅尼·斯特劳斯特鲁普成为了同事,一起推进“C with Classes”的发展。

在1983年这一年,“C with Classes”正式改名为“C++”(++是C语言中的增值操作符)。这门新语言已经在C的基础上加入了许多新特性,其中包括虚函数、函数名和运算符重载、参考、常量、用户可控制的自由空间存储区控制、改良的类型检查,以及新的双斜线(//)单行注解风格。

同一年,芭芭拉·摩尔(Barbara E.Moo)也进入贝尔实验室,负责Fortran 77编译器的研究工作,这是当时第一个用C++语言编写的商业产品。她和凯尼格成为同事,并结识了“C++之父”比雅尼。这三人,一位是C++的创立者,两位是C++语言的研究者和推动者,他们相聚于贝尔实验室,在C++日后的不断演进中都做出了许多贡献。

 — 02 —

程序员中的神仙伉俪,参与完善C++

1988年,凯尼格组织召开了第一个完全意义上的C++会议。第二年,ISO/ANSI C++委员会成立,他加入了该委员会并一直担任项目编辑。此后,他不断发表C++方面的论文,应邀到世界各地演讲,不遗余力地做C++的研究和推广工作。

芭芭拉·摩尔,在贝尔实验室负责AT&T的C++编译器项目,直到贝尔实验室的软件开发业务最终被转让出去。

在贝尔实验室工作的这么多年,凯尼格和芭芭拉不仅是工作中的伙伴,更成为了生活上的知音。1998年6月22日,在相恋多年后,芭芭拉·摩尔和凯尼格在新泽西的莫里森镇喜结连理,“C++之父”比雅尼·斯特劳斯特鲁普也参加了他们的婚礼。

凯尼格和芭芭拉二人同为贝尔实验室工作,同样是研究C++语言,亲身参与了C++的演化和变革,对C++的变化和发展起到了重要作用。他们二人因为C++而相识、相知,并最终走向了婚姻的殿堂,他们二人不仅是C++研究领域的“第一神仙眷侣”,而且成为程序员群体里知名度甚高的“神仙伉俪”。 

 — 03 —

精选专栏文章,合著《C++沉思录》

这本《C++沉思录》,正是凯尼格在芭芭拉·摩尔的建议下,将他前后十几年在各大技术论坛上发表的100多篇专栏文章精选、编修,再加上自己多年的沉淀和思考,整理而成。

也正是因为脱胎于技术文章,所以这本书的可读性很高,而且知识密度也相当大,这也使得本书区别于其他技术类书籍。

尤为值得一提的是,在众多C++大师中,凯尼格的教学实践能力和文字能力历来备受好评,他发表的100多篇专栏文章,以其朴实而又精深的思想,准确而又权威的论述,高屋建瓴而又平易近人的表达方式,成为业界公认的正统“C++之声”。

比雅尼·斯特劳斯特鲁普在他的主页上就特别推荐人们去阅读这本书,ACCU的主席Francis Glassborow也在书评中慷慨地向读者推荐此书,说“ 我对这本书没什么更多可说的,因为每个C++程序员都应该去读这本书。如果你在阅读的过程中既没有感到快乐,又没学到什么东西,那你可真是罕见的人物”。

而著名C++专家ChuckAllison,在他自己的书C & C++ Code Capsules (本书中文版《C和C++代码精粹》)中,更是直截了当地说:“对我来说,这是我所有C+ +藏书中最好的一一本。

C++发展史上的两位重要人物夫唱妇随,一同出版著作,本身就足以引起整个C+ +社群的高度重视,而这本书不平凡的来历,和出版之后5年间所获得的极高赞誉,更加确立了它在C++技术书籍中的经典地位。

对于我们而言,阅读这本书的收获并不仅在于掌握了什么技术,而是在技巧背后告诉我们的思考方法,以及解决问题的步骤和方向。正所谓“授人以鱼不如授人以渔”,这正是本书的独特价值所在。

—END—

《C++沉思录》基于作者在知名技术杂志发表的技术文章、世界各地发表的演讲以及斯坦福大学的课程讲义整理、写作而成,融聚了作者10多年C++程序生涯的真知灼见。

《C++沉思录》分为6篇,共32章,分别对C++语言的历史和特点、类和继承、STL与泛型编程、库的设计等几大技术话题进行了详细而深入的讨论,细微之处几乎涵盖了C++所有的设计思想和技术细节。

本书通过精心挑选的实例,向读者传达先进的程序设计方法和理念。《C++沉思录》适合有一定经验的C++程序员阅读学习,可以帮助他们提升技术能力,成为C++程序设计的高手。

(声明:本文转载自人民邮电出版社IT专业图书旗舰品牌“异步图书”微信公众号。)

每日日报3

1.今天完成了哪些内容(1)《C++沉思录完整版》第1章的阅读(2)《Java程序设计完全学习手册》中第2章中java的数据类型以及转义字符的学习(3)写了小学期部分代码 2.遇到哪些问题 链表 3.明天准备要做哪些事(1)... 查看详情

每日日报10

1.今天完成了哪些内容(1)《C++沉思录完整版》第6章的阅读(2)《Java程序设计完全学习手册》中第3章中java的最小值以及平均数的学习;(3)小学期完成了部分报告 2.遇到哪些问题new,operator 3.明天准备要做哪些事(1... 查看详情

每日日报6

1.今天完成了哪些内容(1)《C++沉思录完整版》第3章的剩下部分的阅读以及第4章的阅读(2)《Java程序设计完全学习手册》中第2章中java的位运算符的学习以及程序流程控制的部分学习(3)小学期完成部分报告 2.遇到哪些问... 查看详情

每日一书|拳打mysql基础,脚踢mysql进阶

...拓展视野。正基于此,2021年11月1日起,CSDN、《新程序员》推出“每日一书”栏目,为你推荐精选好书,助力你的开发工作如行云流水。三四十万字,几百篇插图,辞了工作, 查看详情

每日一书丨cso进阶之路首次曝光

2014年2月27日,中央网络安全和信息化领导小组宣告成立。在这个小组的名字中,“网络安全”被放置在“信息化”的前面,标志着中国组织发展进入新时代,明确了以安全保发展、以发展促安全的新理念。在这一... 查看详情

每日一书|数据结构的python语言描述

...拓展视野。正基于此,2021年11月1日起,CSDN、《新程序员》推出“每日一书”栏目,为你推荐精选好书,助力你的开发工作如行云流水。在计算机科学中,数据结构是一门进阶性课程,概念抽 查看详情

每日一书|javascript经典「红宝书」,几代前端人的入门选择

...的翘楚,也是前端发展史的见证者。所以,很多程序员亲切地称它为JavaScript“红宝书”。当然也有一些初学者,听到“高级”二字就被吓退了,觉得这很难并不适合新手。但是其实这本书适用面很广,不管你... 查看详情

每日一书|领域特定语言:软件开发“教父“经典再现

...拓展视野。正基于此,2021年11月1日起,CSDN、《新程序员》推出“每日一书”栏目,为你推荐精选好书,助力你的开发工作如行云流水。作为程序员,我们学习了很多通用编程语言(GPL& 查看详情

每日一书|国内首本机器学习算法评估实战

...拓展视野。正基于此,2021年11月1日起,CSDN、《新程序员》推出“每日一书”栏目,为你推荐精选好书,助力你的开发工作如行云流水。在工作和学习的过程中,有两个经常困扰程序员的问题, 查看详情

每日一书|《算法设计》:算法入门之选

...拓展视野。正基于此,2021年11月1日起,CSDN、《新程序员》推出“每日一书”栏目,为你推荐精选好书,助力你的开发工作如行云流水。算法思想无处不在,在计算机科学和其他领域中的体现都很明显。因特 查看详情

每日一书|《分析模式》:只看一节,便拍案叫绝

...拓展视野。正基于此,2021年11月1日起,CSDN、《新程序员》推出“每日一书”栏目,为你推荐精选好书,助力你的开发工作如行云流水。《分析模式:可复用的对象模型》是老马(Marti 查看详情

每日一书|kubernetes权威指南:生态系统与演进路线

...拓展视野。正基于此,2021年11月1日起,CSDN、《新程序员》推出“每日一书”栏目,为你推荐精选好书,助力你的开发工作如行云流水。Kubernetes的快速演进大大推进了云计算技术的发展,伴随 查看详情

每日一书|动态类型一时爽,代码重构火葬场(代码片段)

...拓展视野。正基于此,2021年11月1日起,CSDN、《新程序员》推出“每日一书”栏目,为你推荐精选好书,助力你的开发工作如行云流水。构建可维护的代码C++之父BjarneStroustrup说 查看详情

每日一书|如何设计企业特色的数字化转型架构

...拓展视野。正基于此,2021年11月1日起,CSDN、《新程序员》推出“每日一书”栏目,为你推荐精选好书,助力你的开发工作如行云流水。数字化让我们利用数字技术来改变商业模式,改造企业流程ÿ 查看详情

每日一书|css新世界:专业讲解css新特性

...拓展视野。正基于此,2021年11月1日起,CSDN、《新程序员》推出“每日一书”栏目,为你推荐精选好书,助力你的开发工作如行云流水。张鑫旭,前端开发工程师,国内前端博客“鑫空间-鑫 查看详情

每日一书|python编程快速上手,让繁琐工作自动化

...拓展视野。正基于此,2021年11月1日起,CSDN、《新程序员》推出“每日一书”栏目,为你推荐精选好书,助力你的开发工作如行云流水。“在初学者的头脑中有很多可能性,在专家的头脑中, 查看详情

每日一书|世界上代码量很少的经典算法是什么样的?(代码片段)

...拓展视野。正基于此,2021年11月1日起,CSDN、《新程序员》推出“每日一书”栏目,为你推荐精选好书,助力你的开发工作如行云流水。代码越少,能力越强的“潜规则”在程序员中广为流传, 查看详情

每日一书|从开发一款游戏开始,揭鸿蒙app开发实战

...拓展视野。正基于此,2021年11月1日起,CSDN、《新程序员》推出“每日一书”栏目,为你推荐精选好书,助力你的开发工作如行云流水。2020年9月华为正式发布了鸿蒙操作系统(HarmonyOS& 查看详情