當前位置:
首頁 > 最新 > 開源–——「這是最好的時代,這是最壞的時代」|陶建輝

開源–——「這是最好的時代,這是最壞的時代」|陶建輝

關注風雲之聲

提升思維層次

導讀

對於真正的程序員而言,毫無疑問,這是最好的時代。對於靠拍、靠混,依賴炫酷的PPT和報告升遷的程序員而言,毋庸置疑,這是最壞的時代。

今天一早,我給一位遠在西安還從未謀面的程序員小鄧發出了一份很不錯的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日於北京望京

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!


請您繼續閱讀更多來自 風雲之聲 的精彩文章:

馬斯克搬家能說明矽谷創新能力不行了嗎?中國如何領導世界(二)如何建立以原創為主導的科技創新體制2|汪濤
諾獎得主蓋姆為什麼認為中國的基礎研究僅次於美國?納米限域毛細凝聚可以作為一個例子|袁嵐峰