今天一早,我給一位遠在西安還從未謀面的程式員小鄧發出了一份很不錯的offer,一周前,他觀看騰訊開發者大會的直播視頻,聽了我的演講之后,加了我的微信,并主動告訴我,很想加入濤思資料,雖然他畢業的學校還有作業的經歷,不是那么靚麗,但我一下看到了他簡歷里列的GitHub地址以及參與的開源專案,因此馬上進GitHub瀏覽他的程式,發現程式挺漂亮,結構、層次都很清晰,代碼可讀性很強,更讓我驚訝的是,用英文寫的檔案以及注釋完全不輸給我這個在美國留學作業10多年的海歸,我立即讓另外一個同事也去看一下他的代碼,得出的結論是,這人很優秀,即使遠程作業,也值得馬上錄用,因此我們馬上視頻交流,很快,我就定下了錄用的決定,
如果沒有GitHub,沒法翻看他寫的上萬行代碼以及檔案,沒法查看修改記錄,我絕不會考慮錄用一個連面都沒有見過的小伙子,而且招聘時,還是會更傾向于我中國科大的師弟師妹,或有過其他名校就讀和大廠作業經歷的人,開源,改變了我的面試流程,改變了濤思資料,也改變了一個程式員的人生軌跡,
現在的軟體系統往往很大,以大家熟悉的Linux內核為例,源代碼行數已經超過2500萬行,檔案超過6萬個,參與的開發者超過2萬人,就連濤思資料開源的TDengine, 一個看似簡單的物聯網大資料處理平臺軟體,C/C++代碼已經超過30萬行,Python測驗代碼都已超過15萬行,而且還會成倍增長,開發一款軟體,更多的是團隊協同,而不是單兵作戰,單個程式員的貢獻如何體現?如何讓外界的人知道并評估?對于閉源軟體來說,這個價值判斷問題無從下手,但開源不同,因為程式員寫的任何一行代碼,注釋,做的任何修改都會被記錄下來,而且任何人都可以看到,能力的高低,貢獻的大小隨時可查,
TDengine 在 GitHub 上的頁面
開源給程式員提供了一個展現自己個人能力的絕好機會,特別是對于大廠、大系統的開發者,這個展現,能讓大家更加客觀地評價一個程式員的價值,長期以來,大家更容易相信在大廠作業過的,雖然他有可能從沒貢獻過核心代碼,從沒解決過重大技術問題,只是一個濫竽充數之輩;大家更傾向于相信名校畢業的,即使他早已停止學習,只是曾經高考分數不錯;大家更容易相信35歲以下的人,不相信大齡程式員依然有很強的戰斗力,開源的代碼,能讓大家拋棄對教育、年齡、性別、經驗、膚色、地域、文化的偏見,看到一個程式員背后真正的價值,便于組建團隊,便于協同作戰,
開源讓程式員的代碼成為了作品,與畫家的畫、音樂家的曲子一樣,可以被全球程式員欣賞、使用,并傳承,對于閉源的軟體而言,這是不可能的,大家看到的只是UI或API,無法讓人看到程式本身,更無從欣賞,你在微軟為Windows 作業系統開發的核心模塊,無論設計得多么優雅,你在騰訊為微信后臺設計的訊息處理模塊,無論高并發能力有多么強悍,都無法讓人欣賞、驚嘆,但開源之后,一切都變了,只要你的代碼足夠好,解決了重大問題,那一定會成為傳世之作,即使有瑕疵,后來者也可以在你的基礎上修改,但你的名字永遠會鐫刻在代碼上,而不會被歷史沖刷掉,
有了作品這個感覺之后,程式員會天然的對自己的代碼產生一種自豪感,會對代碼的質量產生極致的追求,因為他不想自己的代碼被人唾棄,而是被欣賞,在2019年7月決定將TDengine開源之前,濤思資料團隊花了好幾個月的時間整理代碼,撰寫檔案,目的就是不想讓它過于難看,被人詬病,不開源的話,我們根本沒有這個動力去做,因為用戶是看不見的,在2019年底啟動TDengine 2.0的開發,更是如此,就是想讓TDengine的設計與代碼更加優雅,結構更加清晰,讓其他程式員看的時候,能享受到一種快樂和美感,3個月前,我花了幾天時間動手為TDengine寫了一個小模塊tref.c,就想完美地解決在多執行緒情況下,資源的生命周期管理問題,而且就希望這個500來行的小程式能被全球的程式員學習、使用和改進,不再為多執行緒問題所煩,如果不是因為開源,沒有會成為作品的感覺,我大半就是僅僅解決一個具體問題而已,
GitHub 上 tref.c 的一段源代碼
對于初入茅廬的程式員而言,參與開源專案,更是一種學習的機會,不僅可以觀摩、學習絕頂高手的代碼,更可以參與其中,貢獻一段代碼,自己寫的代碼有問題,一定會被測驗出來、被人指出毛病,甚至直接被人修改或拋棄,與大俠直接過招,相比閉門造車,相比自己摸索,成長的速度要快N倍,而且參與的方式有很多種,除直接貢獻產品代碼外,還可以貢獻測驗例、測驗代碼,貢獻檔案,貢獻使用案例等,就象TDengine,測驗代碼的行數將會遠超過產品本身的代碼行數,而且對技術的要求一點都不亞于產品本身,我的第一行程式是1984年寫下的,當時正讀高中一年級,只能看到譚浩強撰寫的《BASIC語言程式》這本書,書里盡是一些簡單得不能再簡單的程式,如果當時就能像現在這樣訪問無數優秀的開源代碼,對于一個如饑似渴的學生而言,那無疑找到了世界上最好的課本和老師,
對于90后00后程式員而言,開源,讓他們趕上了程式員前所未有的黃金時代,對于我這個52歲的大齡程式員而言,仍然是趕上了黃金時代,因為可以依靠自己的實力證明,編程沒有年齡的限制,而且仍大有用武之地,真心的希望,三十年之后,還有人在看在用我寫的代碼,而且我自己還能給TDengine貢獻代碼,那才是我最大的幸福,
這臺Mac為TDengine貢獻了4萬多行代碼
“這是最好的時代”,開源,讓程式員的價值能更客觀地展現,讓程式員有了屬于自己的作品,讓程式員去追求極致,有動力去打磨作品,讓其成為傳世之作,對于真正的程式員而言,毫無疑問,這是最好的時代,
“這是最壞的時代”,開源,讓濫竽充數的程式員無所遁形,能傳承下去的一定是精美的作品,不再會有劣幣驅逐良幣之說,對于靠拍、靠混,依賴炫酷的PPT和報告升遷的程式員而言,毋庸置疑,這是最壞的時代,
無論年齡,無論學歷,無論是在BAT還是在startup作業, 只要你熱愛編程,就一定要參與到開源的浪潮中,無論你是全職加入濤思資料這樣的開源軟體公司,還是作為社區貢獻者參與一個開源專案,只要持續努力,你一定會給世界留下一個印跡,給人類留下一幅作品,
陶建輝
2020年12月27日于北京望京
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/241977.html
標籤:其他
上一篇:程式員的bug修復寶典
