想要学好一门编程语言,到底该读什么书?

举报
xenia 发表于 2020/02/10 12:25:24 2020/02/10
【摘要】 如果有人问我,要想学好一门编程语言,应该阅读什么样的书籍呢?毫无疑问,在大多数场合下我都会向他推荐市面上最新出版的书籍。原因就是:以现在计算机领域内技术的发展速度,几乎是每隔一段时间,我们就需要对自己现有的知识进行更新,这样看来,使用一本比较新的书籍,里面的内容将会比较贴近当前技术的发展,因而也就能够让你更容易掌握你所要学的东西。但有一本讲述C语言的书,自出版以来,历经14载,它一直都被各个...

如果有人问我,要想学好一门编程语言,应该阅读什么样的书籍呢?毫无疑问,在大多数场合下我都会向他推荐市面上最新出版的书籍。原因就是:以现在计算机领域内技术的发展速度,几乎是每隔一段时间,我们就需要对自己现有的知识进行更新,这样看来,使用一本比较新的书籍,里面的内容将会比较贴近当前技术的发展,因而也就能够让你更容易掌握你所要学的东西。

但有一本讲述C语言的书,自出版以来,历经14载,它一直都被各个书评站点(或书评人)列入“重点推荐”的清单中。尤为夸张的是,14年来,在它的18次印刷版本中,除去第二次印刷稍微修改过一些问题,以后的16次印刷,我们居然发现它的内容没有丝毫的变更!!!对于技术书籍,我想其精确性与权威性也算是奇迹了吧。

这就是Andrew Koenig给我们带来的C Traps and Pitfalls(中文书名:《C陷阱与缺陷》)。在C/C++领域中,Andy(Andrew的呢称)的名字对于每个人来说绝对是如雷贯耳。作为一个知名的专栏作者,Andy(和他那位同样大名鼎鼎的妻子——Barbara Moo)已经在各类杂志上面发表了上百篇的杂志文章,给很多人在技术进步的道路上带来了极大的帮助。ACCU的Francis Glassborow对他的评价是:Andy是世界上最出色的几位C++专家之一。

本书是Andy的第一本技术书籍,其原始素材来自于Andy在1986所提交的同名的技术报告。在书中,作者针对C程序在编译、链接的过程中可能碰到的种种问题以及编译、运行环境对程序可能带来的影响等,列出了许多值得我们注意的地方。按照作者本人的观点,前人碰到过的问题来现身说法,可以帮助你避免那些一而再,再而三出现在你的程序中的问题。由于是以实例来描述作者(以及他人)所碰到过的具体问题,因此,此书少去了许多空洞无味的说教,虽然本书篇幅不大(原书正文只有区区147页),但实际上,它的每个小节,每一段都蕴含着作者(以及他人)大量的经验教训,都值得我们去仔细琢磨,经常温习。为此,Francis Glassborow说到:从我了解C语言开始,我就将它时时放在手边,经常翻阅。作者自己也在书中毫不谦虚地说:“如果你是一个程序员在开发中经常用到C语言,这本书应该成为你案头必备书籍。即使你已经是一个C语言的专家级程序员,仍然有必要拥有一本”。事实上,Andy并没有吹嘘,就书中所列出的种种问题,我本人也不止一次在自己的程序(也包括别人的程序)中发现它们的踪迹,而且有些问题出现得还极为频繁。这使我不禁就想到,要是我们能够早一些看到这本书上提及的问题,那岂不是可以省去很多开发时的除错时间……

可能有人会有疑问:从书名来看,它是一本讲述C语言的书籍,那么对于C++的学习者来说,它是不是也同样有价值呢?另外,现在C语言的最新ISO/ANSI标准文档C99都已经制订出来了,而作为一本在C89之前出版的C语言书籍,它的作用是否还和以前一样大呢?答案是肯定的。本书英文版连续18次印刷的事实就是有力的证明。实际上,C++在那个层面上和C的区别并不大,在C程序中常犯的错误通常在C++程序中也经常得以重现,因此,从这个角度来说,C语言中的陷阱也常常就是C++语言中的陷阱。此外,虽然最新的C99对于以前的K & R C有了一些变化,但在较低层次(如词法、语法)上,它们几乎是没有差别的。因此,对于本书中所有问题的讨论,几乎都可以适用于最新的ISO/ANSI C。

现在,人民邮电出版社翻译出版C Traps and Pitfalls一书,无疑是献给C和C++程序员的一份厚礼。我本人很荣幸能够担任此书的技术审校,为这本书中文版的出版尽一点绵薄的心力。感谢译者的辛勤劳动,也感谢出版社能够给我这样的机会!希望本书能够为你的学习带来一些帮助。

                                                                                                                       王昕

                                                                                                                    2002年8月



以上内容节选自《C陷阱与缺陷》

内容简介

本书适合有一定经验的C程序员阅读学习,即便你是C编程高手,《C和C++经典著作:C陷阱与缺陷》也应该成为你的案头必备书籍。作者以自己1985年在Bell实验室时发表的一篇论文为基础,结合自己的工作经验扩展成为这本对C程序员具有珍贵价值的经典著作。写作本书的出发点不是要批判C语言,而是要帮助C程序员绕过编程过程中的陷阱和障碍。本书分为8章,分别从词法分析、语法语义、连接、库函数、预处理器、可移植性缺陷等几个方面分析了C编程中可能遇到的问题。结尾,作者用一章的篇幅给出了若干具有实用价值的建议。


作者简介



Andrew Koenig

AT&T大规模程序研发部(前贝尔实验室)成员。他从1986年开始从事C语言的研究,1977年加入贝尔实验室。他编写了一些早期的类库,并在1988年组织召开了第一个相当规模的C++会议。在ISO/ANSI C++委员会成立的1989年,他就加入了该委员会,并一直担任项目编辑。他已经发表了C++方面的100多篇论文,在Addsion-Wesley出版了C Trap and Pitfalls,(《C陷阱与缺陷》)和Ruminations on C++(《C++沉思录》,人民邮电出版社)还应邀到世界各地演讲。

Andrew Koenig不仅有着多年的C++开发、研究和教学经验,而且还亲身参与了C++的演化和变革,对C++的变化和发展起到重要的影响。

作者说

我动笔写作《C缺陷与陷阱》时,可没想到14年后这本书仍然在印行!它之所以历久不衰,我想,可能是书中道出了C语言编程中一些重要的经验教训。就是到今天,这些教训也还没有广为人知。

C语言中那些容易导致人犯错误的特性,往往也正是编程老手们为之吸引的特性。因此,大多数程序员在成长为C编程高手的道路上,犯过的错误真是惊人地相似!只要C语言还能继续感召新的程序员投身其中,这些错误就还会一犯再犯。

大家通常读到的程序设计书籍中,那些作者总是认为,要成为一个优秀的程序员,最重要的无非是学习一种特定程序语言、函数库或者操作系统的细节,而且多多益善。当然,这种观念不无道理,但也有偏颇之处。其实,掌握细节并不难,一本索引丰富完备的参考书就已经足矣;最多,可能还需要一位稍有经验的同事不时从旁点拨,指明方向。难的是那些我们已经了解的东西,如何“运用之妙,存乎一心”。

学习哪些是不应该做的,倒不失为一条领悟运用之道的路子。程序设计语言,就比如说C吧,其中那些让精于编程者觉得称心应手之处,也格外容易误用;而经验丰富的老手,甚至可以如有“先见之明”般,指出他们误用的方式。研究一种语言中程序员容易犯错之处,不但可以“前车之覆,后车之鉴”,还能使我们更谙熟这种语言的深层运作机制。

知悉本书中文版即出,将面对更为广大的中国读者,我尤为欣喜。如果您正在读这本书,我真挚地希望,它能对您有所裨益,为您释疑解惑,让您体会编程之乐。

                                                                                                                 Andrew Koenig

                                                                                                               美国新泽西州吉列

                                                                                                                     2002年10月



本文转载自异步社区

原文链接:https://www.epubit.com/articleDetails?id=NC7E3EF913EE00001422317801BEAFAE0

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。