知名著者結城浩:堅持做一件事而不厭倦,一旦厭倦馬上更換目標(圖靈訪談)

劉敏ituring發表於2016-06-08

結城浩(Hiroshi Yuki)

1963年出生,居住於東京都武藏野,有兩個兒子。職業為程式設計師(應該是自由職業)、技術作家、虔誠的新教教徒,對傳教很熱心。喜愛語言文字、讀書(宗教、小說、科普類)、巴洛克音樂。

知名著者結城浩:堅持做一件事而不厭倦,一旦厭倦馬上更換目標(圖靈訪談)

結城浩先生自己設計的“Thread妖怪娃娃”,作為自己的標誌。

1993年出版了第一本書《C語言程式設計精華》,至今為止共計出版圖書44種(含修訂版),主要包括:

  • C語言:8種

  • Perl:4種

  • Java:11種

  • 密碼學:3種

  • 數學:3種

  • 《數學女孩》系列:12種

目前依舊在寫網路連載《數學女孩的祕密筆記》,連結地址https://cakes.mu/series/339,這個系列已經出了7本單行本。

2013年至2015年,在《Software Design》雜誌上連載專欄《再發現的思考法》,從一些技術術語中找到新發現,連結地址http://www.hyuki.com/discover/

編者的話:

結城浩先生接到圖靈訪談的邀請後,第一時間接受了訪談。回答讀者提問的過程中,還不時就訪談問題進行溝通交流,讓人感到滿滿的認真負責。編者認為,結城浩先生一定是一位漫畫裡走出來的、溫暖的人吧~

日文版連結

關於寫作和出版

圖靈訪談:您20多年的時間裡總共出版了40多本圖書,平均一年兩本,而且內容和形式非常多樣。除此之外,還要寫網路和雜誌專欄。您認為自己算不算是一個“高產”的作家?您如此高產的祕訣是什麼?

結城浩:其實也沒有什麼祕訣。我本來就很喜歡寫作,或者說喜歡將自己的思想用文字表達出來。因此,我並沒有刻意地去想著要多寫幾本書或者是要當一個“高產”的作家,我只是堅持做自己喜歡的事而已。我的性格里有兩個看似矛盾的方面:一個是“長期堅持做同一件事而不感到厭倦”,另一個是“一旦感到厭倦了,馬上換新的目標”。也許,這兩點對我的“高產”有一定的貢獻吧。

圖靈訪談:您在網站上說“我一直在寫新書”,能透露一下現在在寫的新書是關於哪方面的嗎?您還有很多書沒有和中國讀者見面,您希望推薦給中國讀者的下一本書是什麼?

結城浩:現在(2016年6月)我正在寫的書有兩本,一本是《數學女孩》系列的第6本——《數學女孩6》,另一本是《數學女孩的祕密筆記》系列的第8本——《數學女孩的祕密筆記:簡單的統計》,其中《祕密筆記》應該會先上市。按照現在出版的順序來看,中國讀者應該會先看到《數學女孩3:哥德爾不完備定理》,但其實我也很想推薦《數學女孩的祕密筆記》系列。《祕密筆記》系列講的數學知識比較淺顯,對話風格也比較活潑,而且它和《數學女孩》系列之間是相互獨立的,系列中的每一本之間也是獨立的,從任何一本開始讀都可以。我希望能夠有更多的中國讀者閱讀和喜歡我的書!

圖靈訪談:您寫的書裡面有C語言、Java語言這樣的技術書,也有《數學女孩》這樣的青春小說,您覺得寫技術書和寫小說感覺有哪些不同,您更喜歡寫哪一種書呢?

結城浩:我覺得這兩種並沒有太大的不同。我們想要傳達的很多價值本身就非常複雜,我喜歡把它們用盡量通俗易懂的方式講出來。從這一點上來說,不管是程式設計的話題還是數學的話題,講法都是一樣的。只不過《數學女孩》從體裁上來說不是我來講,而是小說裡面的人物來講。如果問更喜歡寫哪一種,我想說,至今寫的所有的書都是因為喜歡才寫的,沒有任何一本是出於什麼義務或者在別人的要求下寫出來的。

關於密碼技術

圖靈訪談:《圖解密碼技術(第3版)》中文版馬上就要上市了,這本新版裡面有哪些特別值得推薦的內容?

結城浩:第三版在整體上進行了資訊的更新,另外增加了一些新的內容,如SHA-3的選拔過程以及其演算法(Keccak)的結構、POODLE等對SSL/TLS的各種攻擊方式、認證加密、橢圓曲線密碼,還介紹了比特幣是如何通過各種密碼技術的有機結合設計出來的。第三版在日本的反響非常好,即使在算上小說等一般讀物的情況下,甚至能夠在某些書店裡排到綜合第二位。

圖靈訪談:《圖解密碼技術》一書中提到PGP的作者Phil Zimmermann曾引發了一場關於“密碼自由”的大論戰,至今依然有人認為密碼技術可能成為恐怖分子的幫凶,應該像武器一樣進行管制,您個人如何看待這一問題?目前量子金鑰分發技術也正在快速發展,中國的京滬廣域量子通訊專線將於今年年底交付使用,這種“無法破譯”的密碼技術會不會再一次引發一場類似的論戰?密碼技術的未來又是什麼樣的呢?

結城浩:我的知識水平還不足以討論密碼技術的未來是什麼樣的,不過就現在來看,“認證”比“加密”更重要,進一步說就是“信任”的問題。比如說,當你看到某個人的發言時,你確定發言的人就是你所設想的那個人本人嗎?正在和你進行交易的人,真的就是你所設想的那個人嗎?

“無法破譯”這個詞看起來很吸引人,但如果這裡的無法破譯僅限於“機密性”這個層面的話,大家應該意識到,這種技術只是我們所期望的“安全”中的一小部分而已。恐怖分子固然可怕,那麼國家就不可怕了嗎?如果說恐怖分子不值得信任,那麼國家就一定值得信任嗎?討論到這裡,我們已經離技術的話題很遠了呢,但無論如何,我認為我們每個人都應該對技術有充分的認識和理解,這一點還是非常重要的。

關於程式設計

圖靈訪談:除了作家之外,您還有一個身份是程式設計師,曾經還開發了一款在日本非常流行的維基引擎。當初您是如何想到開發這個軟體的?後來您又開發過哪些其他的軟體呢?

結城浩:日本有一款非常流行的維基引擎叫做PukiWiki,這個軟體其實並不是我開發的,但它最早的版本是我編寫的一個叫做YukiWiki的維基引擎。在YukiWiki的基礎上,PukiWiki把Perl移植到PHP。當初之所以要開發YukiWiki,只是因為我知道了維基這個東西,想自己做一個玩玩而已(動機很單純對吧)。除了這個以外,我自己還開發過一個叫做MakeWeb的軟體,它可以將純文字轉換成HTML和LaTeX。開發這個軟體是為了方便開發自己的網站。其實MakeWeb就相當於現在的Markdown,只不過我當時寫這個軟體的時候是1996年(!),那時候還沒有Markdown呢。我還編寫過其他一些小的工具或者指令碼,基本上都是為了方便自己寫書用的。

圖靈訪談:日本的程式設計師生活是怎樣的?工作起來,尤其是進入某個專案後,就不考慮生活中的其他事情,專注工作嗎?對於如何平衡生活與工作,您有什麼建議?

結城浩:“日本的程式設計師”還是太寬泛了,不同的行業其工作狀態也不同。有些人每天要花很多時間在公司裡,也有些人能夠很好地平衡工作和生活。我離開公司不做全職程式設計師已經很久了,當然那個時候確實工作時間非常的長,但自己確實又沒有什麼辦法解決這個問題,感到很苦惱。現在看起來,當時自己還不夠成熟,沒有辦法很好地管理自己的工作,所以其實我也沒辦法給大家太多的建議。

不過話說回來,“平衡生活和工作”本來就並不容易,要達到這樣的狀態得有自己的想法,靠“別人說應該如何如何”並不是長久之計。因為工作和生活之間密不可分,同時作為他們作為一個整體又和人的價值觀密不可分,對於從事智力活動的人來說尤其如此。單純地增加私人時間肯定是不行的,或許將時間簡單地劃分為“工作”和“生活”這樣的二元論本來就不是一種合理的思考方式?因此我認為,知難而進、獨立思考,這兩點都是很重要的,無論工作還是生活,都是人生的重要一部分。

圖靈訪談:在技術更迭飛快的時代,計算機從業者常常會擔心被時代拋棄,因為新技術不斷湧現,但自己又對這些技術一知半解,很多人因此患上了“技術恐慌症”,您是否也有同樣的感受?對於“如何才能不被時代拋棄”,您有什麼建議?

結城浩:我在網上寫過一組文章“程式設計師的心理健康“,其中就有一個關於“資訊恐慌”的段落,寫的就是新的東西層出不窮,讓人們感到恐慌的這樣一種心理狀態。在那個段落中我給出了一些建議,就是培養一種“其實這是個機會”的心態。感到技術更迭飛快的並不只有你一個人,所有人都是,因此其中一定能夠找到你施展的空間,不是嗎?

程式設計師的心理健康——關於“資訊恐慌”(譯文)

計算機的世界瞬息萬變,讓人感覺似乎不努力往前跑就會被拋棄,的確,現實中真的有因為這樣的原因丟了飯碗的人(對吧?)。

於是你得經常看計算機雜誌和專業的書籍,還得訂閱一些郵件雜誌,上網收集各種資料,不然完全跟不上話題,因為新的東西出來得太快,新產品、新程式設計環境……

但要是長年累月過這樣的生活,恐怕神經要崩潰了。其實我也是這麼過來的,以至於有時看到專業雜誌和書籍都會感覺頭疼,現在也會如此。

所謂“資訊恐慌”,其根源就是覺得必須得不斷的獲取新的資訊,但又被日趨膨脹的資訊量壓得喘不過氣來。我不知道到底有沒有這麼一個詞,就當是我為自己身上的症狀起個名字吧。

那麼到底應該如何擺脫“資訊恐慌”呢?當我遇到類似感覺的時候,我會想“不,其實這是個機會”。

唉,最近出來好多新的概念,有好多東西要學啊→“不,其實這是個機會”。要學的東西很多,對於所有人都是一樣的,如果我能把自己理解的部分很好地講給別人聽,這不就是我發揮價值的機會嗎?有了這種積極的心態,就會感覺好多了(至少我是這樣)。

還有一種方法,就是當感覺出現“資訊恐慌”的時候,能夠清醒地認識到自己可能已經太累了,需要調整一下。就好像編譯程式碼的時候看到warning,就要停下來把程式碼檢查一遍一樣,當感覺出現“資訊恐慌”的時候,也要停下來把自己的生活檢查一遍。不要陷入恐慌之中,而是把恐慌當作自己健康狀況的一個報警器就好了。

再或者,喝點酒睡一覺可能也是個不錯的主意吧。

(1996年10月10日)

關於數學

圖靈訪談:您寫了很多和數學相關的著作,書中的巧妙證明過程,總是給讀者以強烈的震撼,大多讀者表示自己永遠也想不出這樣的解法。您認為數學學習和天賦有關係嗎?您自己學習數學的經歷是怎樣的,遇到過什麼困難,有什麼值得分享的故事?

結城浩:我自己對數學當然也有喜歡和不喜歡的部分,也有擅長和不擅長的部分。對於那些最頂尖的數學家來說,一定的天分和直覺肯定是需要的(當然,我並不是數學家)。不過數學書籍上面寫的那些東西,其實都是成百上千年來各個時代最優秀的頭腦的智慧結晶,所以我覺得看到這些東西的時候真的沒有必要感嘆“自己永遠想不出”。我的書裡的那些內容,拋開展現的方式,其最本質的內容大部分都是引用其他參考文獻的。我寫書的過程,其實就是從自己讀過的很多書中進行思考,並把頭腦中閃過的感動用文字表達出來而已。我希望能夠將自己從知識中獲得的喜悅和感動更多地傳達給我的讀者。

圖靈訪談:《數學女孩》描述的高中生活沒有圍繞成績、題海展開,反而盡現了追求數學魅力的青春記憶,您當初為什麼會想到用青春小說這樣的體裁來寫數學的故事呢?有讀者感嘆,如果有這般的數學教科書,數學教育一定會提升一大截。如果改革教科書,您最想從哪些方面入手?您認為日本與其他國家的數學教育有哪些最主要的區別?

結城浩:我寫《數學女孩》的緣起和詳細經過都寫在一本叫《數學女孩的誕生》的書裡。最初想著寫一本數學讀本的時候,腦子裡出現的形象就是一個擅長數學的少女,然後我就在網上寫了數學女孩的原型故事。其實我也不明白為什麼會這樣寫,好像在我心裡,用“故事”和“對話”來聊數學就是一種很自然的風格。

數學故事和教科書所需的要件不同,改革教科書可沒有那麼容易。教科書的前提是讓老師來教,和可以自由閱讀的故事書從構成上就完全不同。我不知道其他國家的教科書是什麼樣的,至少日本的數學教科書中很少有不準確和不恰當的描述,從準確性來說質量還是很高的。我掌握的資訊有限,沒辦法從整體上去討論數學教育,不過我希望數學教育能夠多向學生展現數學的魅力,讓他們更有興趣和動力去學習數學。數學本來是一個很有魅力的學科,我感覺人們過於厭惡它了。

圖靈訪談:有部分計算機從業者認為,在實際專案中,數學的作用似乎並不大,但與此同時我們也看到,偉大的程式設計師,如高德納Linus,卻又無不精通數學。作為程式設計師,您長於數學的背景,帶給您怎樣的專業收穫和生活體驗?

結城浩:其實在很多領域,數學知識都能夠直接在程式設計中派上用場。比如說,如果不懂離散數學、集合、邏輯、進位制的相關知識,可能沒有辦法很好地程式設計;如果不懂三角函式等函式以及幾何學、矩陣和簡單的微分方程,可能也很難去編寫遊戲方面的程式;對於最近流行的人工智慧和機器學習,如果不懂概率和統計的話也很難下手。然而,對程式設計有用的並不只是數學“知識”,還有學習數學所接受的“訓練”過程本身。將現實中的事物轉化成模型,用抽象的概念和人造的語法與規則去表達出來,從這一點來看數學和程式設計其實是非常相似的智力活動呢。

圖靈訪談:今年AlphaGo引爆了機器學習和人工智慧相關的領域,這是否意味著對於程式設計師來說,學好數學變得越來越重要呢?對於程式設計師如何學好數學,您有哪些建議呢?

結城浩:“由於人工智慧和機器學習的興起,對於程式設計師來說學好數學變得越來越重要了”,對於這一點我覺得很難簡單地做判斷。程式設計師很善於對功能進行封裝,就算是人工智慧和機器學習這種看似高深的東西,將來必定會出現很多面向“使用者”封裝好的系統和服務。當然,精通數學並沒有壞處,我也不是說數學就沒那麼重要了,我只是想說數學一直都很重要,和當下流行什麼東西沒有什麼關係。

關於對讀者的建議,我就簡單說說吧。很多程式設計師對數學,特別是數學公式有一種牴觸情緒。我認為即便不懂具體的理論,也應該養成遇到公式都仔細看一遍的習慣,平常先掌握一些基本的數學知識,遇到需要深入學習的部分再去探索就好。

關於個人

圖靈訪談:您是基督教徒,能簡單介紹一下這方面的經歷和感受嗎?您又是如何看待信仰與科學技術之間的關係呢?

結城浩:我在20多歲的時候有過一段非常痛苦的時期,在此之前,我一直相信人可以靠自己的力量在這個世界中縱橫馳騁,但後來我發現自己的這個想法太傲慢了。當遇到自己無論如何也無能為力的狀況時,除了苦惱真的無計可施。就在那個時候,我開始信聖經中的基督,併成為了一名基督教徒。此後,我每週都去教堂,讀聖經,過著信仰上帝的生活。

我寫了很多技術方面的書,但是我卻信基督。對於這一點可能很多人抱有疑問,他們可能覺得信仰上帝是一種不科學的行為。我認為信仰上帝和用科學方法去思考這兩者並不矛盾,因為它們各自所涉及的範圍不同。相信聖經上的文字,這一信仰是用來回答“我為了什麼活在世上”這個問題的,而無論再怎麼學習科學,也絕對無法回答“我”這個特定個體應該如何行動這樣的問題。科學的目的是解開“世界的奧祕”,無法解開“我這個人的奧祕”。我自己的人生何去何從,這其中的奧祕是需要通過信仰來學習的。

圖靈訪談:您似乎在網上從來不公開自己的照片,而是一直用一個小妖怪的頭像。您不喜歡拋頭露面的主要原因是什麼?用這樣一個頭像背後有什麼故事嗎?

結城浩:我一直不公佈自己詳細的生平經歷和照片,用的那個頭像名字叫作“Thread妖怪娃娃”,是我自己畫的,其中thread一詞的意思是多執行緒程式設計裡面的“執行緒”。我寫《用Java語言學習設計模式:多執行緒篇》這本書的時候,在書裡畫了這麼一個角色當作執行程式碼的主體,從此之後我就用這個形象來代表自己了。我的推特頭像,以及我在書上簽名的時候都會用這個形象。之所以不公佈照片,主要還是出於資訊保安的考慮,我不喜歡主動公開自己的隱私。

圖靈訪談:感謝結城浩先生,希望您能帶給讀者更多的精彩書籍!

結城浩:最後我想說,感謝大家喜歡我寫的書,也感謝大家對我的工作和個人報以如此的興趣。我今後還會積極地寫更多快樂和有趣的作品,希望大家繼續支援,謝謝。

知名著者結城浩:堅持做一件事而不厭倦,一旦厭倦馬上更換目標(圖靈訪談)

圖靈訪談特約記者: 周自恆, IT、程式設計及自然科學愛好者,資深技術圖書譯者,專欄作者,科研媒體關係戶。 譯有《圖解CIO工作指南(第4版)》《大資料的衝擊》《程式碼的未來》《30天自制作業系統》《圖解密碼技術(2、3版)》《家用遊戲機簡史》《有趣的二進位制》等。

更多精彩,加入圖靈訪談微信!

相關文章