Andy Hunt:音樂和程式設計,都是想象力在現實世界的宣言(圖靈訪談)

盼盼姐發表於2014-04-29

Andy Hunt是一位程式設計師,他還是諮詢師、作者、以及出版人。他創作了很多獲獎又暢銷的書,其中包括《程式設計師修煉之道》,《程式設計師的思維修煉》,Programming Ruby。Andy是“敏捷聯盟”17位創始人之一,他也是《敏捷宣言》的作者之一。他和Dave Thomas聯合創辦了Pragmatic Bookshelf出版社,他們一起用Ruby構建了整個網上業務。除了以上角色,他還是一位狂熱的音樂人,以及兼職木工藝家。他建立了一個叫做memes的獨立樂隊。

圖靈社群:作為一位演講專家,您能和我們分享一些演講經驗嗎?有很多專家級的程式設計師都無法完成一次成功的演講,你是怎麼實現既有趣又有資訊量的演講的?

AH: 一次好的演講的關鍵其實和一本好書的關鍵完全相同:重點應該在於聽眾,而非演講者。沒錯,你可能知道很多東西,而且還是個專家,但是聽眾並不需要知道每個細節,甚至也不需要知道所有你感興趣的部分。他們想聽的是他們感興趣的事兒。甚至他們也並不需要你講的是完完全全的事實,這些東西他們自己就可以在網上找到。他們想知道的是你的經歷,什麼真的管用,什麼又不行。你的觀點是什麼?你對這個主題有多少親力親為的發現?這就是大夥兒想知道的事兒。

圖靈社群:自出版現在越來越流行了,很多人開始在LeanPub或類似網站上寫書。你認為傳統出版在未來還有機會嗎?

AH: 我認為機會很多。傳統出版能提供給我們兩個非常重要的功能。首先,專業級別的開發編輯和生產製作環節。我們的作者中有不少一開始就嘗試了自出版,然後他們才找到我們。他們意識到一個好的專業編輯能給他們帶來多大的不同——他們可以幫助你把你想傳達的資訊更清晰、更簡練地表述出來。而且,不要低估生產製作環節:很多人告訴我們,我們的電子書看起來比別家出版社好太多。你能用工具製作電子書並不意味著你能做出一本像樣的電子書。

其次,我們還是管理員,我們會剔掉那些不怎麼樣的書,推廣那些優秀的書。讀者們知道他們可以信任我們,也信任我們對於選題的選擇。這些事情很難由自己一個人發展出來。但是我們已經從事出版十多年了,而且我們在自己的職業生涯中都是真正的軟體開發者。我們很清楚自己在幹什麼。

我們最大的優勢就是我們編輯,我們流線型的工作流程,我們從釋出到印製之間的速度,我們的直接發行系統和遍佈世界的零售渠道,我們先進的“搶先閱讀(beta-book)”計劃,以及我們滿世界的優秀讀者。

圖靈社群:作為一個技術出版人,你怎麼發現和跟進你的下一本書?

AH: 有很多方法;有時候作者找到我們說他們有個自認為很棒的想法。有時候我們會遇到一個選題,雖然看起來很有趣,但是仍處在專案發展早期,然後我們就會跟進這個選題然後馬上確定一本書。當這個選題變得越來越流行之後,我們已經準備就緒了。

很多時候我們出版了關於某個主題的第一批書,然後這個主題變得很流行,比如Ruby on Rails。有時候我們出版了一本概念很好的書,但是大眾並沒有接受,比如Naked Objects。而且我們現在又有了這樣的新書,它們還處在無法細說的初級階段,比如我們的新書《Elixir程式語言(Programming Elixir)》。

有些時候我們對一個技術專題的熱情和推廣讓它變得流行起來,被人接受。

我們在proposals@pragprog.com這個郵箱裡會收到很多不請自來的申請。很遺憾,我們必須得把它們中的大部分拒掉,要麼是因為我們對這個主題不感興趣,要麼是展示的風格和我們大相徑庭。凡是我們接受的讀者,我們就會派給他一位開發編輯,這位編輯會在隨後幾個月的時間內和作者密切合作,為這本書的最終審閱做好準備。

對於程式碼,為了避免淺顯的bug,我們有好幾輪的內審,同時還有嚴厲的外部技術審讀。這個過程對於作者來說可能是有些嚴苛,但是這樣做為我們帶來了真正精彩的書。

我們有一些作者在寫書上得心應手,他們還會回來繼續寫——比如Venkat Subramaniam,他是《Java函數語言程式設計(Functional Programming in Java)》的作者,這是他在我們這兒寫的第六本書。Maik Schmidt是另外一位系列書作者,他最開始寫的是《Ruby and Rails企業軟體開發(Enterprise Recipes with Ruby and Rails)》,然後他又創作了一些關於Arduino和Raspberry Pi的書。

從這裡我們可以看出什麼才是最重要的:作者的熱情。如果一個作者對於一個主題充滿熱情又有充足的知識,還願意和別人分享他這份熱情,那麼我們就會對這個選題感興趣。

圖靈社群:你和Dave Thomas(Pragmatic Bookshelf創始人之一)都是“敏捷宣言”的最初簽訂者。有些簽署人現在仍然活躍在軟體開發領域(如Martin Fowler),有些人則開發了自己的敏捷方法(如Sutherland)。你認為現在自己在敏捷領域內的角色是什麼?

AH: 我覺得Dave和我在敏捷上都有點變得憤世嫉俗。Dave認為我們應該讓“敏捷”這個詞退休,或者把這個詞徹底收回來。最大的問題在於只有很少的團隊真正在使用敏捷方法開發。很多團隊採用了幾種“敏捷”的方法,並從中得到一些益處,但是這和真正的敏捷實踐相差甚遠。有一個很危險的誤解,有人認為“遵從敏捷方法”或者“做敏捷”是和真正的敏捷是一樣的事兒。事實遠非如此。這就像是你能給自己繫鞋帶和成為奧林匹克短跑選手之間的區別。如果你能在樂器上彈音階,這當然好,但是你不一定能賣出百萬銷量的專輯或者能在世界上偉大的音樂廳演出。遵從已經發表的敏捷方法和在你的跑鞋上綁鞋帶是一回事兒,這是個不錯的開始,你也必須這麼做,但這並不是比賽本身。

所以我現在的角色在於時不時地刺激一下所有人,他們沒有抓住要領,需要學習的還有很多,這樣的舉動出於我的良心;我們軟體工業仍然處於萌芽階段,還有大把的機會。

圖靈社群:計算機和資訊科技在中國是一個蓬勃發展的工業。對程式設計新人你有什麼建議?有沒有什麼在學習過程中不容錯過的東西?

AH: 我認為應該學習這門技術的整個鏈條,包括從基本的三極體和電路到作業系統和編譯器,以及資料庫和GUIs(如今更重要的是瀏覽器,但不要忘了iPhones/iPads上的Cocoa,以及Qt等等。)你需要知道這些底層原件整體怎麼工作,因為技術的細節每隔幾年都會發生變化。要想搶在表面的變化之前,就要更好地理解整個基礎。

圖靈社群:在中國,由於文化環境和健康原因,40歲以上的老程式設計師並不多。你對他們有什麼建議?你在程式設計中獲得最多的是什麼?

AH: 永遠都要去學新的東西。永遠。我最近有點鬆懈了,這個過失已經開始回來折磨我了。無論你是剛剛涉足一個新的函式程式語言(我真心推薦Elixir),或是剛剛發現一些不同風格的計算(也許是即將到來的Wolfram語言?),亦或是在Arduino或Raspberry Pi上面做試驗,你需要一直處於學習狀態。哪怕最後你用不上這門技術,你學到的每樣東西都在告訴你一些其他方向的知識和建議,所以沒有任何學習是白費的。

圖靈社群:你如何平衡你的各種愛好,程式設計,音樂,還有木工?如何分配時間?

AH: 很困難 ;) 我認為最好的方法就是要在一塊時間內有意地讓自己專注在一個單獨的任務上。如果我要擺弄程式碼,我下個小時就會只幹這個——不查郵件,不接電話,不刷twitter。如果我想吹小號或者玩合成器,同樣,下個小時我就只有這個。做什麼事情都要認真;要故意為之。如果我要回郵件,就像是我現在這樣,那就只回郵件。

完成多重任務的關鍵就在於不要一心多用。一次一件事,把每件事做好。

圖靈社群: Dave Thomas認為程式設計師相對於普通人來說更可能會成為音樂人。你認為作曲和程式設計有什麼相似之處?他們之間有相互影響嗎?

AH: 程式設計和音樂之間似乎有很高的關聯絡數。我不太清楚為什麼會這樣,哪個是因,哪個是果,但是這樣的組合似乎確實很常見。

程式設計和作曲都是充滿創造力的行為,或者說這兩者都是一種建造世界的形式。這可能正是因為我們喜歡建造屬於自己的世界,或是想要創造一個我們內在想象力在現實世界的宣言。可能我們就是喜歡鼓搗我們創造出的東西。

圖靈社群:你在程式設計的時候聽音樂嗎?如果聽的話,你認為什麼樣的音樂有助於提高程式設計效率?

AH: 根據任務不同我會聽完全不同的音樂。比如當我正在寫書或者寫一個演講的時候,我需要Steely Dan。我寫程式碼的時候,我可能更傾向於前衛搖滾(Porcupine Tree 或經典的 Pink Floyd 或者 Yes)或者主流爵士樂,也許是Miles Davis或者Stan Kenton風格的大樂隊。

我發現當我需要聚精會神的時候,不能聽不熟悉的音樂——這太令人分心了。越需要精力集中的時候,我就越需要熟悉的專輯,有時候我會毫無意識地跟著哼唱起來,自然而然。


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

相關文章