回顧系列 — 成為 Software Engineer ㄧ年後的心得總結

莫力全 Kyle Mo
8 min readMay 18, 2022

--

繼之前的一篇職場回顧文章:成為 Software Engineer 半年後的小回顧 — 我遇到的困難與反思之後,時間過得很快,我成為正職的軟體工程師也終於要滿一年了。其實半年雖說聽起來是蠻短的時間,不過以職場來說卻是一段足以經歷大大小小的事的一段時間,因此我決定養成習慣,每半年就紀錄一次自己的職場經驗與心得,除了自我檢視以外,也分享一些自身的經驗給同樣身在軟體產業或是對軟體產業有興趣的人,希望多少能產生一些共鳴或幫助。

產業轉換

前陣子,我離職了。

我知道到職才將近一年就換工作對個人履歷而言似乎是蠻傷的,尤其這還是我的第一份正職,不過這也算是經過深思熟慮後的結果。

我的第一份正職是在 OneDegree 這間金融保險新創擔任軟體工程師,公司的技術團隊真的蠻強的,許多同事都是喜歡在社群上分享的高手。然而我自己在工作一段時間後發現一個問題 — 我對保險產業很不了解,似乎也沒有很大的興趣。一開始我並沒有覺得這是太嚴重的問題,直到後來我發覺「自己似乎除了解決技術上的一些問題以外,沒辦法有其他的貢獻。」原因在於我對保險業始終一知半解,雖然嘗試理解,但總因為沒有太大興趣而少了一點動力。於是我覺得自己很像一個碼農,需求來什麼,我就寫什麼,似乎也沒有太懂為什麼要做這些事,而這正是我最不想要成為的軟體工程師,導致那段時期的我其實內心十分焦慮迷茫。

如果有在關注我的話應該會知道我前陣子有嚴重的「自律神經失調」,總之身體每天都會莫名疼痛與疲倦,當時我覺得這也許是一個適合的時機,讓自己休息一下,也趁這段時間找到自己真的有興趣的產業,於是我在出社會將近一年時提出了離職,很感謝 OneDegree 的主管與同事都很支持我的想法與決定,並對於我之後的職涯發展給予祝福與建議。

這次的經驗讓我體會到對產業的興趣與理解對於個人職涯的發展是非常重要的,我的自我期許是除了成為一名技術實力扎實的軟體工程師以外,也能夠對產品的 Roadmap 或是公司的未來發展都能貢獻一些想法,而不是一個取代性高的寫 Code 機器(碼農),這點我認為就必須立基在對產業的熱忱與掌握度上。

似乎朝我理想中的「前端開發者」又更接近了一點

休息了將近一個月後,我加入了 Line Taiwan 的前端團隊,因為 Line 是我本身就有非常興趣的產業,再者除了大家最熟知的通訊軟體外,它其實發展了非常多元的服務,近期也投入了資源到 Blockchain 產業,是一個有機會接觸到不同產業與產品的公司。有趣的是前陣子在「雜談系列 — Web Infra」這篇文章中才談到有些團隊規模較大的企業會獨立出一個 Web Infra Team,而剛好 Line Taiwan 就正在發展這樣的團隊,於是除了本身的產品團隊以外,我也加入 Web Infra 團隊,有了機會接觸到許多我覺得很有趣也很有價值的任務。

先來談談產品團隊,雖然來到 Line 才不過兩個月,我卻感覺自己嘗試了非常多以前學過卻沒有機會實際在工作碰過的任務,包括網頁效能優化(Dynamic Import、Bundle Size 調教、根據 Lighthouse 建議作出調整…等等)、Codebase 架構的重構、CI/CD Pipeline 的優化、主要套件的升版 (Node.js 、NextJS 這種一升版很可能會造成 breaking change 所以需要仔細檢查或是改變寫法的主要套件)、解決 dependencies 的安全性問題…等等。

就前端開發來說,我真的不喜歡寫畫面,我感興趣的反而是「架構 Architecture」與 「效能 Performance」,因此目前嘗試的工作內容真的讓我覺得充滿挑戰性。

除此之外,我一開始就知道在 Line,身為前端也必須處理一些 Server 端與 DevOps 的工作,而我在工作上也的確遇到這些需求,這非常符合我所認為一名前端開發者需要具備的延伸技能樹。

再來談談 Web Infra 團隊,Line Taiwan 的前端大約有 40 人左右,產品少說也有 10 幾個,再加上一些內部系統與 MVP 產品,專案的數量是非常可觀的,如果沒有訂立一些共用的準則或是 template,將會讓各個專案的差異越來越大,變得不好維護與管理好品質。於是 Web Infra 的目標就是為 Line Taiwan 的前端團隊訂立統一的標準,包括 Testing、Performance、CI/CD、Linting、SonarQube 程式碼品質檢測…等等。團隊最近主要在做的是建立共用的 Eslint Config 與串接 Lighthouse CI,並建立一個 Grafana Dashboard 來監控各專案的各種指標表現。因為團隊還算是在初期的階段,個人非常期待未來的發展與面對未知的挑戰。

我覺得對於前端開發並沒有所謂「理想的樣子」,但卻有「對你來說理想的樣子」,我因為不喜歡刻畫面,架構、效能調校、品質監控等任務反而才是我喜歡做的,因此現在的工作內容非常符合我的喜好,覺得自己正在朝對我來說理想的前端開發者前進著。當然每個人的想法與喜好不同,我認為只要工作內容能夠符合自己的興趣與期待,都能獲得足夠的衝勁來持續提升自己,讓自己朝理想的樣子邁進。

正在學習中的技術與未來的目標

前端開發算是我自己比較早接觸也比較擅長的領域,不過我並沒有未來的職涯都要在前端打滾的打算,因為我給自己五年內,也就是 30 歲以前的短期目標是成為 Tech Lead 或是 Architect,因此我也花了蠻多時間學習其他領域的知識與技能。

談其他領域前還是先談談前端開發,目前我正在補足一些架構面的知識,也盡量去關注一些最新的技術。除此之外,我也開始學習 ThreeJS 的 Web 3D 開發,因為我相信它會是 Web 的未來,也期待自己可以透過 3D 做出一些很酷的應用。

後端的部分則是與朋友組織了 DDIA 讀書會,短期內希望補足資料密集應用與分散式系統的知識點,並更熟悉用 Go 語言來開發後端。

前這子的一篇文章也提過我認為現在是學習 Rust 語言的時機,從學 Rust 到現在也大概過了半年了,因為 Rust 可以應用的範圍非常廣泛,我目前是將學習重點放在與 Web 比較相關的 WebAssembly 開發上。

我最近也相當佛系地補足關於 DevOps 的知識技能, 像是 CI/CD Pipeline 的優化、k8s、Cloud Services…等等。

除了技術相關技能,我也把握公司提供的學習資源,在空檔時學習職場英文、敏捷流程、人際溝通…等我認為對自己未來職涯很有幫助的知識或技能。

也許有人會覺得這樣一次學太多東西了,成效可能會不太好。不過我想這就是我最喜歡的學習模式,先學廣,再往深處鑽研。當然我認為還是要將想學的各種技能依照喜好或重要度排序一下並適當的分配時間比例,像我目前仍然花最多時間鑽研前端開發的技術,未來隨著職涯發展會再去做相應的調整。

Work Life Balance

以前的我熱愛學習技術到有點接近瘋狂的地步,印象很深刻的是有一次出國去東南亞畢業旅行,我在行李中放了一本 Python Django 的書籍,因為我對於整個禮拜都沒有辦法學習感到惶恐不安,雖然知道好像帶了書也不一定會看,但就是覺得比較放心。(結果我真的在飛機上拿出來看…現在想想真的好瘋狂 XDD)基本上我維持這樣接近病態的學習心態好長一段時間,直到前陣子嚴重自律神經失調,為了緩解不舒服,嘗試放鬆以後,才點醒我生活的重要性。

剛好現在的工作基本上可以遠端進行,其實我有非常多的時間可以自己安排利用。最近我開始把一部分的時間放在休閒上,例如看籃球(我是會常常進場看球的鐵粉)、看電影、爬山、打撞球、學吉他…等等,縱使放在學習技術上的時間相較以前減少了,卻有種比以前更充實更踏實的感覺。

幾乎每週都前往球場報到!

投資

出社會後我才慢慢感覺到理財的重要性,有點後悔大學時是個徹底的月光族,出社會後只能從零開始累積自己的財富。近期發現自己對於投資有蠻大的興趣的,目前正在研究台股、區塊鏈(幸好躲過不久前的 UST 脫鉤事件XDD)等投資方式,並將重點放在長期的價值投資上。我給自己一個目標是希望在 25 歲結束前可以存到人生的第一桶金(我下個月就要 25 歲了),雖然錢不是萬能,但沒有錢卻是萬萬不能。期許自己可以慢慢累積財富,未來可以過上自己理想的生活!

斜槓職涯

最近正在努力把鐵人賽的得獎作品改編與彙整成書,預計在今年年底會上市,這也是我最近比較少撰寫技術文章的原因。開始寫書後,我才發現寫書跟寫部落格是兩回事,最困難的莫過於很多版面的調整還有所有圖片幾乎都要自己重新製作(因為版權問題),另外關於版稅與簽約對我來說都是未曾接觸過的事。而這也讓我可以稍微體驗斜槓職涯(技術作家)的挑戰,因為不同的角色有不同的 Domain Know How,在了解這些新知識的過程也覺得自己又完成一項人生里程碑了。(希望到時候會有人捧場買我的書 QQ)

小結

我決定每半年就記錄一次自己職涯的發展與變化,半年雖說不長,卻可能在職場經歷巨大的變化。每半年紀錄一次除了可以檢視自己的成長,也可以按照遇到的挑戰或困境做目標的調整。那就半年後再見啦!

--

--

莫力全 Kyle Mo
莫力全 Kyle Mo

Written by 莫力全 Kyle Mo

什麼都想學的雜食性軟體工程師 🇹🇼 (https://github.com/kylemocode) 合作與聯繫 📪 oldmo860617@gmail.com IG 技術自媒體:@kylemo.webdev.life

Responses (2)