15 年來, 程序員升級打怪的路上,這些書始終與你并肩作戰(zhàn)

2005 年,圖靈公司的創(chuàng)立者們特意挑選 6 月 23 日這一天成立了北京圖靈文化發(fā)展有限公司。1912 年的 6 月 23 日,英國出生了一位偉大的計(jì)算機(jī)先驅(qū),他的名字叫阿蘭·圖靈。
圖靈憑借兩篇奠基性論文,成為計(jì)算機(jī)科學(xué)與人工智能的奠基人之一,被譽(yù)為“計(jì)算機(jī)科學(xué)之父”。圖靈公司的創(chuàng)立者們希望站在巨人肩上,為讀者提供用心的內(nèi)容服務(wù)。
他們是技術(shù)的崇拜者,他們將“技術(shù)改變世界,閱讀塑造人生” 的想法裝進(jìn)了圖靈的每一本書里。他們期待,讀者能夠通過閱讀學(xué)習(xí)新技術(shù),通過新技術(shù)改變世界,“技術(shù)改變世界,閱讀塑造人生”?由此形成一個(gè)閉環(huán)。
到 2020 年,圖靈已經(jīng)成立 15 周年了。15 ?年來,在無數(shù)讀者、作譯者及其他技術(shù)人士的支持和反饋下,圖靈出版了不少優(yōu)秀作品。其中不乏一些作品,更新迭代數(shù)年,始終與讀者并肩成長。通過這些作品,我們不止能看到技術(shù)的快速迭代與發(fā)展,也能看到自身及周邊人的成長與蛻變。紅寶書(《JavaScript高級程序設(shè)計(jì)》)的譯者李松峰老師說:“紅寶書影響深遠(yuǎn),甚至改變了很多人的命運(yùn)(包括我自己)。”我看到這句話感慨萬千。我想,一本真正的好書,就是這樣,能夠影響無數(shù)人。期待圖靈繼續(xù)出版更多這樣的書,也期待更多朋友能夠通過閱讀好書塑造自己的美麗人生。
以下,我們按照圖書首版的出版時(shí)間(外版圖書為中文版引入時(shí)間),來選幾本比較有代表性的書聊一聊,并附上相關(guān)技術(shù)的背景簡介。
紅寶書
1995 年 12 月 4 日,網(wǎng)景與 Sun 聯(lián)合發(fā)布了 JavaScript。當(dāng)時(shí)的網(wǎng)景成立一年多,如日中天,被視為代表未來的互聯(lián)網(wǎng)公司。沒想到,在跟微軟的第一次瀏覽器大戰(zhàn)中,Netscape Navigator 敗北。1998 年,網(wǎng)景被美國在線收購。JavaScript 成為網(wǎng)景留給程序員的最大一筆“遺產(chǎn)”。
目前,JavaScript 已經(jīng)成為程序員最常使用的編程語言。關(guān)于 JavaScript,有一條知名的規(guī)則,叫 Atwood's Law:任何可用 JavaScript 編寫的應(yīng)用,最終必用 JavaScript 編寫,這是 Stack Overflow 創(chuàng)始人之一 Jeff Atwood 提出的。?
眼下,JavaScript 即將迎來 25 周歲生日,祝愿 JS 成為更多程序員的首選編程語言。

《JavaScript 高級程序設(shè)計(jì)》
作者:Nicholas Zakas(第 1~3 版)
???Matt Frisbie(第 4 版)
譯者:張欣 ?曹力(第 1 版)
????曹力? 李松峰(第 2 版)
????李松峰? 曹力(第 3 版)
????李松峰(第 4 版)
總印數(shù):36.2 萬
高程被技術(shù)人士譽(yù)為“紅寶書”,是一本見證前端技術(shù)發(fā)展與伴隨前端人士成長的經(jīng)典作品。
英文版首版出版于 2005 年,作者為 Nicholas Zakas。這一年,圖靈剛創(chuàng)立,就引入了紅寶書。第二年(也就是 2006 年 9 月),紅寶書中文版第 1 版出版。
而英文版第 1 版,又脫胎于 Nigel McFarlane 等人在 1999 年寫的?Professional JavaScript with DHTML, ASP, CGI, FESI, Netscape Enterprise Server, Windows Script Host, LiveConnect and Java。從書名里可以看到,那時(shí)候的 JavaScript 輻射范圍還不夠廣,書名里還貼上了一堆東西,包括 Java。
Nigel McFarlane 如今已經(jīng)故去,而紅寶書的第二代掌門人 Zakas 也因?yàn)榻】祮栴},將第 4 版的權(quán)杖移交給了 Matt Frisbie。
在紅寶書英文版各個(gè)版本出版之后的一年時(shí)間以內(nèi),圖靈就引進(jìn)出版了中文版。這四個(gè)版本的中文版,共有三位譯者參與了翻譯:李松峰、曹力、張欣,感謝他們?yōu)橹形陌娉霭娓冻龅男难?/p>
紅寶書中文版從第 1 版引入版權(quán)到最新版第 4 版出版,正好 15 年——見證了圖靈作為技術(shù)出版品牌走過的 15 年。

SQL 必知必會
1970 年 6 月,IBM 研究員 Edgar Codd 在《ACM 通訊》上發(fā)表知名論文 “A Relational Model of Data for Large Shared Data Banks”,提出了關(guān)系模型這一軟件領(lǐng)域的里程碑式概念。SQL 于 1986 年成為 ANSI 標(biāo)準(zhǔn),1987 年成為 ISO 標(biāo)準(zhǔn)。SQL 是最早利用關(guān)系模型的商業(yè)語言之一,也是如今使用最廣泛的數(shù)據(jù)庫語言。

《SQL 必知必會》
作者:Ben Forta
譯者:鐘鳴 ?劉曉霞
總印數(shù):17.9 萬?
“必知必會”是國外的一個(gè)叫 Sams Teach Yourself SQL in 10 Minutes 的系列圖書,篇幅極為短小,力求以最精簡的語言與示例,用最簡潔的方式把一個(gè)概念講出來。這系列還挺受讀者歡迎,你可以把它當(dāng)成一個(gè)口袋手冊,對于初學(xué)者快速了解領(lǐng)域內(nèi)相關(guān)知識提供了極大的便利。圖靈從第 3 版開始引入,2007 年首次出版中文版第 3 版,2020 年更新到了第 5 版。

C?現(xiàn)代方法
C 語言脫胎于 Unix 操作系統(tǒng),由貝爾實(shí)驗(yàn)室的 Dennis Ritchie 在 1972 年到 1973 年之間設(shè)計(jì),并由 Dennis Ritchie 和 Ken Thompson 實(shí)現(xiàn)。20 世紀(jì) 80 年代,C 語言逐漸開始風(fēng)靡世界,到如今已經(jīng)四十載。
1978 年,BWK 和 Dennis Ritchie 出版知名作品《C程序設(shè)計(jì)語言》,其中描述了 ?K & R 規(guī)范,在隨后的多年成為 C 語言的非正式規(guī)范。
C 語言標(biāo)準(zhǔn)的兩個(gè)比較重要的版本是 C99 和C11。C 語言標(biāo)準(zhǔn)化委員會于 1999 年發(fā)布了 C99,在 C99 基礎(chǔ)上,又在 2011 年發(fā)布了 C11。C 程序猶如拿著剃刀在剛打過蠟的地板上勁舞?!猈aldi Ravens

《C程序設(shè)計(jì)語言》
作者:K.N.King
譯者:呂秀鋒 黃倩
總印數(shù):10.2?
萬有一類書,它不是最暢銷的書。跟同類書相比,它的作者在讀者心中也沒那么知名,但是書的品質(zhì)卻出乎意料得好,在一部分讀者心中堪稱不可撼動的神級作品。
《C語言程序設(shè)計(jì):現(xiàn)代方法》就屬于這樣一本書。中文版第 2 版于 2010 年出版,到如今已暢銷 10 年之久。C語言的規(guī)范一直在更新,但本書始終可以做到讓讀者常讀常新。
豆瓣讀者“凝霜”評論道:如果我只能保留一本C語言圖書的話,那我會毫不猶豫地選擇本書,甚至《C陷阱與缺陷》都不能撼動其在我內(nèi)心中的地位??v然現(xiàn)在使用C++,很少再關(guān)注C,但每當(dāng)有人問我推薦C書籍的時(shí)候,我總是推薦本書。

基礎(chǔ)教程與蟒蛇書
1989 年的圣誕節(jié),Guido van Rossum 為自己定了個(gè)小目標(biāo):設(shè)計(jì)一門替代 ABC 的語言。1991 年 2 月 20 日,Python 0.9.0 版本正式發(fā)布。2000 年 10 月,Python 2.0 發(fā)布。2008 年 12 月,Python 3.0 發(fā)布。Python 3 與 Python 2 不兼容,讓這門語言顯得比其他語言更有“特色”。因在 AI 時(shí)代的飛速崛起,Python 如今被大家看作處于風(fēng)口的編程語言。
傳說,“人生苦短,我用 Python”這句名言,最開始是 Java 大佬 Bruce Eckel 說的(Life is short, you need Python),因?yàn)?Guido 在大會上經(jīng)常穿一件頂著這句名言的 T 恤,而為開發(fā)者熟知。

《Python基礎(chǔ)教程》作者:Magnus Lie Hetland
譯者:司維 ?曾軍崴 ?譚穎華(第2版)
???袁國忠(第3版)
總印數(shù):34.9 萬《Python編程:從入門到實(shí)踐》
作者:Eric Matthes
譯者:袁國忠
總印數(shù):88.3 萬
在《Python編程:從入門到實(shí)踐》出版之前,《Python基礎(chǔ)教程》一直是大家學(xué)習(xí) Python 的首選圖書。因?yàn)楦m合零基礎(chǔ)初學(xué)者學(xué)習(xí),前者出版之后,迅速獲得了大批讀者的青睞,成為口碑最好的 Python 入門書。
而《Python基礎(chǔ)教程》讀者依然不減,不過我們更推薦具有其他編程語言基礎(chǔ)的讀者使用這本書來入門 Python,或者初學(xué)者讀完“入門”,使用“基礎(chǔ)教程”一書作為鞏固。這本書中優(yōu)秀的案例項(xiàng)目,一直為廣大開發(fā)者所推崇。

算法
Pascal 的設(shè)計(jì)始于 1968 年 9 月,于 1970 年 1 月首次發(fā)布,設(shè)計(jì)者為 Niklaus Wirth。Wirth 有一句關(guān)于算法和數(shù)據(jù)結(jié)構(gòu)重要性的名言:Algorithms + Data Structures = Programs,廣為流傳。
20 世紀(jì) 80 年代,在貝爾實(shí)驗(yàn)室工作的 Bjarne Stroustrup 發(fā)明了 C++。Stroustrup 曾經(jīng)說, 自己“發(fā)明了 C++,寫下了它的早期定義并做出了首個(gè)實(shí)現(xiàn)……選擇制定了 C++ 的設(shè)計(jì)標(biāo)準(zhǔn),設(shè)計(jì)了 C++ 主要的輔助支持環(huán)境,而且負(fù)責(zé)處理 C++ 標(biāo)準(zhǔn)委員會的擴(kuò)展提案?!保ㄒ跃S基)
1995 年 5 月 23 日,Sun 在 Sun World '95 大會上公開發(fā)布了 Java。Java 之父 James Gosling 說:對于開發(fā)者來說,Java 看上去像是 C++,但是,其實(shí) Java 還大量吸收了 Lisp、Smalltalk 以及 Pascal 的特點(diǎn)。我們想要的就是將這些因子平滑地組合在一起。

《算法》(第4版)
作者:Robert Sedgewick , Kevin Wayne
譯者:謝路云
總印數(shù):22.5 萬
Algorithms 系列圖書的初始版本可以追溯到 1983 年,這是我們今天談到的系列圖書中,出版迭代持續(xù)時(shí)間第二長的一本書了(第一長的書大家都知道,后面還會聊)。當(dāng)時(shí),這本書采用的示例代碼是 Pascal。1988 年,Sedgewick 更新了一個(gè)版本,依然是 Pascal。接下來,從 1997 到 2003 年,Sedgewick 搞了個(gè)大工程,第 3 版的 Algorithms,先后出了 C 語言、C++ 和 Java 版。2011 年,Sedgewick 跟 Kevin Wayne 將其升級為 Algorithms,4E(這個(gè)版本的紙質(zhì)版只保留了 Java 版,其他語言示例為網(wǎng)上提供),也是現(xiàn)如今在世界范圍內(nèi)最受歡迎的學(xué)院派算法圖書?!端惴ǎǖ?版)》既具備學(xué)院派的嚴(yán)謹(jǐn),同時(shí)做到了通俗易懂、圖文并茂、深入淺出,還在配套網(wǎng)站上給出了視頻教學(xué)和部分習(xí)題的解法,已經(jīng)成為世界范圍內(nèi)讀者學(xué)習(xí)算法的首選圖書。Sedgewick 是高德納的學(xué)生,目前任普林斯頓大學(xué)計(jì)算機(jī)科學(xué)教授。師徒兩人一個(gè)寫《計(jì)算機(jī)程序設(shè)計(jì)藝術(shù)》,1962 年開始動筆,如今 82 歲了,還有多卷本在未來的寫作計(jì)劃里。一個(gè)寫《算法》,28 年更新了四個(gè)版本,使之成為算法領(lǐng)域惠及最多普通讀者的經(jīng)典作品。

第一行代碼
2003 年 10 月,Andy Rubin 創(chuàng)建 Android Inc. ,一開始想為數(shù)碼相機(jī)開發(fā)一個(gè)移動操作系統(tǒng),后發(fā)現(xiàn)市場太小,于是將 Android 定位為手機(jī)操作系統(tǒng),與 Symbian 和 Windows Mobile 同臺競技。
2005 年 7 月,Android Inc. 被谷歌收購。2007 年 11 月 5 日,Android beta 版公開發(fā)布。
自 2011 年以來, Android 穩(wěn)居全球智能手機(jī)最暢銷操作系統(tǒng)。

《第一行代碼》
作者:郭霖
總印數(shù):29.5 萬
2013 年 3 月,郭霖開始在 CSDN 上發(fā)表 Android 相關(guān)技術(shù)博文,很快就獲得了大量網(wǎng)友的好評,在一年左右的時(shí)間里,博客訪問量超過 50 萬次。年底,郭霖獲 CSDN 年度十大博客之星稱號。
2014 年 7 月,第一行代碼首版出版,獲得讀者大量好評。自此之后,第一行代碼就成為讀者入門 Android 的不二之選。
2016 年,第 2 版基于 Android 7.0、Android Studio 2.2 全新升級。2016 年 2 月,Kotlin 首個(gè)穩(wěn)定版發(fā)布。
2017,谷歌在 Google I/O 2017 大會上宣布,在 Android 上為 Kotlin 提供最佳支持。2020 年初,《第一行代碼(第3版)》出版,基于 Android 10.0 進(jìn)行了全面更新,同時(shí)加入 Kotlin 語言的全面講解。
《第一行代碼》的出版見證了移動開發(fā)從爆發(fā)期到成熟期的發(fā)展。技術(shù)世界日新月異,讀者對技術(shù)圖書主題相當(dāng)敏感。因此,暢銷技術(shù)圖書的主題跟技術(shù)發(fā)展的火爆程度基本是吻合的。

TAOCP
TAOCP 系列是對經(jīng)典計(jì)算機(jī)科學(xué)的權(quán)威論述,是科學(xué)史上最重要的著作之一,與相對論、博弈論、量子力學(xué)等比肩。

《計(jì)算機(jī)程序設(shè)計(jì)藝術(shù)》
作者:高德納
《卷1:基本算法》(第3版)
譯者:李伯民 ?范明 ?蔣愛軍
《卷2:半數(shù)值算法》(第3版)
譯者:巫斌 ?范明《
卷3:排序與查找》(第2版)
譯者:賈洪峰
《卷4A:組合算法(一)》
譯者:李伯民 ? 賈洪峰
《MMIX增補(bǔ)》
譯者:江志強(qiáng) ?黃志斌
總印數(shù):9.4 萬(含英文版)
1962 年 1 月,還在讀研究生的高德納收到出版商 Addison-Wesley 的著書邀請,請他寫一本關(guān)于編譯器設(shè)計(jì)的書。高德納自己提出了一個(gè)更大范圍的寫作主題,并于 1965 年 6 月完成了 3000 頁手寫稿。據(jù)說這就是 TAOCP 前 3 卷的初稿。后來,高德納的寫作內(nèi)容繼續(xù)擴(kuò)充,有了如今的 7 卷本計(jì)劃。前三卷分別于 1968 年、1969 年和 1973 年出版。
1976 年,高德納在給卷 2 寫升級版的時(shí)候,由于無法忍受出版圈的排版系統(tǒng),轉(zhuǎn)身發(fā)明了新的排版系統(tǒng) Tex。
1993 年,高德納退休,以便專心致志地創(chuàng)作 TAOCP 。
高德納除了編寫 7 卷本中還未出版的內(nèi)容,還同時(shí)維護(hù)升級已經(jīng)出版的幾卷本,并為發(fā)現(xiàn)書中錯(cuò)誤的朋友寄送獎(jiǎng)勵(lì)支票(圖靈社區(qū)知名 ID 黃志斌和空軍都曬過自己的多封獎(jiǎng)勵(lì)信)。
TAOCP 的中文版出版工作是一項(xiàng)耗時(shí)且難度極大的工作,感謝李伯民、范明、?蔣愛軍、巫斌、賈洪峰、江志強(qiáng)、黃志斌這些了不起的譯者們(按照翻譯卷本順序列出)。

編程日歷
除了上面這些受廣大讀者喜愛的圖書,下面也聊一聊這款讀者不多,卻讓大家印象比較深刻的作品。這個(gè)系列就是圖靈編程日歷,目前已經(jīng)做了 3 年(可以認(rèn)為迭代了 3 個(gè)版本),而我們期待未來這款產(chǎn)品可以跟大家持續(xù)共同成長。這個(gè)系列的內(nèi)核,我想暫且可以使用“致敬自由 | 開放 | 共享之精神”來概括。

作者:Sneezry
總印數(shù):9000?
2018 年圖靈攜手 Sneezry 為大家打造了一款編程日歷,名為 Happy Hacking 2018。當(dāng)時(shí)是作為周邊出現(xiàn)的,內(nèi)容集結(jié)了 52 種編程語言,用代碼打印輸出每周第一天的日期。日歷頗受讀者歡迎,形式為翻頁臺歷。2019 年,圖靈就這個(gè)主題,推出了三個(gè)顏色的臺歷(黑、紅、灰),形式為撕頁式。今年,圖靈擴(kuò)大了主題范圍,將編程語言線擴(kuò)大為四條線(編程語言、人工智能、個(gè)人計(jì)算機(jī)、互聯(lián)網(wǎng)),輻射 IT 史上核心大事件,做成了日歷,形式為精裝圖書,書名為《了不起的程序員 2021》。
前兩年的日歷是作為臺式周歷出現(xiàn)的,而且是一款周邊,并沒有做成書?;貞浧饋恚盏搅俗x者小伙伴的一致好評。今年的日歷做成了精裝書,說實(shí)話,收獲的并不是一致好評——大部分朋友,不論是裝幀還是內(nèi)容,都特別喜歡(贊了又贊);但是還有一些朋友認(rèn)為做成翻頁臺歷,他們會更喜歡;另有一小撮朋友,接受不了精裝書形式的日歷。我之前聊過這個(gè)話題,精裝書形式的日歷是非常主流的日歷形式,方便翻閱、收藏、記錄。
大家各取所愛就好。

不止以上這些書,也不止圖靈出版的圖書,哪怕有一本書曾經(jīng)深刻地影響過你,作為出版人,我們是如此榮幸。在西方世界,今天要對心懷感激的人說聲“謝謝”。我們借機(jī)表達(dá)一下(愛你在心口要開):感恩有你,最親愛的讀者、作譯者,以及千千萬萬的技術(shù)人士!正如編程日歷的扉頁:
謹(jǐn)以此書,獻(xiàn)給每一位程序員,
?你的每一次“小步快跑”,最終影響了我們的生活。
同時(shí),獻(xiàn)給所有秉持自由、開放和共享精神的人,
今天科技帶給普通人的福澤,正是這一精神最大的體現(xiàn)。
哪本書曾經(jīng)深刻地影響過你?
歡迎留言區(qū)分享你的故事。