歡迎光臨
每天分享高質量文章

宋寶華: 紀念金庸先生——程式員的武俠世界

在漫天的星河中,有這樣一顆星,他樸實無華,卻又熠熠生輝,照亮了無數人的人生。他就是金庸先生。隨著一代大俠的駕鶴西去,“飛雪連天射白鹿,笑書神俠倚碧鴛”,成為絕響。

 

每一個少年心中,都有一個英雄夢。曾經幻想自己,長劍佩腰,浪跡江湖,十步殺一人,如閑庭信步;曾經幻想自己,青衣長袍,長蕭悠遠,百年等一人,訴兒女情長;曾經幻想自己,墮萬丈淵,偶遇奇人,習蓋世武功,救民於水火。夢醒時分,心碎了一地,結局只是一個猥瑣大叔,面對程式碼與bug。憂慮著遠方,焦慮著當下,俠義的心腸,英雄的夢想,都逐漸的遠去。

 

但是,有人的地方就有江湖。程式員的世界,未嘗不是另外一種武俠的世界。有的程式員,神功蓋世,俠之大者如喬峰,以一敵百;有的程式員,似裘千丈,程式設計多年,不過一江湖術士;有的程式員,功名在身,卻深居簡出,低調隱居,如同風清揚。

我們總結金庸武俠小說裡面絕頂高手的共同特徵,可以發現如下特點:

  1. 有極強的內力修為

  2. 至少深入掌握一門絕世武功

  3. 對多種神功均有一定瞭解

 

我們下麵來逐一剖析。


有極強的內力修為

令狐沖最開始在習得風清揚的獨孤九劍之後,已經可以解決田伯光這樣的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是技術路線發展的充分條件,不是必要條件)。下麵圖示最好到最差的技術配置:

 

因此,我們總結頂級程式員的三大特點:內功強,某個領域深,多個領域廣。當然,無論武功有多高,都必須具備一個品質:那就是仁義。

 

沒有仁義,武功高強如任我行、東方不敗、嶽不群、歐陽鋒、成昆者,都不會成為任何人的榜樣。

謹以此文,紀念金庸先生。

贊(0)

分享創造快樂