新米工程師進修中(三):飛越性成長,成為開源專案維護者
- 2024-09-29
- Liu, An-Chi 劉安齊
¶ 前言
說好的半年一更,一拖就是一年過去了,轉眼進入 Mujin 已經兩年,慢慢地開始適應了如何在這邊生存,可以說是老江湖了。這半年開始,我感到自己實力飛快地成長,一方面是在公司磨練了兩年,另一方面更仰賴我從開源社群所學習到的各種技能。目前公司的程式大致上都摸熟了,開發對我來說不成問題,即使我們公司的程式碼規模也逐漸擴大,但不影響我開發的速度,整體開始越來越得心應手。
本系列(持續更新中):
¶ PcapPlusPlus 開源專案
前一篇提到在公司開發網路相關的專案,該專案要用到 PcapPlusPlus 函式庫,在公司開發專案的過程中,我發現不少 PcapPlusPlus 可以改進的部分和 Bug。於是就一直持續有提交 Issue 和 Pull Request,作者 seladb 也很有耐心,常常一個 Pull Request 下就有一兩百條的討論,要能讓 PR 被合併,有時候要花到一兩個月,持續貢獻大約半年後,也許是 seladb 看到我對寫程式的熱誠,所以即使在我還是菜鳥工程師的情況下,他依然邀請我成為 PcapPlusPlus 專案維護者的一員。
收到此邀請我簡直不要太開心,PcapPlusPlus 好歹也是個接近 3K 星星的專案,要知道在 GitHub 能超過 1K 星星數量的專案都算是佼佼者,更重要的是我感覺受到了肯定,這種成就感是公司無法給我的。在開源專案中,人人平等,即使我正職經驗不過就一年多,但能與其他十年經驗的工程師平起平坐,互相討論程式開發,即便我的見識不夠廣,但偶爾也能提出令人為之一亮的想法。反之,在公司中常常會綁手綁腳,主管也不見樂見你提出意見,一開始我會試著分享自己想法,但漸漸地我放棄了,職場的生存法則就是少做少錯,這並不代表我沒有在思考,恰恰相反,所有不對的事情我都記在心裡,但我就是不說,保護自己最重要。
工程師要能進步要透過大量的學習,老實說在公司不太能教會我什麼,貢獻開源剛好也補足了這方面的缺陷,透過持續貢獻開源專案,我一直有學到新的知識,並且開源世界有更多更厲害的工程師可以互動,他們也比公司的資深同事更願意教你,這一年中我寫程式的能力明顯地提升很多。
開源社群的人有時候也很溫暖,像是前陣子台灣發生大地震,公司同事沒什麼人來向我關心,反倒是 seladb 馬上私訊我,跟我說有需要幫忙的一定要跟他說,當下我挺感動的,我跟 seladb 不過就是開源世界的網友,他卻比現實世界的人還要溫暖,我想這也是我這麼喜歡貢獻開源程式的原因吧。
COSCUP 2024 在 sciwork 議程軌分享 PcapPlusPlus 專案:
Thanks to everyone's enthusiastic participation over the past two days at @coscup . Whether participating in the career roundtable, project sprint, technical speeches, or communicating with us, everyone's enthusiastic participation made every part so exciting and successful! pic.twitter.com/fQ5dRtIAVB
— sciwork (@sciwork) August 4, 2024
¶ 職場導師
我進公司前,問了公司的一個外國人他覺得公司怎樣,他說他覺得很幸運,主管很願意教他,雖然他沒念碩士班,但主管就像他的導師一樣。他很幸運,在正確的時機加入公司,碰到願意教他的主管,我相信這種情況他一定會學到很多。不過我進公司時,公司已經成長到太多人,已經沒有手把手傳授的制度,主管們已經忙到自顧不暇,新提拔的小組長們程度也還沒真的起來。
所以擴張後的 Mujin 基本上就是放羊吃草的模式,學習都靠自己,自然也沒有所謂導師。所以我很感謝 yyc 持續地教導我,不熟悉我故事的朋友如果看我以前的故事分享已經提到他許多次。從我在碩士當他在交大兼課的助教之後,他便一直給我指導與建議,正是我在職場上缺乏的,可謂是我的職場導師。
我覺得人生能遇到願意幫助自己的人是非常幸運的事情,從畢業後到工作兩年之間,我一直向 yyc 請教職場問題和人生方向,他總是不吝嗇地指導我,而且不只我,任何他在交大教過的學生,或在社群認識的朋友,他都很樂意幫助,是一個真正能讓人敬佩的前輩。
yyc 有個教學用的專案—modmesh 專案。我這半年也貢獻了不少程式碼,主要在實做類似 NumPy 的底層 Array,這個題目後來還拿去 PyCon JP 2024 演講。我從碩士畢業後開始就有陸陸續續貢獻一點,但當時程度還不夠好,如今我程度大幅進步,我感覺又能用更寬闊的視野來理解這個專案。PcapPlusPlus 和 modmesh 兩個專案可說是讓我程式大幅進步的最大功臣。
¶ 職場
工作兩年多,以 Google 的資歷定義,我自己認為有從 L3 到 L4 的程度了,對公司程式碼掌握度、獨立開發的能力、跟人合作的能力、寫程式能力等,各方面都有大幅成長。在 Mujin 也有一套差不多的職等系統,兩年過了,本來預期應該要升等的,但結果令人失望的是職等一樣,不經讓我回頭反省自己的不足的地方。
我這兩年內做了好幾個比較大的功能,此外手上有兩個規模不小的獨立專案,但依舊被認定為影響力不足,這非常令人挫折,因為前兩年能接什麼任務基本上不是自己說了算,但是進來公司也兩年了,接下來我的話語權會提高,只能想辦法多去搶一些被認為是高價值、高影響力的專案。網路上分享職等升遷相關的文章也不少,雖然看了很多,但實際上要做出來且發揮成效,則還要再一段時間的摸索和學習吧。
以寫程式的功力來說,我認為我應該是已經達標了,平常幾乎每天都會審閱開源那邊的程式碼,公司的程式碼我比較熟悉的範圍我也可以同樣進行有幫助的審查,但程度還可以繼續提升,跟特別資深的工程師比起來還是太菜,所以就是繼續多寫多看,往下一個境界邁進。三年一般是達成資深工程師條件的一個時間門檻,所以期待自己在接下來的一年將欠缺的部分補齊吧。
¶ 寫書
這一年我也在寫書,從一月開始一直到十一月。碩士的時候拍的一個系列影片「資工系學生的基本素養」,我一直想把這個題目出成書,於是就找了博碩出版社談,談得也挺順利的,先是提出寫作計畫,將大綱和內容規劃好,簽約之後就開始寫。由於我沒辦法寫太快,所以就抓八個月的時間寫,總共要寫三百多頁的 A4,換成一般書籍大小大概就會是四百頁左右。我一天進度通常就一兩頁,主要是內容要花很多時間想,想好內容之後又要花時間做研究、查資料、畫圖、寫範例碼等等,每一個環節都很費時。書預計會 2024 年底出版,還是蠻期待的,等正式出版再寫一篇心得文。我很佩服有些人可以三四個月交稿,在我看來真的是不可思議,有機會親自寫書才知道完成一本書是多辛苦。
¶ 結論
(單純曬一下漂亮的老婆)
這一年來還有很多亂七八糟的事情,比方說日本女友變日本老婆、滑雪進步很多、去很多地方旅遊、去了 COSCUP 和 PyCon JP 演講、認識一大堆人等等,太多事情發生,要分享真的分享不過來,寫著寫著也懶了,本來預計是半年一更,但感覺很多事情都是需要比較長時間來看才會真的感受到影響,所以以後大概一年更就可以了吧?!這篇文章對於這一年來人生成長的部分應該都交代到了。不知不覺也要 28 歲了,想想真的不可思議,感覺一直都處於學習狀態,進步了一點之後,發現不懂的又變的更多,人生永遠都在學習,停不下來,雖然很累,但也很有趣。