龙空技术网

15 年来,程序员升级打怪的路上,这些书始终与你并肩作战

图灵教育 105

前言:

现时朋友们对“数据结构与算法吕秀锋”可能比较重视,各位老铁们都需要了解一些“数据结构与算法吕秀锋”的相关内容。那么小编也在网上汇集了一些有关“数据结构与算法吕秀锋””的相关文章,希望咱们能喜欢,你们一起来了解一下吧!

2005 年,图灵公司的创立者们特意挑选 6 月 23 日这一天成立了北京图灵文化发展有限公司。1912 年的 6 月 23 日,英国出生了一位伟大的计算机先驱,他的名字叫阿兰·图灵。

图灵凭借两篇奠基性论文,成为计算机科学与人工智能的奠基人之一,被誉为“计算机科学之父”。图灵公司的创立者们希望站在巨人肩上,为读者提供用心的内容服务。

他们是技术的崇拜者,他们将“技术改变世界,阅读塑造人生” 的想法装进了图灵的每一本书里。他们期待,读者能够通过阅读学习新技术,通过新技术改变世界,“技术改变世界,阅读塑造人生” 由此形成一个闭环。

到 2020 年,图灵已经成立 15 周年了。15 年来,在无数读者、作译者及其他技术人士的支持和反馈下,图灵出版了不少优秀作品。其中不乏一些作品,更新迭代数年,始终与读者并肩成长。

通过这些作品,我们不止能看到技术的快速迭代与发展,也能看到自身及周边人的成长与蜕变。红宝书(《JavaScript高级程序设计》)的译者李松峰老师说:“红宝书影响深远,甚至改变了很多人的命运(包括我自己)。”我看到这句话感慨万千。我想,一本真正的好书,就是这样,能够影响无数人。期待图灵继续出版更多这样的书,也期待更多朋友能够通过阅读好书塑造自己的美丽人生。

以下,我们按照图书首版的出版时间(外版图书为中文版引入时间),来选几本比较有代表性的书聊一聊,并附上相关技术的背景简介。

红宝书

1995 年 12 月 4 日,网景与 Sun 联合发布了 JavaScript。当时的网景成立一年多,如日中天,被视为代表未来的互联网公司。没想到,在跟微软的第一次浏览器大战中,Netscape Navigator 败北。1998 年,网景被美国在线收购。JavaScript 成为网景留给程序员的最大一笔“遗产”。

目前,JavaScript 已经成为程序员最常使用的编程语言。关于 JavaScript,有一条知名的规则,叫 Atwood's Law:任何可用 JavaScript 编写的应用,最终必用 JavaScript 编写,这是 Stack Overflow 创始人之一 Jeff Atwood 提出的。

眼下,JavaScript 即将迎来 25 周岁生日,祝愿 JS 成为更多程序员的首选编程语言。

《JavaScript 高级程序设计》

作者:Nicholas Zakas(第 1~3 版)

   Matt Frisbie(第 4 版)

译者:张欣 曹力(第 1 版)

    曹力 李松峰(第 2 版)

    李松峰 曹力(第 3 版)

    李松峰(第 4 版)

总印数:36.2 万

高程被技术人士誉为“红宝书”,是一本见证前端技术发展与伴随前端人士成长的经典作品。

英文版首版出版于 2005 年,作者为 Nicholas Zakas。这一年,图灵刚创立,就引入了红宝书。第二年(也就是 2006 年 9 月),红宝书中文版第 1 版出版。

而英文版第 1 版,又脱胎于 Nigel McFarlane 等人在 1999 年写的 Professional JavaScript with DHTML, ASP, CGI, FESI, Netscape Enterprise Server, Windows Script Host, LiveConnect and Java。从书名里可以看到,那时候的 JavaScript 辐射范围还不够广,书名里还贴上了一堆东西,包括 Java。

Nigel McFarlane 如今已经故去,而红宝书的第二代掌门人 Zakas 也因为健康问题,将第 4 版的权杖移交给了 Matt Frisbie。

在红宝书英文版各个版本出版之后的一年时间以内,图灵就引进出版了中文版。这四个版本的中文版,共有三位译者参与了翻译:李松峰、曹力、张欣,感谢他们为中文版出版付出的心血。

红宝书中文版从第 1 版引入版权到最新版第 4 版出版,正好 15 年——见证了图灵作为技术出版品牌走过的 15 年。

SQL 必知必会

1970 年 6 月,IBM 研究员 Edgar Codd 在《ACM 通讯》上发表知名论文 “A Relational Model of Data for Large Shared Data Banks”,提出了关系模型这一软件领域的里程碑式概念。SQL 于 1986 年成为 ANSI 标准,1987 年成为 ISO 标准。SQL 是最早利用关系模型的商业语言之一,也是如今使用最广泛的数据库语言。

《SQL 必知必会》

作者:Ben Forta

译者:钟鸣 刘晓霞

总印数:17.9 万

“必知必会”是国外的一个叫 Sams Teach Yourself SQL in 10 Minutes 的系列图书,篇幅极为短小,力求以最精简的语言与示例,用最简洁的方式把一个概念讲出来。

这系列还挺受读者欢迎,你可以把它当成一个口袋手册,对于初学者快速了解领域内相关知识提供了极大的便利。图灵从第 3 版开始引入,2007 年首次出版中文版第 3 版,2020 年更新到了第 5 版。

C 现代方法

C 语言脱胎于 Unix 操作系统,由贝尔实验室的 Dennis Ritchie 在 1972 年到 1973 年之间设计,并由 Dennis Ritchie 和 Ken Thompson 实现。20 世纪 80 年代,C 语言逐渐开始风靡世界,到如今已经四十载。

1978 年,BWK 和 Dennis Ritchie 出版知名作品《C程序设计语言》,其中描述了 K & R 规范,在随后的多年成为 C 语言的非正式规范。

C 语言标准的两个比较重要的版本是 C99 和C11。C 语言标准化委员会于 1999 年发布了 C99,在 C99 基础上,又在 2011 年发布了 C11。

C 程序犹如拿着剃刀在刚打过蜡的地板上劲舞。——Waldi Ravens

《C程序设计语言》

作者:K.N.King

译者:吕秀锋 黄倩

总印数:10.2 万

有一类书,它不是最畅销的书。跟同类书相比,它的作者在读者心中也没那么知名,但是书的品质却出乎意料得好,在一部分读者心中堪称不可撼动的神级作品。《C语言程序设计:现代方法》就属于这样一本书。中文版第 2 版于 2010 年出版,到如今已畅销 10 年之久。C语言的规范一直在更新,但本书始终可以做到让读者常读常新。

豆瓣读者“凝霜”评论道:如果我只能保留一本C语言图书的话,那我会毫不犹豫地选择本书,甚至《C陷阱与缺陷》都不能撼动其在我内心中的地位。纵然现在使用C++,很少再关注C,但每当有人问我推荐C书籍的时候,我总是推荐本书。

基础教程与蟒蛇书

1989 年的圣诞节,Guido van Rossum 为自己定了个小目标:设计一门替代 ABC 的语言。1991 年 2 月 20 日,Python 0.9.0 版本正式发布。2000 年 10 月,Python 2.0 发布。2008 年 12 月,Python 3.0 发布。Python 3 与 Python 2 不兼容,让这门语言显得比其他语言更有“特色”。因在 AI 时代的飞速崛起,Python 如今被大家看作处于风口的编程语言。

传说,“人生苦短,我用 Python”这句名言,最开始是 Java 大佬 Bruce Eckel 说的(Life is short, you need Python),因为 Guido 在大会上经常穿一件顶着这句名言的 T 恤,而为开发者熟知。

《Python基础教程》

作者:Magnus Lie Hetland

译者:司维 曾军崴 谭颖华(第2版)

   袁国忠(第3版)

总印数:34.9 万

《Python编程:从入门到实践》

作者:Eric Matthes

译者:袁国忠

总印数:88.3 万

在《Python编程:从入门到实践》出版之前,《Python基础教程》一直是大家学习 Python 的首选图书。因为更适合零基础初学者学习,前者出版之后,迅速获得了大批读者的青睐,成为口碑最好的 Python 入门书。

而《Python基础教程》读者依然不减,不过我们更推荐具有其他编程语言基础的读者使用这本书来入门 Python,或者初学者读完“入门”,使用“基础教程”一书作为巩固。这本书中优秀的案例项目,一直为广大开发者所推崇。

算法

Pascal 的设计始于 1968 年 9 月,于 1970 年 1 月首次发布,设计者为 Niklaus Wirth。Wirth 有一句关于算法和数据结构重要性的名言:Algorithms + Data Structures = Programs,广为流传。

20 世纪 80 年代,在贝尔实验室工作的 Bjarne Stroustrup 发明了 C++。Stroustrup 曾经说, 自己“发明了 C++,写下了它的早期定义并做出了首个实现……选择制定了 C++ 的设计标准,设计了 C++ 主要的辅助支持环境,而且负责处理 C++ 标准委员会的扩展提案。”(引自维基)

1995 年 5 月 23 日,Sun 在 Sun World '95 大会上公开发布了 Java。Java 之父 James Gosling 说:对于开发者来说,Java 看上去像是 C++,但是,其实 Java 还大量吸收了 Lisp、Smalltalk 以及 Pascal 的特点。我们想要的就是将这些因子平滑地组合在一起。

《算法》(第4版)

作者:Robert Sedgewick , Kevin Wayne

译者:谢路云

总印数:22.5 万

Algorithms 系列图书的初始版本可以追溯到 1983 年,这是我们今天谈到的系列图书中,出版迭代持续时间第二长的一本书了(第一长的书大家都知道,后面还会聊)。

当时,这本书采用的示例代码是 Pascal。1988 年,Sedgewick 更新了一个版本,依然是 Pascal。接下来,从 1997 到 2003 年,Sedgewick 搞了个大工程,第 3 版的 Algorithms,先后出了 C 语言、C++ 和 Java 版。2011 年,Sedgewick 跟 Kevin Wayne 将其升级为 Algorithms,4E(这个版本的纸质版只保留了 Java 版,其他语言示例为网上提供),也是现如今在世界范围内最受欢迎的学院派算法图书。

《算法(第4版)》既具备学院派的严谨,同时做到了通俗易懂、图文并茂、深入浅出,还在配套网站上给出了视频教学和部分习题的解法,已经成为世界范围内读者学习算法的首选图书。

Sedgewick 是高德纳的学生,目前任普林斯顿大学计算机科学教授。师徒两人一个写《计算机程序设计艺术》,1962 年开始动笔,如今 82 岁了,还有多卷本在未来的写作计划里。一个写《算法》,28 年更新了四个版本,使之成为算法领域惠及最多普通读者的经典作品。

第一行代码

2003 年 10 月,Andy Rubin 创建 Android Inc. ,一开始想为数码相机开发一个移动操作系统,后发现市场太小,于是将 Android 定位为手机操作系统,与 Symbian 和 Windows Mobile 同台竞技。

2005 年 7 月,Android Inc. 被谷歌收购。2007 年 11 月 5 日,Android beta 版公开发布。

自 2011 年以来, Android 稳居全球智能手机最畅销操作系统。

《第一行代码》

作者:郭霖

总印数:29.5 万

2013 年 3 月,郭霖开始在 CSDN 上发表 Android 相关技术博文,很快就获得了大量网友的好评,在一年左右的时间里,博客访问量超过 50 万次。年底,郭霖获 CSDN 年度十大博客之星称号。

2014 年 7 月,第一行代码首版出版,获得读者大量好评。自此之后,第一行代码就成为读者入门 Android 的不二之选。

2016 年,第 2 版基于 Android 7.0、Android Studio 2.2 全新升级。

2016 年 2 月,Kotlin 首个稳定版发布。2017,谷歌在 Google I/O 2017 大会上宣布,在 Android 上为 Kotlin 提供最佳支持。

2020 年初,《第一行代码(第3版)》出版,基于 Android 10.0 进行了全面更新,同时加入 Kotlin 语言的全面讲解。

《第一行代码》的出版见证了移动开发从爆发期到成熟期的发展。技术世界日新月异,读者对技术图书主题相当敏感。因此,畅销技术图书的主题跟技术发展的火爆程度基本是吻合的。

TAOCP

TAOCP 系列是对经典计算机科学的权威论述,是科学史上最重要的著作之一,与相对论、博弈论、量子力学等比肩。

《计算机程序设计艺术》

作者:高德纳

《卷1:基本算法》(第3版

译者:李伯民 范明 蒋爱军

《卷2:半数值算法》(第3版)

译者:巫斌 范明

《卷3:排序与查找》(第2版)

译者:贾洪峰

《卷4A:组合算法(一)》

译者:李伯民 贾洪峰

《MMIX增补》

译者:江志强 黄志斌

总印数:9.4 万(含英文版)

1962 年 1 月,还在读研究生的高德纳收到出版商 Addison-Wesley 的著书邀请,请他写一本关于编译器设计的书。高德纳自己提出了一个更大范围的写作主题,并于 1965 年 6 月完成了 3000 页手写稿。据说这就是 TAOCP 前 3 卷的初稿。后来,高德纳的写作内容继续扩充,有了如今的 7 卷本计划。前三卷分别于 1968 年、1969 年和 1973 年出版。

1976 年,高德纳在给卷 2 写升级版的时候,由于无法忍受出版圈的排版系统,转身发明了新的排版系统 Tex。

1993 年,高德纳退休,以便专心致志地创作 TAOCP 。

高德纳除了编写 7 卷本中还未出版的内容,还同时维护升级已经出版的几卷本,并为发现书中错误的朋友寄送奖励支票(图灵社区知名 ID 黄志斌和空军都晒过自己的多封奖励信)。

TAOCP 的中文版出版工作是一项耗时且难度极大的工作,感谢李伯民、范明、 蒋爱军、巫斌、贾洪峰、江志强、黄志斌这些了不起的译者们(按照翻译卷本顺序列出)。

编程日历

除了上面这些受广大读者喜爱的图书,下面也聊一聊这款读者不多,却让大家印象比较深刻的作品。这个系列就是图灵编程日历,目前已经做了 3 年(可以认为迭代了 3 个版本),而我们期待未来这款产品可以跟大家持续共同成长。这个系列的内核,我想暂且可以使用“致敬自由 | 开放 | 共享之精神”来概括。

作者:Sneezry

总印数:9000

2018 年图灵携手 Sneezry 为大家打造了一款编程日历,名为 Happy Hacking 2018。当时是作为周边出现的,内容集结了 52 种编程语言,用代码打印输出每周第一天的日期。日历颇受读者欢迎,形式为翻页台历。2019 年,图灵就这个主题,推出了三个颜色的台历(黑、红、灰),形式为撕页式。今年,图灵扩大了主题范围,将编程语言线扩大为四条线(编程语言、人工智能、个人计算机、互联网),辐射 IT 史上核心大事件,做成了日历,形式为精装图书,书名为《了不起的程序员 2021》。

前两年的日历是作为台式周历出现的,而且是一款周边,并没有做成书。回忆起来,收到了读者小伙伴的一致好评。今年的日历做成了精装书,说实话,收获的并不是一致好评——大部分朋友,不论是装帧还是内容,都特别喜欢(赞了又赞);但是还有一些朋友认为做成翻页台历,他们会更喜欢;另有一小撮朋友,接受不了精装书形式的日历。我之前聊过这个话题,精装书形式的日历是非常主流的日历形式,方便翻阅、收藏、记录。

大家各取所爱就好。

不止以上这些书,也不止图灵出版的图书,哪怕有一本书曾经深刻地影响过你,作为出版人,我们是如此荣幸。在西方世界,今天要对心怀感激的人说声“谢谢”。我们借机表达一下(爱你在心口要开):感恩有你,最亲爱的读者、作译者,以及千千万万的技术人士!正如编程日历的扉页:

谨以此书,献给每一位程序员,

你的每一次“小步快跑”,最终影响了我们的生活。

同时,献给所有秉持自由、开放和共享精神的人,今天科技带给普通人的福泽,正是这一精神最大的体现。

哪本书曾经深刻地影响过你?

欢迎留言区分享你的故事。

标签: #数据结构与算法吕秀锋