前言:
在全球頂級開源會議KubeCon +CloudNativeCon + Open Source Summit ,經陳莉君老師的引薦,我們有幸認識了這位長期活躍在一線的全球頂級內核開發工程師李勇老師,李勇老師本人風趣幽默,面對這位內核大牛就像面對一位親切的學長,他為我們講述了他從一位主修經濟學的大學生由於在圖書館翻開一本薄書後一發不可收拾的愛上內核,一路走來崎嶇而有趣的故事,李勇老師一直在把他目前的成果歸結於幸運,而在這其中我們深深的意識到,越努力越幸運。毫無疑問,李勇老師是一位努力的天才。
Linux內核工程師是怎麼步入內核殿堂的?
劃
重
點
Coly Li答:
步入殿堂,我的理解就是自己能靠這手藝養活自己,不僅餓不死,還有碗飽飯吃。對於資質平平的普通人來說,這也不難,就是堅持和時間的問題。大家看到的高手都是聰明人,他們不做內核開發做其他工作也會是很牛X,我們這些普通人之所以說要堅持和時間,是因為我們不管做什麼事情,能有口飽飯吃都得靠堅持和時間。
內核開發也是寫軟體代碼,和其他的軟體代碼開發工作沒啥區別:創造有人用的代碼。這就是一份工作,把工作做好,領薪水買米麵油氣交房前。可能不同的是內核軟體沒有用戶介面,普通用戶沒法直接看到效果。這份工作的好處是穩定和靈活,因為市場上工作崗位數量遠遠超過從事內核開發的聰明人,所以普通人如果能夠達到基本的工作要求,也可以得到一份穩定而且靈活的工作。
穩定是指,薪水比較穩定,崗位也比較穩定,不會出現短期內快速加薪升職的情況。靈活是指,有很多此類崗位是可以提供遠程辦公的,所以如果不強求留在北上廣深,而是回到老家和家裡人一起生活,找一個彼此相愛的人廝守,這份薪水可以在當地過上嬌縱淫慾的生活妥妥沒問題。此外,只要能完成工作,時間都是自己安排的。如果真想做內核開發(其實絕大多數人並不感興趣),這種氛圍還是很有助於能力的成長的。
聰明人的例子就不說了,扎心。大家分享一下我自己這個普通人是如何走上做內核開發這條路,還至今沒有餓死的。
我是97年上的大學,學校比較一般,剛入學的時候我滿腦子想的是如何畢業之後和老家親戚們一起經營農村土特產。大概是大二下學期有一次在圖書館看書,無意中看到了一本介紹Linux的薄書,作者寫的很有意思,我居然就在圖書館一直看到很晚把那本書給看完了。然後我就決定,要去找Linux來玩玩。當時學校的機房裡還沒有Linux,我自己也沒有電腦,只能是殘念了。後來大三暑假我去了一家叫美商網虎的Linux公司實習,算是真正接觸了這個系統,感覺很酷。關鍵是編程也是黑螢幕和我學DOS編程的環境很像,上手很順利,呵呵。再後來就是在沈樹鏞教授指導下,在學校計算中心開課跟大家介紹這個系統的使用,自己也利用計算中心的網絡環境和設備環境,很深入的了解了這個系統的使用和配置,以及基本的編程概念。
然後就開始進去了學習Linux內核編程的大坑,哈哈,什麼不懂學什麼,一轉眼就十幾年過去了。從驅動開始做起,然後做應用,然後做系統管理工具,然後做文件系統,然後去網際網路公司做了幾年工程管理,現在又回到一線崗位繼續做Linux內核開發。
一眨眼,從我98年第一次知道Linux到現在,已經20年過去了。現在還能依然靠開發Linux內核養家餬口,還把自己吃成了胖子,我覺得已經蠻開心了。如果把這種狀態稱之為步入殿堂的哈,可能最重要的一條就是不要放棄自己。Linux內核代碼是由一群優秀的工程師開發的,裡面還會嘗嘗夾雜很多其它領域專業知識。普通開發者(譬如我)看不懂或者需要學習其它知識是家常便飯,時時會覺得自己和其他開發者比起來簡直就是一頭蠢豬,做這一行完全不適合沒出路。這種感覺會經常冒出來 然而,對於系統軟體開發的喜愛是由心而生的,隨著越來越深入,我也麼逐漸接受了自己沒有預期那麼優秀的現實,並鼓勵自己蠢也不妨礙我喜歡這個技術
做Linux內核開發和其他軟體開發差別不太大,要做到優秀都是要付出努力的,沒什麼高低之分。這畢竟只是一份工作,要認真對待,但它也不是生活的全部。作為一個工程師,一個中國人,如果通過參與這個技術,從很具體的細節做起,讓生活更美好,讓世界更美好,讓我們彼此之間更和諧,這是很有樂趣的事情,也是我認識的很多比我優秀的多的內核開發者們發自內心的動力。
上圖右一胖子是本人。
系統軟體開發,坦誠說並不適合絕大多數人,但如果有緣能夠參與其中,養家餬口沒問題的。如果有朋友覺得好難,或者好苦,只要你還喜歡就不要放棄。你不孤單,還有很多「蠢貨」和你一樣,一邊撓頭苦逼,一邊傻樂傻笑
文章轉自知乎Linux內核