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