在漫天的星河中,有這樣一顆星,他樸實無華,卻又熠熠生輝,照亮了無數人的人生。他就是金庸先生。隨著一代大俠的駕鶴西去,“飛雪連天射白鹿,笑書神俠倚碧鴛”,成為絕響。
每一個少年心中,都有一個英雄夢。曾經幻想自己,長劍佩腰,浪跡江湖,十步殺一人,如閑庭信步;曾經幻想自己,青衣長袍,長蕭悠遠,百年等一人,訴兒女情長;曾經幻想自己,墮萬丈淵,偶遇奇人,習蓋世武功,救民於水火。夢醒時分,心碎了一地,結局只是一個猥瑣大叔,面對程式碼與bug。憂慮著遠方,焦慮著當下,俠義的心腸,英雄的夢想,都逐漸的遠去。
但是,有人的地方就有江湖。程式員的世界,未嘗不是另外一種武俠的世界。有的程式員,神功蓋世,俠之大者如喬峰,以一敵百;有的程式員,似裘千丈,程式設計多年,不過一江湖術士;有的程式員,功名在身,卻深居簡出,低調隱居,如同風清揚。
我們總結金庸武俠小說裡面絕頂高手的共同特徵,可以發現如下特點:
-
有極強的內力修為
-
至少深入掌握一門絕世武功
-
對多種神功均有一定瞭解
我們下麵來逐一剖析。
有極強的內力修為
令狐沖最開始在習得風清揚的獨孤九劍之後,已經可以解決田伯光這樣的senior engineer了。獨孤九劍強調的是招式的牛逼,無招勝有招,但是,他還是有致命的弱點,那就是內功不強。令狐沖在獨孤九劍大成之後,在地下室和principle engineer任我行對練的時候,任我行還是用內力震昏了他。直到令狐沖學到了《易筋經》,成功融合桃谷六仙、不戒大師分別註入的八道真氣,方生大師給他輸入的真氣,黑白子全部內力,嶽不群大部分內力後,這個時候的令狐沖,可以說是真正的獨孤求敗了。
這件事情對我們的啟發是,內力不強,招式再多,也會限制最後在技術領域的成就。由於大學階段計算機學習的整體缺陷,導致很多童鞋畢業數年後仍然不具備一些基本的內力
a. PV操作
b. 訊號量,初值為1的訊號量通常做互斥,初值為0的訊號量通常做同步
c. 互斥
d. 通訊分為同步和互斥
e. LRU
…
很多很多不可盡數,比如有的童鞋,在公司裡面都工作幾年了,還是不知道堆和棧的區別。你這個時候,練再多的招式,懂再多的語言,C/C++/Java/Python…全部都擼過一遍,也難逃程式員的終極宿命,那就是越到後期越悲涼,它的曲線類似:
因為到了35歲,這種大齡程式員,很多公司對他的定位,已經是要能夠獨擋一面,解決效能、架構等方面的需要突破的問題。這個時候,內力不強,計算機的基本原理都不通,就極可能在這個時間點上,技術生涯自由落體,變地非常被動。
我們認為,有兩門基礎課,對程式員練習內力尤其重要,一是微機原理,二是作業系統。微機原理讓我們理解計算機是怎麼工作,CPU、CACHE、記憶體、硬碟、外設彼此間的牽絆;作業系統讓我們理解軟體是怎麼工作,系統的硬體資源如何被軟體消耗,各個軟體元件如何互動。這裡我們推薦兩門書:
《深入理解計算機系統》
《Operating System Three Easy Pieces》
“Linux閱碼場”公眾號也數次推薦了這兩門書。相信有很多童鞋已經在研讀。
至少深入掌握一門絕世武功
有很多童鞋,一生隨波逐流,今天在這個公司乾這個,明天在這個公司乾那個,沒有明確的興趣點和技術成長標的,這樣很難形成堅實的技術沉澱。比如你把凌波微步學一招,打狗棒學一招,降龍十八掌學一招,每個都學一招,一共學了100招,但是隨便來一個會兩招降龍十八掌的人就可以把你幹掉。所以,任何一個頂級的程式員,必有他的成名武學,他在這個領域,成為大師。
喬峰、郭靖 |
降龍十八掌 |
張無忌 |
九陽神功 |
小龍女 |
玉女心經 |
洪七公、黃蓉 |
打狗棒 |
楊過 |
黯然銷魂掌 |
張三豐 |
太極拳劍 |
… |
… |
現在的技術領域這麼多,熱點層出不窮,追逐熱點固然不是壞事,但也可能讓你筋疲力盡。其實這樣無窮追逐,不如找到一個自己的興趣點,比如Linux核心也罷、TensorFlow也罷、GPU多媒體也罷、Android也罷,至少你要在某個領域裡面成為高手,這是吃飯的本錢,也是行走江湖的籌碼。就是說,只要想到某個技術領域,就能想到你名字;想到你名字,就能想到這個技術領域。
根據我們的觀察,擁有成名武學的程式員,到了35歲,甚至40歲後,不僅沒有在江湖上被遺忘,還逐步進入了更加頂級的公司的更加頂級的技術團隊,待遇之高,達到如果在微信群透露,就會讓其他程式員活不下去的程度。
對多種神功均有一定瞭解
既要低頭拉車,又要抬頭看路。有成名武學,也不能故步自封。仍然要看一看別人在玩什麼,這是聊天的資本,在廣泛的場合,可以和更多的人好好聊天。不能低估聊天的重要性,不能聊天,尤其是不能和高階領導聊天,會限制自身的可見性。另外一個方面,知識面廣,對自身技術領域可形成交織互補,因為很多技術,做到後來,發現它們會交織互融。在金庸武俠小說裡,經常出現練習某種武功久久不能突破,但是在練習了另外一種武功的情況下,突然前一種武功的最後一層就練成了的例子。
下麵我們看看頂級高手的武功配置:
張無忌融合九陽神功、乾坤大挪移、太極拳劍和聖火令神功四大蓋世武功為一體,當世無敵,此外還精研醫術和毒術,術絕塵寰。
虛竹為少林派弟子,學以羅漢拳和韋陀掌。意外破解珍瓏棋局後,承得無涯子七十年深厚的內力,而其中也含有無涯子本身所學的北冥神功以及小無相功。獲得了天山童姥傳授的逍遙派天山折梅手以及天山六陽掌和生死符。在繼承天山靈鷲宮後得見靈鷲宮後殿壁上無數精妙武功。
令狐沖學會了華山的劍法,寧式一劍、思過崖山洞的其他門派劍法,之後習得獨孤九劍,在梅莊地牢中習得吸星大法,最後一個階段,習得少林易筋經。
…
因此,我們總結頂級程式員的三大特點:內功強(1),某個領域深(2),多個領域廣(3)。這三者之間的關係是:1是2的必要條件(如果基礎不牢,不可能在某個領域深),1+2是技術生涯成功的必要條件,3是1和2的補充(3是技術路線發展的充分條件,不是必要條件)。下麵圖示最好到最差的技術配置:
因此,我們總結頂級程式員的三大特點:內功強,某個領域深,多個領域廣。當然,無論武功有多高,都必須具備一個品質:那就是仁義。
沒有仁義,武功高強如任我行、東方不敗、嶽不群、歐陽鋒、成昆者,都不會成為任何人的榜樣。
謹以此文,紀念金庸先生。