
Poul Graham被譽為硅谷創(chuàng)業(yè)之父,他大學(xué)是在康奈爾大學(xué)主修哲學(xué),研究生去了哈佛計算機系,主修人工智能,計算機博士畢業(yè)后,進入羅德島設(shè)計學(xué)院學(xué)習繪畫,后去佛羅倫薩美術(shù)學(xué)院繼續(xù)學(xué)習繪畫。學(xué)畫期間,錢花完了,他決定先解決自己的收入問題,于是找到了自己的黑客兄弟Robert Morris(曾編寫了歷史上第一個蠕蟲病毒“莫里斯蠕蟲”)。當時趕上“互聯(lián)網(wǎng)概念”的大好時段,整個資本市場都為它而瘋狂,他決定搭建一個網(wǎng)店的軟件,這個產(chǎn)品就是Viaweb,后被雅虎以4900萬美元收購,改名為Yahoo!Store。離開公司后,他的生活頓時空閑了。他開始將自己對技術(shù)和創(chuàng)新的觀點寫成一系列的文章,發(fā)表在個人網(wǎng)站上。這些文章受到讀者的好評和追捧,最受歡迎的那部分文章出版了一本書,取名為《黑客與畫家》。后來,Graham在硅谷成立了Y Combinator(簡稱YC)公司,用于扶植創(chuàng)業(yè)公司。到目前為止,從YC公司畢業(yè)的創(chuàng)業(yè)公司共有200家,已經(jīng)失敗的不到20%,遠低于90%的業(yè)內(nèi)平均水平。這些公司成為了硅谷創(chuàng)業(yè)公司的主流,Graham也被譽為“硅谷創(chuàng)業(yè)之父”。
什么是“黑客”?1946年,麻省理工學(xué)院有一個學(xué)生團體叫做“鐵路模型技術(shù)俱樂部”,他們把難題的解決方法成為hack。hack的字典解釋是砍(木頭),解決一個計算機難題就好像砍倒一顆大樹,完成這種hack的過程就被稱為hacking,而從事hacking的人就是hacker,也就是黑客。
黑客原本是正面意義的稱呼,最能干的人會自豪地稱自己為黑客。自由軟件基金會創(chuàng)始人理查德?斯托爾曼說:“出于興趣而解決某個難題,不管它有沒有用,這就是黑客。”在某種意義上,hacking與盜竊信息,信用卡欺詐或其他計算機犯罪聯(lián)系在一起,這是“黑客”被當做計算機入侵者的原因。黑客行為必須包括三個特點:好玩、高智商、探索精神。史蒂文?利維進一步將黑客的價值觀總結(jié)為六條“黑客倫理(hacker ethic)”。
黑客倫理:1)使用計算機以及所有有助于了解這個世界本質(zhì)的事物都不應(yīng)受到任何限制。任何事情都應(yīng)該親手嘗試。
2)信息應(yīng)該全部免費。
3)不信任權(quán)威,提倡去中心化。
4)判斷一名黑客的水平應(yīng)該看他的技術(shù)能力,而不是看他的學(xué)歷、年齡或地位等其他標準。
5)你可以用計算機創(chuàng)造美和藝術(shù)。
6)計算機使生活更美好。
真正的黑客致力于改變世界,讓世界運轉(zhuǎn)的更好。和畫家一樣,黑客只是懷有一門特殊手藝、有創(chuàng)造天賦的普通人。而編程是一種藝術(shù)創(chuàng)作,黑客就是藝術(shù)家,開發(fā)軟件與畫家作畫、雕塑家雕刻、建筑師涉及房屋并沒有本質(zhì)不同。
在計算機的世界里,黑客指的是專家程序員。編程語言就是程序員的思維方式。黑客與畫家的共同之處,在于他們都是優(yōu)秀的創(chuàng)作者。
黑客真正想做的是設(shè)計優(yōu)美的軟件。這需要良好的設(shè)計感,但你覺得你有“良好的設(shè)計感”,與你實際是否具有,不存在相關(guān)關(guān)系,甚至可能存在負相關(guān)。就像你覺得你會做某件事,當你真的去做的時候,卻發(fā)現(xiàn)自己不太可能做得到。那么如何考核自己能做出優(yōu)美的東西呢?答案是——時間,經(jīng)過歲月的洗禮,優(yōu)美的東西發(fā)展的機會更大,丑陋的東西往往會被淘汰。
作者說,你把整個程序想清楚的時間點,應(yīng)該是在編寫代碼的同時,而不是在編寫代碼之前,這與作家、畫家和建筑師的做法完全一樣。(而在我學(xué)習編程的這段時間內(nèi),我也深深意識到只有動手敲代碼才能真正的學(xué)會編程。)
當你排斥差異的時候,你不僅將失敗的可能性排除在外,也將獲得高利潤的可能性排除在外。大部分公司不把設(shè)計軟件的職責交給一個優(yōu)秀的黑客,而是交給委員會。因為還害怕風險,不敢創(chuàng)新。所以,如果你的競爭優(yōu)勢是在軟件設(shè)計方面,并且你的競爭對手是一家大公司,它大到由一群產(chǎn)品經(jīng)理來設(shè)計軟件,那么你的對手永遠不會趕上你。只要你能做出大膽的設(shè)計,由一個人或一批人同時負責設(shè)計和實現(xiàn)產(chǎn)品,你就能在這里戰(zhàn)勝大公司。(因此,創(chuàng)業(yè)一定要做別人沒有做過,并且只有你能做的那些有價值的東西。)
很多黑客都會找一份“白天工作”來解決生計問題,然后在其余時間開發(fā)優(yōu)美的軟件,因為如果你不愛一件事,就不可能把它做得真正優(yōu)秀,要是你很熱愛編程,你就不可避免地會開發(fā)你自己的項目。
創(chuàng)作者的學(xué)習途徑,一是在實踐中學(xué)習,另一個學(xué)習的途徑是通過臨摹范例。一幅畫是逐步完成的。而編程也是這樣,如果你預(yù)先承認規(guī)格設(shè)計是不完美的,編程時,就可以根據(jù)需要當場修改規(guī)格,最終會有一個更好的結(jié)果。不要太早決定一個程序該怎么做,動態(tài)類型語言在這一點上就是贏家。優(yōu)秀的軟件對美有著狂熱的追求,如果你查看優(yōu)秀的軟件,會發(fā)現(xiàn)那些沒人會看的部分也是優(yōu)美的。如果黑客是一個創(chuàng)作者,他必須具備靈感。時刻考慮用戶的人性需要,才能做出偉大的產(chǎn)品,即“換位思考”。如何判斷是否有這種能力呢?就是看他解釋清楚的能力,如果你的面對外行人,你怎么向他解釋?
如果你是一個黑客,并且夢想自己創(chuàng)業(yè),可能會有兩件事情讓你望卻步。一件是不懂管理,另一件是害怕競爭。其實,管理企業(yè)很簡單,兩點:做出用戶喜歡的產(chǎn)品;保證開支小于收入。
Graham認為,如果你想致富,最好的辦法就是自己創(chuàng)業(yè),或是加入創(chuàng)業(yè)公司。創(chuàng)業(yè)公司必須是小公司。創(chuàng)業(yè)就像一個壓縮過程,你的工作年份被壓縮成短短幾年。但是,如果該你想賺100萬美元,就不得不忍受相當于100萬美元的痛苦。如果創(chuàng)業(yè)那么輕松,所有人都去創(chuàng)業(yè)了。同時,運氣也是一個重要因素。世界的財富并不是一張大餅,而是不斷被創(chuàng)造出來了的,而被創(chuàng)造出來的東西才是財富,而金錢只是財富的一種表現(xiàn)形式。
工作就是在一個組織里,與許多人共同合作,做出某種人們需要的東西。而真正重要的是做出人們需要的東西,而不是加入某個公司。因此,做一個創(chuàng)造者,而不是一個維護者。在公司中,很難測量一個人的貢獻,也就無法根據(jù)貢獻給予收入。那就創(chuàng)建自己的公司吧。
要致富,需要兩件東西:可測量性和可放大性。你的業(yè)績必須是可測量的,你做出的決定能夠產(chǎn)生巨大的效應(yīng),如CEO、電影主角,專業(yè)運動員等。Graham認為,任何一個通過自身努力而致富的個人,在他們身上應(yīng)該都能同時發(fā)現(xiàn)可測量性和可方大性。但是收入和風險是對稱的,有巨大的利益,必然有失敗的可能。如果你有一分令人安全的工作,你不會致富,沒有危險,幾乎沒有可放大性。但是如果你的能力足夠強,你自然擁有足夠處理風險的能力。(李笑來說,他到一個地方,就會深入思考一個問題:這里最需要什么?想好之后,就去做,后來都收益頗豐。他在新東方教學(xué)的時候,學(xué)校缺少作文老師,他就去教作文,結(jié)果成為了老師中收入最高的。當然這一切的前提都是建立在“實力”基礎(chǔ)之上的。去變的優(yōu)秀吧。)
公司越小,你就越能準確的估計每一個人的貢獻。(我最近在想的就是先加入一家小公司,雖然會很累,但肯定可以學(xué)到更多的東西,畢竟什么都需要你干。最好找出色的人合作,因為他們工作和你的一起平均計算。喬布斯說過一句話:創(chuàng)業(yè)的成敗取決于最早加入公司的那十個人。由此看來,實力是多么的重要?。?/p>
真正創(chuàng)業(yè)以后,你的競爭對手決定了你到底要吃多少苦。而他們做出的決定都是一樣的:你能吃多少苦,我們就能吃多少苦。創(chuàng)業(yè)就像蚊子,要么贏得一切,要么徹底消失。保險的做法就是在早期賣掉自己的創(chuàng)業(yè)公司,只求數(shù)量較少但是更有把握的回報。但是出售一家成功的創(chuàng)業(yè)公司要比出售還處于早期階段的創(chuàng)業(yè)公司更容易,即使會讓他們付出多得多的價碼。收購這件事最難的地方就是讓買房真正拿出錢。對于買家來說,最強的收購動機就是看到競爭對手可能收購你;次強動機是,讓他們擔心如果現(xiàn)在不買你,你的高速成長將使未來的收購耗資巨大,甚至你本身可能變成一個他們的競爭對手。在這兩種收購動機中,歸根結(jié)底的因素都是用戶數(shù)量。用戶數(shù)量就是判斷公司表現(xiàn)好壞的指標。(可是現(xiàn)在人們什么都不缺,如何做出用戶需要的東西呢?)
Graham認為,與下棋、畫畫、寫小說一樣,賺錢也是一門專門的技能。每個人創(chuàng)造財富的能力和欲望強烈程度都不一樣,所以每個人創(chuàng)造財富的數(shù)量很不平等。一個大型上市公司CEO的收入大概是普通人的100倍。一個人工作具有多少價值不是由政府決定的,而是由市場決定的。(跟李笑來說的一樣,這里最需要什么?)
一個社會需要富人,這主要不是因為你需要富人的支出創(chuàng)造就業(yè)機會,而是他們在致富過程中做出的事情。如果你讓亨利福特致富,他就會造成一臺拖拉機,這樣你就不需要使用馬匹耕田了。這其實是實現(xiàn)了雙贏。
一名真正的創(chuàng)作者不僅應(yīng)該技術(shù)過硬,還應(yīng)當能使用技術(shù)做出優(yōu)美的產(chǎn)品。怎樣做出好的產(chǎn)品?
好的設(shè)計是簡單的設(shè)計。比如寫作,言簡意賅肯定比浮夸的語調(diào)要好的多。
好的設(shè)計是永不過時的設(shè)計。很多大師的作品過了上千年依然是精品。
好的設(shè)計是解決主要問題的設(shè)計。簡體語言淘汰了以前的繁體字就是一個例子。
好的設(shè)計是啟發(fā)性的設(shè)計。簡奧斯汀的作品幾乎不帶任何描述,讓讀者自己把一切想象出來。
好的設(shè)計是趣味性的設(shè)計。如希區(qū)柯克拍攝的電影。
好的設(shè)計是艱苦的設(shè)計。在繪畫中,肖像畫占最高地位,因為人太擅長觀察臉了,所以肖像畫家不得不加倍努力才能達到我們的要求。
好的設(shè)計是看似容易的設(shè)計。作家的文章讀起來流暢自如,但是背后其實經(jīng)過了反復(fù)的修改。
好的設(shè)計是對稱的設(shè)計。寫作,繪畫,建筑中都大量出現(xiàn)。20世紀,不對稱成了現(xiàn)代主義建筑的前提條件,即使如此,這些建筑也只是主軸上不對稱,細節(jié)部分依然大量使用對稱。
好的設(shè)計是模仿大自然的設(shè)計。無人機就像鳥一樣。
好的設(shè)計是能夠復(fù)制的設(shè)計。當你對一件事情產(chǎn)生熱情的時候,就不會滿足于模仿了。你的品味就進入了第二階段,開始自覺地進行原創(chuàng)。
好的設(shè)計常常是奇特的設(shè)計。比如SR-71“黑鳥”超音速偵察機。
好的設(shè)計是成批出現(xiàn)的。比如15世紀的佛羅倫薩;現(xiàn)在的硅谷。之前,李笑來講要和身邊的人共同成長是提到,當年和他一起從新東方出來的那批人中很多取得成功。
好的設(shè)計是大膽的設(shè)計。今天的實驗錯誤就是明天的新理論,如果你想做出偉大的新成果,那就不能對常識與真理不相吻合之處視而不見,反而應(yīng)該特別注意才對。
Graham認為好的設(shè)計大多數(shù)特點是可以培育的,但是“奇特”這個特點是無法培育的。愛因斯坦并不想讓相對論變的奇特,他只想找出真理,但是真理本身顯得很奇特;米開朗琪羅沒有想樹立自己的風格,他只想畫出好作品,結(jié)果不由自主地創(chuàng)造出了米開朗琪羅風格。你最后發(fā)展出來的風格是自然而然形成的?!捌嫣亍边@個特點尤其如此,沒有其他路可走。
優(yōu)秀作品的秘訣就是:非常嚴格的品味,再加上實現(xiàn)這種品味的能力。
Graham認為,Lisp語言是目前最強大的編程語言,但它沒有得到廣泛使用過的原因是因為編程語言不僅僅是技術(shù),也是一種習慣性思維,非常難以改變。如果在不考慮其他因素的情況下,你不選擇最強大的那種語言就是一件很愚蠢的事。當你的競爭對手被牢牢粘在那些很普通的語言上面,永遠都追不上你使用的技術(shù)。Java是業(yè)界標準,使用它不會有錯,但是人才市場上肯定有無數(shù)的Java程序員,即使為我打工的這批人都辭職了,我也能夠輕易的找到替代者。(掌握核心技術(shù)真是特別關(guān)鍵。)一般來說,條件越苛刻的項目,強大編程語言就越能發(fā)揮作用。但是,無數(shù)的項目根本沒有苛刻條件的限制。(盲目的學(xué)不常用的技術(shù)也有弊端,無法和其他語言寫的程序協(xié)同工作,無法找到很多函數(shù)庫,不容易雇到程序員。)如果一種語言寫出的代碼比另一種語言長三倍,這意味著你開發(fā)它耗費的時間也會多三倍。而且即使多雇人手,也無法縮短開發(fā)時間,因為當團隊規(guī)模超過某個門檻時,再增加人手只會帶來凈流失。在一個高度競爭的市場,即使開發(fā)速度只相差兩三倍,也足以使得你永遠處在落后的位置(還是要有實力啊?。?/p>
“最好的文字來自不同的修改?!彼袃?yōu)秀的都知道這一點,它對軟件開發(fā)也適用。設(shè)計一樣?xùn)|西,最重要的一點就是要經(jīng)?!霸僭O(shè)計”。為了做出優(yōu)秀的設(shè)計,你必須貼近用戶,始終寸步不離。士氣也是設(shè)計的關(guān)鍵因素。設(shè)計意味著做出符合人類特點和需要的產(chǎn)品。但是,“人類”不僅包括用戶,還包括設(shè)計師,所以設(shè)計工作本身也必須符合設(shè)計師的特點和需要。
PS:埃里克?雷蒙德寫過一片文章《如何成為一名黑客》。他建議從Python和Java入手,因為它們比較容易學(xué)。相當高級一點的黑客,還應(yīng)該學(xué)習C和Perl。前者用來對付Unix系統(tǒng),后者用來系統(tǒng)管理和開發(fā)CGI腳本。最后,真正非常嚴肅地吧黑客作為人生目標的人,應(yīng)該考慮學(xué)習Lisp。