重讀黑客與畫家

《黑客與畫家》這本書的中譯本出版于2011年4月,它的作者是美國互聯(lián)網(wǎng)界"創(chuàng)業(yè)教父",哈佛大學計算機博士Paul Graham,他的譯者是著名blogger、譯者阮一峰先生。
這本書在2011年一上市就受到了廣大人民群眾的愛戴,我在第一時間拿到紙質(zhì)書后,通讀了兩遍,當時感覺很震撼,可以說本書是我近年來讀過的最優(yōu)秀的人文類技術(shù)圖書,個人非常喜歡,所以在去年在圖靈推出多看電子書后,又購買了電子版《黑客與畫家》,放到手機和Pad上隨翻隨看,最近又開始重讀。
好書的特點是常讀常新,一本好書往往沉淀了作者幾十年的歲月,絕不是你草草翻上一遍就可以理解和掌握的。雖然是同樣的文字,在不同的時間和環(huán)境閱讀,往往給你帶來不同的啟示和感悟。下面是我重讀的讀書筆記。
Redesign——設(shè)計永無止歇
Paul Graham在黑客的第十四章-夢寐以求的編程語言里,寫了一節(jié)關(guān)于Redesign的隨筆。什么是好的文字?好的文字來自于不停的修改,好的編程語言和軟件產(chǎn)品同樣如此,在個人的工作生涯里,我的體會是,再多的修改也不過分。可以說沒什么軟件產(chǎn)品是完美的,完美主義者都是不斷打磨產(chǎn)品以趨近完美。如果不信,那么各位看官可以打開你們一年前寫得代碼或文章,如果臉紅的話就吱一聲吧。
同樣,如果你想不斷的調(diào)整自己的設(shè)計和實現(xiàn),那你就需要保證你的工作在某個特定階段是可持續(xù)的。我的建議是無論選擇公司,還是在公司內(nèi)部選擇工作,盡可能選擇能夠長期投入和完善的事情做,如果你半年做一個項目,之后又換成另一個,然后再換,除了積累了一大堆項目經(jīng)驗之外,1、你個人能力沒有得到提升,2、你永遠無法完成一個優(yōu)秀的產(chǎn)品。在產(chǎn)品公司,你可以為優(yōu)化某個算法或Ajax效果花費一個月的時間,這在以單純做項目或外包的公司是不可想象的。找一家程序員被當做天才和寶貝的公司,去做可持續(xù)的產(chǎn)品…..
推薦兩段核心文字,大家體會下阮一峰老師的翻譯功底:
——為了寫出優(yōu)秀軟件,你必須同時具備兩種互相沖突的信念。一方面,你要像初生牛犢一樣,對自己的能力信心萬丈;另一方面,你又要像歷經(jīng)滄桑的老人一樣,對自己的能力抱著懷疑態(tài)度。在你的大腦中,有一個聲音說“千難萬險只等閑”,還有一個聲音卻說“早歲哪知世事艱”。( You have to be able to think how hard can it be? with one half of your brain while thinking it will never work with the other. )
——如果你能平衡好希望和擔憂,它們就會推動項目前進,就像自行車在保持平衡中前進一樣。在創(chuàng)新活動的第一階段,你不知疲倦地猛攻某個難題,自信一定能夠解決它。到了第二階段,你在清晨的寒風中看到自己已經(jīng)完成的部分,清楚地意識到存在各種各樣的缺陷。此時,只要你對自己的懷疑沒有超過你對自己的信心,就能夠坦然接受這個半成品,心想不管多難我還是可以把剩下的部分做完。
時間與流行
一種編程語言想要變得流行,最后一關(guān)就是要經(jīng)受時間的考驗——《黑客與畫家》
時間有時候是很無情的,很多流行的東西,隨著時間的流逝將變得面目全非。美貌與時尚如此,技術(shù)同樣要經(jīng)歷歲月的洗禮。進入21世紀以來,技術(shù)熱點不斷變更,每次的技術(shù)更迭,就像流水沖刷河床一樣,虛無的流走,沉淀下來的才是有價值的東西,我們要做的就是那些能沉淀下來的東西,這需要去判斷和選擇
進入21世紀,從靜態(tài)語言到動態(tài)語言、面向?qū)ο缶幊痰胶瘮?shù)式編程、從模型驅(qū)動設(shè)計到領(lǐng)域驅(qū)動設(shè)計、從SOA到云計算、從BI到大數(shù)據(jù)、從BS到移動互聯(lián),無論技術(shù)熱點如何變化,站著掙錢的永遠是那些踏踏實實做產(chǎn)品和技術(shù)的。2009年SOA火熱的時候,每家軟件公司和互聯(lián)網(wǎng)公司都號稱自己面向服務了,甚至IBM、BEA等公司為SOA確定了SCA和SDO規(guī)范,但3年以后,無人再提SOA,無非就是用開放的技術(shù)實現(xiàn)原來的EAI么…
有位在校大學生問,“我們下學期要學習數(shù)據(jù)庫,以后想從事大數(shù)據(jù)方向,不知道從什么方面學習大數(shù)據(jù)”。我的建議是,不要被現(xiàn)在大數(shù)據(jù)的噱頭忽悠了,等你兩年后畢業(yè)出來,可能已經(jīng)沒人提大數(shù)據(jù)這回事了。如果真的對數(shù)據(jù)感興趣,踏踏實實把關(guān)系數(shù)據(jù)庫學好,有時間的話再學一門編程語言,掌握數(shù)據(jù)結(jié)構(gòu),再有余力學習一些數(shù)據(jù)挖掘和推薦算法等知識,這就行了,相信我,你沒那么多時間!
所以,正在流行的東西并不一定值得投入,流行感冒倒是流行,也沒人追啊......
最大化你的價值
有人問,你為什么要從事IT技術(shù)研發(fā)工作?如果是喬布斯,可能的答案是改變世界;如果是人生導師,可能的答案是跟隨你心。如果是我回答呢,答案就是如果不從事這個行業(yè)的話呢,我還真不知道該如何養(yǎng)家糊口:)
每個人進入一個行業(yè),有必然性也有偶然性,現(xiàn)在想來,我進入軟件行業(yè)可能是興趣使然。我小時候就比較喜歡電子相關(guān)的東西,這個習慣保持到現(xiàn)在就是喜歡電子設(shè)備。大學的時候電子和計算機相關(guān)的課程都學的很好,其他專業(yè)課則一塌糊涂。畢業(yè)后進入一個工廠做電子設(shè)備測試,晚上則用車間的電腦學習編程,很快自己覺得可以找到工作了,就去面試,一面之下進入洪恩,稀里糊涂算是進入了IT行業(yè)。
工作了十幾年,發(fā)現(xiàn)自己確實對技術(shù)比較感興趣,曾經(jīng)有很多機會轉(zhuǎn)崗成為純粹的管理和業(yè)務人員,但最終都沒舍得放棄技術(shù),當然技術(shù)也沒什么大成,愛好而已。
為什么做技術(shù),技術(shù)是什么?我的觀點是:
1、與其他工種一樣,技術(shù)可以謀生。很多導師說看準一件事情就全情投入,不要考慮收入,奮斗不息財富會隨之而來。且不說只有你成事了財富才能來,就說沒成事的時候我們總不能餓得頭昏眼花去奮斗吧。準確一點是工作初期不要過分考慮金錢。總要解決溫飽問題吧,那么做技術(shù)研發(fā)可以很容易達到這個目標。
2、技術(shù)是一種手段和做事方式。尤其是在現(xiàn)在這樣一個互聯(lián)網(wǎng)和數(shù)據(jù)的時代,可以說技術(shù)面前人人平等。你付出了多少,差不多就會得到多少。很多人羨慕創(chuàng)業(yè)公司的人獲得的財富,他們只不過是把你20年平穩(wěn)的打工生涯壓縮成4年艱苦卓絕的創(chuàng)業(yè),當他們冒著成為炮灰的風險在清晨的寒風里編程時,你正在溫暖的被窩里做著美夢。所以就別羨慕了,那是他們應得的。
3、做技術(shù)需要終身學習,如果你個學習狂,恭喜你找到了一份完美的工作。有一次一個工程師告訴我,每次感到恐慌的時候,就開始學習,掌握了一門又一門語言和技術(shù)。最后他成為了一個通才之上的專才。書到用時方恨少,事非經(jīng)過不知難,有時間就學點東西,沒壞處,還能預防老年癡呆。
4、作技術(shù)可以最大化你的價值。如果你是賣煎餅的,買一個是一個,如果你開發(fā)了一個千萬人使用的軟件,那你做這個軟件的價值就放大了千萬倍。如果你做的互聯(lián)網(wǎng)產(chǎn)品服務了千萬個用戶,你的做這個產(chǎn)品的價值也就放大了千萬倍。如果你在做這樣的工作,那么你就最大化了自己的價值,財富也會隨之而來。如果沒有,就去找這樣的工作。
難易相成
古人云:有無相生,難易相成,長短相形,高下相傾。
很早就想說說困難和容易這點事。人生一世,我們到底是要選擇做容易的事還是做難事?這個想法源于春節(jié)前的業(yè)務討論會,有兩位經(jīng)理各執(zhí)一詞,一個說,為了讓部門能夠生存下去,我盡可能去做那些簡單的相對穩(wěn)定的任務,因為這樣可以保證良好的現(xiàn)金流。另一個說,為了能讓部門生存下去,我盡可能去做那些困難的利潤更高的任務,因為這樣可以保證良好的現(xiàn)金流。
難易相成,困難和容易會在不同的環(huán)境下會相互轉(zhuǎn)化,我覺得這兩位經(jīng)理在特定場景下說得都沒錯。
就個人而言,我覺得我們應該盡可能做那些困難的事情,讓別人變得不那么困難。無論是做軟件還是做互聯(lián)網(wǎng)服務,其實終極意義就是你做出來的東西能否解決用戶的問題,如果這是一個容易解決的問題,那么很多人早已經(jīng)解決了;如果這是個困難的問題,那就意味著很多坑等著要埋你。咋選呢,似乎怎么選都是炮灰,權(quán)衡一下,選擇前者基本是無用功,那我們只好選擇后者,我們本身也是愛挖坑的人,況且困難面前人人平等么。
JetBrains是一家捷克的軟件公司,他們做的事情就是為Java,Objective-C,Python,Ruby,JS等語言寫開發(fā)IDE,給程序員寫工具可不是鬧著玩的,他們對IDE的挑剔基本比肩女性對化妝品,但JetBrains開發(fā)出來的工具深受程序員喜愛,各種智能,各種效率,他們獲得了極大的成功,為啥,因為做著別人很難做成的事。
讓自己困難點,讓別人容易點,說了半天,好像就這么點事。Paul在黑客畫家里提到選擇哪種技術(shù)和語言去實現(xiàn)軟件的時候,同樣選擇了那些困難的有競爭力的事情去做。
逃離舒適區(qū)
本來想起名為逃離技術(shù)舒適區(qū),后來想想這個話題具備普適性,就把技術(shù)去掉了。上一節(jié)談的是困難和容易的取舍,這一節(jié)的話題算個延續(xù)。
什么是舒適區(qū)?如果你是個新手,你就沒什么舒適區(qū),什么都不懂嘛舒適個毛啊,在磕磕絆絆的學習中懵懂前行,期間可能還伴隨著老鳥的嘲笑和進度的壓力,終于有一天你武功大成,乾坤大挪移練到了第五重,工作中開始得心應手游刃有余,不斷有新人或老人來找你解決問題,你微笑著迎接各種挑戰(zhàn),淡淡的送走困難,你揮一揮手,不帶走一片云彩,這是什么境界?這就是你的舒適區(qū),這和靠在沙發(fā)上看電視的舒適不是一回事,通常進入舒適區(qū)需要花費你很多的時間和精力,需要你不斷的練習,一旦進入,你會enjoy it!
這時候,如果有人膽敢讓你脫離舒適區(qū),可算要了親命了,你會勃然大怒,輕則爭吵,重則離職。這種事遇到太多了,一個寫前端的你讓他學習一些后端技術(shù),一個寫Java的你讓他學習一下C,得到的答復可能會,Sorry, I feel very uncomfortable!
沒有人學新東西的時候非常舒服,一旦經(jīng)歷過從新人到老鳥的過程,再讓你進入陌生的領(lǐng)域,那種痛苦會讓你自發(fā)的去抗拒。但是一個人不可能永遠躲在舒適區(qū)里,逃離舒適區(qū)會有助于你從不同的角度看問題,視野會更加開闊。人總要往前走的。
就我個人而言,我有多年的vim使用經(jīng)驗,目前在學習emacs,我從Linux轉(zhuǎn)到windows再轉(zhuǎn)到Mac,學習了多種編程語言,一直在練習自己的演講能力并做了很多公開演講。有時候做很多事就是為了撓自己癢處,避免在舒適區(qū)待太久。
很多人在某個地方待久了就會非常懈怠,沒退休就像在養(yǎng)老,這時候我就知道,他們在舒適區(qū)太久了,與在哪個地方無關(guān)。
創(chuàng)造財富
《黑客與畫家》里有兩章是描述財富的,如果你是個財迷,那么就該去讀讀,如果你不是,讀讀我的讀后感就行了。
財富和錢從來就不是一碼事,所以大部分人只能去創(chuàng)造財富,因為你不是印鈔機。但錢畢竟是流動的財富,所以大部分人還得通過創(chuàng)造財富去掙錢,那么一輩子掙多少錢合適呢?
在很多年以前,100萬還能在北京買一套房子,大家還沒有聽說過PM2.5這個術(shù)語,藍天還不是那么得稀有,有人寫過一篇文章,大意就是一個家庭要多少錢才能正常的生活(什么是正常?好吧,你就當及格線60分理解),作者從購房、購車、贍養(yǎng)父母、教育子女、家庭生活、休閑娛樂、養(yǎng)老、貨幣貶值、物價飛漲等各個方面算了一筆帳,這個數(shù)字是600萬。
——這位同學你不用站起來了,我知道現(xiàn)在100萬在北京只能買個洗手間,我說得重點不是這個。而且要算也很簡單么,如果你覺得現(xiàn)在北京買套房需要400萬,那就加上300,如果在老家50萬就能買,減去50即可,不離譜。
如何去掙這個抽象的600萬呢?如果按照60歲退休計算,大部分人要工作40年左右,大家可以計算下,如果妥妥的工作了40年,你的平均工資要達到多少才能過正常生活。當然你也可以選擇創(chuàng)業(yè),高風險高回報,一旦創(chuàng)業(yè)成功,你就擺脫了這個“正常生活”的羈絆,可以有更多的時間和空間做自己更喜歡的事。但是這些成功的創(chuàng)業(yè)者不會就此不再工作了,他們可能會比普通打工者工作更長的時間。
為毛?很多有錢人完全不必再工作,但是他們工作起來比普通人還歡實。不是天生受虐狂和社會壓力,而是無所事事使人感到孤獨和消沉。我有個朋友移民國外,由于有房產(chǎn)完全不必工作,天天燒烤釣魚,半年以后,他在MSN上告訴我“看到燒烤釣魚就想吐,我必須要找個工作了”。
另外,如果你不是銀行劫匪或公務員,你應該知道財富是創(chuàng)造出來的,而不是搶來的。喬布斯和沃茲創(chuàng)建了蘋果公司,為自己、員工、開發(fā)者和社會帶來了巨大財富,但別人并未因此而變得貧窮。所以建議大家盡可能去做創(chuàng)造財富的工作,而不是掠奪財富。
另外,如果沒人給你報酬,你是否愿意去工作呢?唯一可能的就是這件事比較有趣,比如Linus Torvalds免費寫了著名的操作系統(tǒng)Linux,他當時可沒想著用這個操作系統(tǒng)賺錢。那我為什么寫博客呢?嗯,思考中……
關(guān)于這個話題,Paul表現(xiàn)出了很多技術(shù)之外的Political智慧,比如允許賺到大錢的人保留自己的財富,比如藏富于民:
——一旦自己的財產(chǎn)有了保證,那些想致富的人就會愿意去創(chuàng)造財富,而不是去偷竊。由此導致的新技術(shù)會很容易被轉(zhuǎn)化成財富。
——要鼓勵大家去創(chuàng)業(yè)。只要懂得藏富于民,國家就會變得強大。讓書呆子保住他們的血汗錢,你就會無敵于天下。
完結(jié)
《黑客與畫家》可以為你帶來技術(shù)、生活、自由、財富等各方面的思考,確實是難得一見的技術(shù)圖書。事實上這次重讀還有很多感受沒有形成文字,希望以后有機會還能繼續(xù)補充這篇文章。
身邊越來越多的人開始使用Mac,經(jīng)常被問道Mac的使用問題和技術(shù)問題。遂決定,每天發(fā)布一則#Mac技巧#。同時發(fā)布于微博和微信公眾賬號“Mac技巧”,微信號sagacity-mac,有微信賬號的童鞋掃描下圖片或搜索微信號即可

浙公網(wǎng)安備 33010602011771號