我的技術之路 – 工作五年的一次總結

衣帶漸寬終不悔,為伊消得人憔悴。

王國維《人間詞話》人生三境界之二

從12年接觸編程寫下第一行代碼到現在,不經意已經走過了整整8個年頭,步入職場也將滿5年。偶爾回想起這些年的經歷,在外企、互聯網初創公司、垂直行業的獨角獸和ToB軟件公司之間不斷沉浮,最終選擇雲計算和PaaS領域,也在各種的機緣巧合下把玩過dotnet、php、nodejs、java、golang等眾多技術平台。

總結的話,我所走過的技術之路可以用四個階段來概括。

第一階段:做功能

初入職場,同大多數人一樣,從內部系統的邊邊角角功能做起。在不滿每天寫各種腳本巡檢系統數據的安逸生活中,開始翻看所使用的開發框架的源碼,從此一發不可收拾,從ASP.NET 、WPF到.NET BCL(類同Java的JDK源碼) ,也是從這個時候開始和Github有了不解之緣。

第二階段:做框架

一半來自於對技術強烈的好奇心,一半來自於年輕技術人喜歡」show「的心態,逐漸不能滿足於翻看源碼,更想自己去」造輪子「。在這段時間裏,自己實現過IoC、AOP、Mapper、Mvc、ORM、RPC、Web Server、Redis Client 和 APM的Client 等等框架類庫,時常會因為benchmark提示10%而欣喜不已。我所掌握的設計模式和對技術細節的敏感也是得益於這個時期各種」造輪子「的經驗。

也是在這個階段,我打磨了自己的第一個開源項目,基於IoC和AOP的dotnet 框架 AspectCore,而後在做APM探針的時候結緣了SkyWalking,把SkyWalking作為唯一成熟的APM方案引入到dotnet 生態。該項目的發起人吳晟也作為我的」開源引路人「,教會了我如何去建設一個真正的開源項目和開源生態。

第三階段:做架構

18年初我從某垂直行業的獨角獸離職,加入到現在的公司,從互聯網行業轉型做企業軟件交付。幸運的是,我遇到了一群優秀的同事和充滿技術熱情的團隊,在這裡我從參與APM、微服務治理平台開發,逐漸成長到現在負責整個PaaS平台的運維監控體系建設。

從0到1的過程,就是一部不斷踩坑填坑的血淚史,經歷過日誌系統不穩定影響業務團隊打包構建,經歷過流量來的時候監控比業務系統更早掛掉的窘境,也經歷過加班半年開發的平台一夕之間要推倒重來的迷茫。

好在,結果是好的。從最初的1000萬日誌就能把系統打垮,到現在輕鬆處理百億級數據的彈性實時計算平台,自己主導的每一次的系統重構和架構升級,彷彿都是一次脫胎換骨的新生,讓我對大型分佈式系統架構的理解更深入一分。

如果說寫框架的藝術是挖掘技術細節和深度,那麼在做架構的時候,不僅需要在各種細節中抽絲剝繭,還要更多去思考功能抽象,從平台的角度去考慮系統的可復用、可伸縮和穩定性。

第四階段:做產品

在很多技術人的認知中,產品和技術是相互割裂的兩個對立面,並且在網上還流傳有多不勝數的「產品經理vs程序員」的梗。但在我看來,一款優秀的產品恰恰是技術人最好的名片,如Foxmail之於張小龍、如WPS之於求伯君。

我們不斷的在學習各種新技術,除了在找工作的時候應對面試之外,還可以考慮這些技術能產生什麼價值。不管是業務產品還是技術產品,都是技術價值的最佳體現載體。

當然,不可否認的是,在產品設計和Coding之間確實存在很大的思維轉變,你所面對的不再是計算機和代碼,而要在跟客戶、用戶不斷的打交道中找出他們的核心訴求,協調資源把訴求轉換為對客戶、對自己和對公司的落地價值。

做產品的過程,也是一個對行業和領域的認知不斷加深的過程,在我面前,這將是一座充滿機遇和挑戰,需要繼續勇攀的高峰。

寫在最後

我的個人公眾號」竹韻悠揚「開通也有一段時間了,因為自己的」懶惰「一直沒有寫過文章,今年開始決定把我在技術道路中的一些感悟和好玩的技術分享給大家,如果你對上面的文字感興趣,那就來關注一下吧~