左手程序,右手詩:讀《黑客與畫家》有感

左手程序,右手詩:讀《黑客與畫家》有感

“程序寫出來是給人看的,附帶能在機器上運行。”

《黑客與畫家》這本書是劉長發學長機緣巧合下借給我看的。起因雖然是一個偶然,但這個偶然帶給我的啓發卻是難以估量的。它讓我得以重新審視所謂“程序員”這個職業。書中其實很少有去提及“程序員”一詞,而是在使用“黑客”一詞來表示。黑客與畫家這兩個看起來相距甚遠的職業,在某個維度來看卻是兩種相差無幾的人——作爲創作者。


書與作者

這本書於2004年由硅谷創業之父Paul Graham撰寫,於2013年由阮一峯翻譯並在中國出版。阮一峯先生翻譯的時候在擔心“2004年的書,13年纔出翻譯版會不會太遲?”事實是:雖然這是一本技術類的書籍,但是它依然能吸引十年後的廣大讀者。因爲第一,他寫的並不是技術而是思想,而正確的思想是不會過時的;第二,他的着眼點是長遠的未來。
作者Paul在獲得博士學位畢業後並沒有選擇就業,而是在網景公司上市之後的互聯網浪潮中尋找機遇。他和同伴寫了第一個通過互聯網使用的軟件viaweb,後被雅虎在98年以4900萬美元收購。再後來他成立了YC,一個創業公司孵化器,幫助有想法的年輕人創業。

關於黑客

自由軟件基金會創始人理查德斯托爾曼說:“出於興趣而解決某個難題,不管它有沒有用,這就是黑客。”[2]書中強調在程序員的圈子裏,黑客是指最優秀的程序員,他們的行爲包含三個特點:好玩、高智商、探索精神。

黑客與畫家

黑客和畫家這兩個相距甚遠的行業,在絕大多數人看來,程序員們就是那羣“書呆子”工科男(女),整天面對着電腦寫代碼而不苟言笑;而畫家則更加風趣或幽默或帥——至少比程序員更有藝術氣息。看上去程序是冰冷、精確而井然有序的,而畫畫則是某種原始慾望熱烈狂放的表達。
也許無趣、靠寫代碼過活的碼農們可以這麼說,但是黑客一定不是這樣的。黑客與畫家的共同之處,在於他們都是創作者,和音樂家、文學家、建築師一樣,都試圖創作出優秀的作品,對於黑客而言,計算機是他們表達的一種媒介,就像畫家手中的顏料或者音樂家的譜寫的音符。很多時候黑客的創作過程被稱爲“軟件工程”,但我認爲與其說黑客們是engineer,不如說他們是architect,因爲前者表達的更多的是去實現,而後者表達的則是架構。換言之,優秀的程序員關注的不止是程序本身的實現,更多的應該是如何定義程序能讓它更加易於開發與運行維護——這也正是軟件的生命週期。其實這裏不難看到優秀的程序員更願意關注宏觀下的程序,而不是程序的每個細節,因爲實現程序的本質不過是把人說的話翻譯成機器聽得懂的話而已,如何能讓翻譯的過程簡潔、高效,能讓多人合作更高效應當是每個優秀程序員的嚮往。

程序是給人看的

一般來說程序是給機器看的,但實際開發過程中,初級程序員往往會有兩個煎熬的階段:看別人的代碼和看自己以前的代碼。因爲實際開發過程中,封裝雖然是常態,但沒人能保證這段封裝好的代碼未來就不會發生變動,所以看代碼就不可避免了。一段好的程序應該能夠“自我解釋”,即哪怕不需要任何註釋,其他程序員也能很快讀懂代碼。因爲只有易讀、易維護的代碼才具有生命力,首先爲人編寫程序,其次纔是計算機。

向未來而生

德國哲學家海德格爾說“向死而生”(Being-toward-death),意思是人只有面對死亡,纔會停止那些無謂瑣碎的關注,理解人生中真正重要的事情,從而再生。引用阮一峯的說法“向着未來而生”,我們應當把目光盯向未來的前方,決定好自己人生的路,從而再生。這也正是Paul所說的“活在未來,然後創造現在”(Live in the future, then build what’s missing)。

參考文獻

[1] Graham P. Hackers & painters :big ideas from the computer age[M]. 1st ed. ed. Sebastopol, CA: O’Reilly, 2004: 258.
[2] Stallman R M, Lessig L, Gay J. Free Software, Free Society:Selected Essays of Richard M. Stallman[M]. Free Software Foundation, 2002.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章