在新年前夕的全員總結大會上,濤思數據的一位 70 后研發老將收獲了一份名為“最具開源精神獎”的獎項,這不僅是對他在 2021 年基于 TDengine Database 所做出的開源貢獻的認可,更是映射出其長久以來堅持走在開源路上的不變初心。作為老一輩開源人,桑樹多以資深的研發技術、樂于分享的精神、無處不傳播的毅力,真正踐行著開源人的使命。關于如何參與開源社區建設、如何打破 35+ 大齡程序員職場焦慮等當下的熱點問題,他也沉淀下了自己的觀點和思考。
從 1998 到 2022,20 余年開源路上的堅持與熱愛
作為一名 70 后程序員,桑樹多與開源的故事最早可以追溯至 1998 年。彼時才從哈爾濱工業大學畢業不久的他進入了一家科技公司,正式開啟了自己的代碼職場生涯,也打開了奇妙開源世界的大門。
從開始使用 Linux 桌面環境,到自己動手為新的硬件設備移植驅動軟件,再到后來陸續參與了 Linux Kernel、MeeGo、Ubuntu 等開源軟件的開發,桑樹多的開源之路走得越來越深,與開源技術也結下了長達 20 余年的不解之緣。

“從 Red Hat Linux 5.0 開始,我接觸到開源,然后一步步從使用者成為愛好者,最后成為了一名貢獻者。回顧過往 20 年參與開源的經歷,真的不得不感嘆一句受益良多。”
對于做開發的同學來說,“開源”這個概念并不陌生。近年來,伴隨著云計算、大數據、人工智能等數字技術的快速發展,開源模式的熱度也在不斷攀升,日漸成為數字技術創新和產業數字化轉型的重要模式,開源軟件也成為了各大互聯網企業背后的支撐力量。
從科技發展的軌道來看,參與開源的重要性不言而喻,但仍然有很多開發者以工作繁忙等為理由來閉目塞聽。事實上,這并不是一件多么困難的事情,桑樹多用他的親身經歷進行了說明。
“你可以先成為使用者并積極參與社區討論,通過學習其他人解決問題的方法和代碼熟悉開源軟件的架構和設計思想,再進一步發展自己提交 Patch 和 PR 解決問題,成為 Contributor——在其他用戶遇到自己解決過的問題時主動幫助他人,在有能力時積極貢獻代碼。”
“而對于開源小白來說,你可以從自身的技術興趣出發來選擇想要參與的開源方向,如果對數據庫感興趣,那 TDengine 就是一個非常適合上手學習的開源項目,如果是對消息隊列感興趣可以選擇 Kafka。”
入門容易堅持卻難,我們不妨從桑樹多的經歷中探尋一下堅持的理由。參與開源究竟給他帶來了什么?
從開發者到 Contributor,尋找參與開源的獲得感
開源究竟是什么?參與開源的意義又在哪里?
“簡單來說,開源的意義就是打破傳統軟件研發自上而下的研發模式,更多應用自組織開發模式快速迭代打造精品軟件,如果你還想更加深入地從文化和理念的角度去理解開源,那可以學習一下《大教堂與集市》這本書。”
作為一個資深的開源軟件開發者,桑樹多的開源經歷也向我們展示了參與開源到底能夠帶來哪些改變和幫助。
“可以負責任地講,參與開源一定會增加自己的職場競爭力,因為這可以讓你更容易接觸到先進的技術,像 Linux Kernel 之類的很多開源軟件,代碼已經經過千錘百煉,通過閱讀這些代碼就可以學習其背后的設計思想。而且你還可以在開源社區內進行討論學習,讓自己能夠更快地收獲成長。”
此外,桑樹多還認為,如果能成為一名 Contributor,通過自己編寫的代碼給關注的開源軟件帶來提升,那將是一件非常有自豪感的事情。首先自身技術實力在專家 review 的環節可以得到他人的認可;其次在 review 過程中進行觀點交流也可以幫助自己學習他人的觀點,發現自身的疏漏和不足;在有了一定經驗之后,你也可以去幫助別人 review 代碼,以此實現教學相長。
在這個過程中,桑樹多跟一些專家建立了深度聯系,也交到很多志同道合、熱愛開源、喜歡開發的朋友。由此可見,參與開源的獲得感是一種多維度的、從內到外的提升,這不光體現在技術層面,在情感層面也能獲得滿足感。
“還有一個參與開源的好處,那就是方便‘跳槽’”。雖然聽起來不太正經,但是確實是一個行之有效的方法,因為很多公司的 HR 或者獵頭都會通過開源項目來尋找一些有經驗的開發者,在開源這條路上越走越深也就意味著有越來越多的工作機會向你在招手。
閱讀到此,大家可能會有所好奇,桑樹多與濤思數據就是這么結緣的嗎?當然沒有這么簡單,下文中將會為大家揭曉答案。
因開源結識 TDengine,他選擇為國產開源軟件添磚加瓦
2019 年中一次偶然的工作契機,桑樹多成為了 TDengine Database 的 Contributor。可能是出于對一位 50 歲大齡程序員兩個月寫出一萬八千多行代碼的震驚和敬佩,也可能是因為對國產開源軟件投入了越來越多的關注,總之在種種原因的作用之下,不久后他選擇加入濤思數據。
“當我了解到年屆 50 的 Jeff(濤思數據創始人陶建輝)還在繼續寫程序,并且打造出 TDengine 這個產品的經歷后,我就開始在 GitHub 上關注 TDengine,然后驚喜地發現中國的團隊也能開發出精品開源軟件。在深入地了解下我越發覺得,TDengine 并不是一款被憑空創造的產品,而是真正地在解決現實中的實際問題,而且正是憑借這一點,其用戶和市場規模也都在穩步增長。”
目前桑樹多在濤思數據主要負責 TDengine 的生態應用研發工作,致力于讓更多人能夠在更多場景和環境下更容易使用。盡管已經擁有很豐富的工作經驗,但猛然調轉方向到一個自己涉獵并不是很深的技術領域,如桑樹多這般的技術老將也不免需要適應一段時間,“遇到最大的困難主要是之前技術方向不在數據庫,對數據庫的學習需要從頭開始,但好在通過大家的熱情幫助和自己的努力也算是摸到數據庫的邊兒了。”
對于桑樹多而言,從加入濤思的那一刻開始,自己的全部精力就投入到了 TDengine 的優化和發展中。由于 TDengine 是使用 C 語言開發,對很多開發者而言門檻略高,對此桑樹多也提出了一些不同的看法。
“TDengine 的代碼質量很高,模塊之間劃分總體上比較清晰,文檔也較全,社區相對也很活躍,遇到問題能夠及時得到幫助,對于有志于學習數據庫核心代碼的同學來說門檻高不是一個難以攻克的問題。如果你對 C 語言并不熟悉,那我建議你也可以從學習 TDengine 生態應用軟件的源代碼開始,還可以通過學習 TDengine 的測試腳本來學習如何對基礎軟件進行測試。”
目前 TDengine 支持 Java、Go、Python、C#、NodeJS、Rust 等多種語言的連接器,發展至今,其代碼量也越發龐大,想要充分理解其整體的設計也是一件比較有挑戰的事情。如何才能對 TDengine 的設計和模塊進行一個快速且深入地了解,桑樹多也作了相應解答。
“首先 TDengine 不僅進行了代碼開源,文檔也實行了全面開放,其中不僅是使用文檔,連設計文檔都是公開的,靜下心來閱讀完這些文檔會給到你很大的幫助。此外 TDengine 的編譯和部署過程極其簡單,自己就可以實現代碼下載編譯運行,還可以通過 GDB 等調試工具看到所有執行過程,和代碼對照起來學習會非常容易。”
正如桑樹多所說,開源軟件本質上就是要擴大影響力,積極打造生態社區,遵從業界規范,使軟件之間可以更容易互通和互操作,繼而進一步推動科技和行業的進步。在桑樹多等一眾濤思人的努力下,作為國產開源軟件的一員,TDengine 正在向著這個方向加速攀登。
而回過頭來,我們從桑樹多加入濤思數據的經歷中也能悟出一個道理,只要擁有一顆樂于學習的心和一雙善于發現機遇的眼睛,年齡就不會成為限制自身前進的阻力,反而經年累月積攢下來的經驗和見識會成為縱橫職場最鋒利的“武器”。
從 20+ 到 35+ 程序員,打破常規向更多領域突圍
近年來,隨著業內大齡程序員被頻繁清退等職場新聞的不斷發酵,在程序員的圈子里,“35+ 門檻”“青春飯”等充斥著焦慮的話題甚囂塵上。一批批年輕人從校園走進社會,俗話說長江后浪推前浪,一浪更比一浪強,那伴隨著他們的成長,“前浪”真的會被拍死在沙灘上嗎?
或許我們可以從桑樹多的經歷中尋找一下答案。作為一名 70 后,他早就超越了 35 這個所謂的“大齡”門檻,但他仍然活躍在職場之上,甚至憑借著沉淀多年總結出的技術經驗、閱盡千帆后輸出的深刻觀點,成為了公司里一些后輩所追逐學習的存在。對于如何打破程序員圈子中 35+ 大齡焦慮癥這一現象,桑樹多也有自己的看法。
“大齡程序員在國外很常見,我見過很多國外程序員四、五十歲還依然奮斗在一線編程工作上,很多頂尖軟件項目的維護者往往也是大齡程序員。隨著國內人口紅利的下降,相信更多企業也會越來越重視大齡程序員的價值。而我們自身也應該保持初心,積極了解軟件行業的發展趨勢,把自己過去的經驗更多應用到有前景的新領域中。只有不斷發現、學習和創新,才能不斷進步、不被時代所拋棄。”
大齡程序員前進的動力是打破常規,向更多領域突圍,年輕的程序員往往有更多的選擇,但偶爾也會因行差踏錯、定性不足而蹉跎光陰。 以過來者的身份,桑樹多從自身經驗中沉淀出一套方法論,“寫代碼有個DRY(Don’t repeat yourself)原則,對個人職業生涯或者技術方向也很適用。人生短暫,不要浪費時間做重復的事,而要盡可能提升自身技術的深度和廣度,增加更豐富的體驗,參與開源是個好辦法。”
開源貫穿了桑樹多職場縱橫的幾十年,使他受益良多,如今,他把這個成長的“秘訣”分享了出來,期待能夠幫助到更多迷茫的開發者。“也希望隨著越來越多開發者的加入和關注,國產開源之路能夠越走越順暢。”



























