Linus Torvalds背后 :成功的五個殘酷真相
譯文?譯者 | 布加迪
如果你不知道Linus Torvalds是誰,我會做一番簡短的介紹;如果你是一名軟件工程師,應該知道Linux是什么,我幾乎可以肯定你至少使用過一次Git。Torvalds可以說是這兩大項目背后的功臣。
當時間回轉到1991年,年僅22歲的芬蘭程序員Linus Torvalds發布了操作系統Linux。他公布了代碼,允許愛好者們貢獻自己的力量來使它強大。彼時,還沒有人可以窺見一個開源時代的開啟,也無法預見如今Linux在全球遍地開花的光景。
Linus Torvald本人無疑是傳奇的,如果你想了解他的更多信息,可以上網搜索,我不想在本文中介紹更多細節。這里要討論的是他的成功以及成功背后那些并不怎么勵志的現實。
在正文開始之前,我想告訴你一件事:我不能保證你會喜歡這些想法,我只是道出真相,殘酷而痛苦的真相。
1、沒有人是特別的
勵志視頻和書籍有一個共同的主旨:你不平凡;如果工作方向對頭,并投入所有精力,你就能如愿以償,然后你會變成一個很特別的人。它們應該是對的,因為看看歷史,數十億人中有很多人流芳百世。我們認識他們是由于他們取得了巨大的成就。一個共同的主旨是,如果我們摁下正確的按鈕,我們也能取得同樣的成就。
很久以前我對這些想法深信不疑,但它們完全是謊言。沒有人是特別的,一個人靠自身取得的成就很少。我們通常沒有注意到的一個共性是,成功人士實現目標的方式不是努力工作,而是利用他人的工作能力來實現他們想要實現的目標。長期以來,人類一直在這么做。出色的指揮官利用國家來實現他們想要實現的目標。在近現代史中,我們開始通過創建公司做同樣的事情。這些公司發現,通過付錢給員工并利用他們的能力,可以成就一番偉業。
比爾·蓋茨、馬克·扎克伯格、史蒂夫·喬布斯之類的大人物,所有這些人都是用同樣的策略發家致富的,連沃倫·巴菲特也是。一般來說,我們認為巴菲特是通過長期用自己的錢做投資發家的。由于他奉行長期投資,所以他很成功。然而,他一度發覺其個人資金不夠用,于是開始利用別人的錢,后來發明了新的方法來利用別人的錢。
那么Linus Torvalds呢?他發明了一種新方法來實現同樣的目標。他放手一搏,決定向所有人開放其內核的源代碼,然后他注意到人們貢獻好的想法。后來他創建了Git ,允許人們實現想法,從而加快了這個過程。通過25年如一日地做同樣的事情,他創造了特別的東西。然而,這不是他一個人做到的。今天,如果你查看Linux的GitHub頁面,會發現這個項目有13000多個貢獻者,超過13000人自愿參與他創建的這個項目。此外,我們甚至沒有算上使用Linux創建新型商業模式的許多公司的那些人。數以百萬計的人努力將Linux打造成今天的版本。
簡而言之,沒有人是很獨特的。我們都是龐大系統中的一分子。就像螞蟻和蜜蜂一樣,我們共同取得了偉大的成就。互聯網不是某個人創造的,有很多工人在海洋深處鋪設電纜,連接不同大陸上的人們。因此,如果你想獲得成功,應與其他人合作,并學會如何將他人的力量為你的項目所用。如果你認為自己可以做很多事情、認為自己很獨特,那么你就是另一個巴斯光年。
2、保持友善并不好
我和其他人一樣是一名軟件工程師,在我所在的那家公司,保持友善很重要,因為公司在評估你的年終獎時,最主要的衡量指標之一就是你的性格。事實上,如果人力資源解雇人,與績效同樣是重要的衡量指標之一就是行為。我們強迫人們變得友善,否則就淘汰他們。
我認為我們這么做是由于我們不想聽到殘酷的事實。我們希望聽起來不是我們的過錯,即使明明是我們的過錯。然而,我不認為我們在做正確的事情。當然在一些方面,為人友善是必須的。比如說,如果你照顧一位老人,為人友善應該是一項要求。然而,我認為這不適用于科技行業。
幾位研究人員嘗試了這個理論:他們設立了兩個由隨機人群組成的對照組。一組人被迫變得友善,另一組人可以隨意地更積極地捍衛其想法。將同一個問題拋給這兩組人,對結果進行評估。在多次重復之后,他們發現積極捍衛想法的那組人一再找到更好的想法和解決辦法。技術改進專注于同一件事:找到解決問題的最佳辦法。因此,我認為我們應該能夠堅持各自的想法,直到我們通過使用數學證明或進行實驗找到最佳解決辦法。
這一點上,我想澄清一件事:積極捍衛并不意味著即使你錯了也要堅決捍衛想法。如果你錯了,而且有證據或有合理的解釋,你就應該坦然接受,讓其他人加以指正和改進。在捍衛想法的同時,應該保持理性。
Torvalds對Linux做了同樣的事情。無論面對代碼提交,還是新聞媒體,他都非常積極地捍衛其想法。我不支持這一點,他也傷了很多人的心。然而,這是找到最佳解決辦法的好策略。由于這種做法,Linux變得與眾不同。macOS 專注于特定的硬件,Windows因內存泄漏和缺乏效率的實施而頻頻出現致命藍屏,而Linux適用于所有設備上,只需要一點專業的操作,并且經過合理優化,因此內核的調用跟蹤比Windows遠勝一籌。
3、目標、想法……統統是謊言
你知道什么是幸存者偏差嗎?二次大戰期間,美國海軍分析中心的研究人員對執行任務后返回的飛機受到的損壞進行了研究。然后,他們建議在受損最嚴重的部位加厚裝甲,以盡量減小轟炸機在敵方炮火中的損失。然而,Abraham Wald發表了不同的看法。Wald是一位匈牙利數學家,也是統計研究小組的成員,他運用統計技能處理各種戰時問題。他注意到一件非常簡單的事情:他們在分析的飛機是返回的飛機。這意味著這些飛機即使在那些部位被擊中時也成功返回,這意味著如果它們在其他部位被擊中,就無法成功返回。
在我看來,目標、想法和愿景是同一種理念的產物,即幸存者偏差的產物。很多人只研究成功人士,他們認為成功人士都有愿景和目標。然而,我不認為這是區別所在。不妨想想大學入學考試。你認為排在第1百萬位的人爭取入學考嗎?很可能,這個人爭取更高的位次,但沒有正確地做其他事情。如果成功者和失敗者的目標和愿景都同樣,那么它們就不是他們之間的區別。
Linus Torvalds在TED演講采訪中承認,他沒有愿景或5年計劃。他基本上是遇到問題就解決問題;另一方面,他試圖為已經解決的問題找到更好的解決辦法。他有一套系統,一套解決問題和尋求更好辦法的系統。將這套系統運用25年,這就是Linux背后的成功理念。
4、沒有智能設計一說
有些人只會一味地想,卻無法開始做想做的事情,我就是其中之一。我在開始實際動手之前研究一番,以求找到最佳方法。到頭來,我永遠不會開始,因為我已經迷失在尋找最佳方法和學習獲得最佳方法的過程中。
后來我注意到一件事。人類通過犯錯學會了一切。我們通過嘗試、試驗和犯錯,發現了很多東西。我想舉個例子:如果你了解日本的地理位置,可能知道那里經常發生很多地震。在日本歷史上,造的房子不太長,一般比較寬,因為如果他們建造的房子很長,會在地震中毀于一旦。今天他們解決了這個問題,但如何解決?他們創建了一個小型地球模型,實施了不同的想法,然后通過形成人造地震來測試這個模型。只有測試想法、發現新問題,并逐一解決每個問題,日本才為建筑物地基想出了出色的設計。現在,日本是建筑物非常牢固耐用的國家之一。
Torvalds在一次采訪中表示,Linux中沒有智能設計。大致說來,他嘗試想法,通過犯錯和解決問題,他才有所發現。就這點而言,你可以說“不存在智能設計,但有很多介紹智能設計的書籍”,確實如此。這類書中我最偏愛的一本是Robert Martin編寫的《整潔的代碼》(Clean Code)。他在書中給出了很好的設計基礎。然而如果你讀過這本書,就很容易理解他通過從錯誤中汲取教訓提煉出了所有這些原則,不僅從他自己的錯誤中汲取教訓,還從其他工程師和破產公司的錯誤中吸取教訓。
總而言之,其想法是通過犯錯誤來學習。然而,不要一再犯已犯過的錯誤。嘗試新的,通過解決遇到的每個問題,學習新知識。不要試圖弄清楚什么是最好的方法,而是開始動手,犯錯誤也沒關系。
5、分心是潛在的殺手
硅谷文化基于那些頻繁跳槽的軟件工程師。這么做的目的是什么?我認為有兩個:這樣一來,技術想法和改進散布于許多公司當中。其次,它掀起了聘請最有經驗的工程師的一場競爭,這使得聘請這些人的報酬越來越高。在軟件工程師的精美YouTube視頻中(我也喜歡看這樣的視頻),我們可以看到精美的辦公室提供免費美食,高額薪酬自不待言。有了所有這些誘人的東西,很多人都想成為其中一員。
與其他方面一樣,這帶來了我們通常不會注意到的成本。每個公司都有自己的系統,自己的實施風格和不同的技術。在我們了解其中的每個細節、開展某個項目足夠長的時間之前,我們離開了公司。今天,在大多數大公司,工程師的平均停留時間不到2年。
這有什么不好?我想向你展示不同的視角。Linus Torvalds在硅谷的一家公司 (Transmeta)開始工作,他不是在多家公司當中跳來跳去,而是在這家公司待了將近7年,直到為Linux基金會奠定了基礎。他為什么那么做?為什么他不像其他人那樣在公司之間跳槽?他在TED Talk采訪中所說,自己非常固執,并不輕易放棄項目。事實上,他太固執了,以至于已經在同一個項目上投入了25年多。
沃倫·巴菲特將同樣的觀念運用到投資界,長期運用同樣簡單但有效的策略,并使之完美,最終他成為了首富。這里的要點是,成功屬于關注某件事的人,而不是屬于從一個項目跳到另一個項目的那些人。
這個建議并不適合所有人,因為我們中的一些人只是為了錢而從事軟件工程,這本身沒有什么錯。然而,有很多人想要創造偉大的產品;遺憾的是,唯一的方法就是專心致志。因為很多人同時在努力實現不同的目標,如果你想要成功,創造其他人想要使用的產品,那么你真的需要專注于想要解決的問題和想要完成的項目,并持之以恒。
原文鏈接:https://medium.com/codex/5-harsh-truths-from-linus-torvalds-406ab20cea02