文組轉職全端工程師四年反思

2024年1月1日

💎 加入 E+ 成長計畫 與超過 350+ 位軟體工程師一同在社群中成長,並且獲得更多的軟體工程學習資源

在去年的今天分享了《文組轉職前端工程師三年回顧》。在 2023 的年末,除了跟 ExplainThis 的夥伴們合寫了 ExplainThis 2023 年度反思外,我自己也花了點時間好好的回顧了過去一年。

希望透過這篇文章,與大家分享一些反思。今年的標題跟去年不太一樣的地方是,從「回顧」變成「反思」,因為有別於去年以回顧過去職涯為主要內容,今年會更專注在檢視與反思自己在職涯上的觀點。另外,因為今年從前端轉變成全端的身份,所以標題也有相對應的調整。

在往下讀之前,推薦大家可以搭配 YOASOBI 的「もう少しだけ」這首歌,這首歌提醒我們每天踏出一小步,即使看似平凡無奇,仍能傳遞溫柔、讓世界充滿幸福與美好。這是我在反思完 2023 年後,期許自己在邁入工程師職涯第五年的 2024 可以時時記在心上的。

大廠、聲望與職涯選擇

在去年寫的 《文組轉職前端工程師三年回顧》 有提到,我在轉職的一年半後,第一次挑戰海外的工作,當時面試幾間軟體大廠都沒能錄取;而在隔了一年後重新挑戰,也順利拿到 FAANG、TikTok (ByteDance) 等大廠的工程師 offer。

在進到大廠前,我和網路上許多人一樣,為自己的軟體工程師職涯設定了「進大廠」這個目標。然而如願在大廠工作超過一年後,我認為現在是個可以好好反思進大廠這件事的時刻。

過去一年在大廠的工作中,固然有許多學習與成長,能夠接觸到過去在小公司沒辦法接觸的東西。但也同時理解到,在大廠工作與在中小型公司與新創是截然不同的事,雖然都是軟體工程師,但會有非常不同的職涯發展路徑。而這不同的職涯路徑,並沒有誰好誰壞。

回顧我想進大廠理由,可能與部分的人相似,不外乎薪水高、覺得拿到大廠工程師的頭銜後履歷能鍍層金,職涯從此會變得一帆風順 (?) 但這些也許都不是最重要的,對於身為文組轉職的工程師,進到有一定門檻的大廠,意味著在軟體工程領域能力上,到達某個多數本科生也到不了的門檻,這是個莫名卻又強烈的原動力。

但一年多後回頭看,意識到這種想法是虛而不實的。更進一步說,當這麼想時,就會陷入了《反思軟體工程師的「強者文化」》一文聊到的「對於強或成功的價值觀過於單一」的困局之中。

在思考這個議題時,讀到 Paul Graham 在十多年前寫的《How to Do What You Love》當中談到關於聲望 (prestige) 的觀點。他認為在做職涯選擇時,不該考慮聲望。在乎聲望意味著在乎那些真正關心你的人之外的看法,例如社會主流認為好的看法,例如外商、大廠、FAANG 這些標籤。

從他的觀點來看,如果某件事真的那麼好,又何須聲望的加持呢? 這個提問可以引領我們思考的,是當在選工作時,如果今天某份工作本身沒有外商、大廠、FAANG 這些標籤加持,該工作仍是你最想選的嗎?

退一步來說,Paul Graham 認為當你能把某件事情做好後,聲望自然會到來。以 2023 年全球最火紅的 OpenAI 為例,在 2022 年前可能沒多少人聽過,但因為做出顛覆性的成果,經過 2023 年,現在 OpenAI 成了全球最有聲望的公司之一。

我認為 Paul Graham 觀點最有趣的地方在於,他定義聲望為「在乎那些真正關心你的人之外的看法」。真正關心我的人,例如爸媽、身邊的摯友,都沒有因為我從文組的工作變成全球軟體大廠工程師,而改變對我的態度或看法。

如果某個跟你不熟識的人,僅因為你身上是否帶著具聲望的標籤來評斷你的優秀與否,那這個人估計不帶有辨別實質的能力,所以你也無需太在乎這個人的看法。

過去有讀者詢問,關於去新創、中型公司,或者大廠的職涯選擇。這個問題沒有標準答案,只有最適合自己的選擇。而在思考這個選擇時,別讓聲望成為決定性因素,因為有其他更實質、更值得你考量的面向。

以我自己來說,新的一年暫時沒有換工作的考量,因為我認為目前的工作仍有許多能讓我學習與成長的空間。但此刻的我也清楚知道,在選擇下一份工作時,能否在一個以匠人思維開發的環境、能否打造之於我有個人意義的產品、能否有好的工作生活平衡,這些都是對我更重要的。

定義自己的成功

聲望不該是職涯選擇依據的關鍵,那什麼應該是? 要回答這個問題,需要先突破「單一指標衡量成功」的桎梏。

今年 ExplainThis 的夥伴 Lynn 摘要了打造 Gmail 的 Paul Buchheit 分享過的 6 個思維模式,其中有一項特別讓我覺得有感。Paul Buchheit 說「事實上,我可以簡單定重新定義成功,來保證我一定能成功,如果我定義成功是能學到一些有趣的東西。這樣,我總是成功的,也會學到很多」。

討論職涯的選擇該以什麼為依據前,需要先能定義出自己的成功。對 Paul Buchheit 來說中要能學到東西、只要時時能做有趣的事,那就是成功。而對其他人來說,成功可能有著不同的定義。

先前聽一個麻省理工學院 (MIT) 教授的訪談,他談到他在讀博士期間,做的東西九成是失敗的。他說在頂尖的研究機構中,這很正常,因為如果沒有失敗,就代表做的東西不夠難。對那位教授來說,研究成果不如預期,不算真正的失敗,因為在這個過程中不斷探究、釐清、與有新的發現,這些對求知的過程來說都是成功的。

幾年前去逝的 Clayton Christensen 在世時留下過許多影響世界的洞見,包含「破壞式創新」等經典理論。然而他對世界影響更大的或許是他寫的那本《你要如何衡量你的人生》,在他的觀點,美滿的人生源自於三個要素,分別是「從工作中得到快樂」、「與家人朋友有美好的關係」、「堅持原則做正直的事」

對你來說,什麼是成功呢? 這是我在年末反思時問自己的問題,也是推薦每個在讀這篇文章的讀者,可以靜下來思考的問題。

想成為什麼樣的工程師

很多人會把職涯比喻成一個階梯,一階一階的往上爬。轉職成為軟體工程師,或者進入大廠,很自然的下一步會是在大廠升遷,可能繼續當個人貢獻者,升到主任工程師、首席工程師;又或者轉往偏向管理職的工程經理、工程總監。

對我來說,在這個職涯階梯中爬到最頂點,不是我所定義的成功。

回到當初轉職軟體工程師這個決定,最核心的關鍵在於,軟體工程師有能力自己從零去打造一個數位產品。這個具象化的能力,讓好的想法不會停留在想法,而是能被實現,並且傳遞價值。

舉個具體的例子,以前我在做筆記或寫作時,是依賴 Mac 的原生筆記軟體,但當 Mac 的原生軟體在某些面向沒辦法滿足我的需求時,我也沒辦法做什麼改變,直到我開始 Obsidian 這款免費筆記與寫作軟體。

即使市面上有無數免費的筆記與寫作軟體可以用,且 Obsidian 個人使用是免費的,但我還是願意付費小額贊助 Obsidian 的開發,因為在使用的過程中,我所需要的細節都被照顧到,讓我在寫作與思考的過程能很容易進入到心流,這對我來說很有價值。

Obsidian 之所以能夠存在,以及因著它的存在我能享受到其價值,是因為有軟體工程師透過程式碼去打造。同樣的,許多帶給你我生活便利的軟體,背後都是因為有軟體工程師去動手打造,才得以實現。

因此,與其想在職涯爬到哪一階,我定義作為軟體工程師自己的成功,是我能否培養出足夠的技術,並用 Obsidian 這般的匠人心態,細心打磨出來對終端使用者有價值的軟體產品。當我持續精進自己,朝著這個方向前進,對我來說就是在成功的路上。

ExplainThis 與 E+ 的意義

聊完我如何看待作為軟體工程師的自己,在這篇反思文的最後,想分享我怎麼看待 ExplainThis 這個下班後的計畫。在與夥伴們合寫的《ExplainThis 2023 年度反思 & 2024 年展望》一文中有提到,ExplainThis 的初衷是以分享的心回饋社群,而具體的做法是把我們幾個人的共筆分享出來。

對 ExplainThis 其他夥伴來說可能不同,但對我來說,ExplainThis 的分享背後希望能夠促成的,是讓更多前端與後端工程師,在技術與職涯上能持續成長。

我們切入的角度是面試準備。很多人可能會覺得面試準備與職涯成長關係不大,覺得面試就只是個必須通過的關卡,雖然面試是件讓多數人不那麼喜歡的事,但如果換個角度想,面試是在檢驗自己對於某個技術概念的理解是否透徹。

一般前端與後端的面試,問的知識點都會是跟開發工作高度相關的。這代表著,你在準備技術面試的過程,其實也逐漸變成一個技術上更扎實的工程師。

你可能會問「為什麼想協助其他人也成為更扎實的軟體工程師?」,理由其實很單純,因為一個人的時間與精力是有限的。如果我們想要活在有更多好的軟體的世界,就需要更多好的軟體工程師。以我自己來說,我用的多數軟體,都不是自己開發的;如果沒有其他工程師的存在,我就沒辦法享受到這些軟體帶給我的好。

這也是為什麼在 2024 年我們決定開啟 E+ 成長計劃。在 2023 年 10 月我們曾對讀者們做一個調查,了解讀者們在個人成長上遇到的痛點,以及 ExplainThis 還能做更多來幫助大家的地方,其中最多人選的是「技術能力提升」與「職涯規劃」這兩個面向。

在進一步詢問為何目前網路這麼多資源,卻還不能有效協助解決這兩個面向遇到的問題,多數人表示「目前網路的中文內容偏向面對初學者,進階的資源多以原文為主」,以及「網路資源雜亂,缺乏系統性,要花很多時間過濾與整理」。除了這兩個問題,許多讀者也表示針對某個內容,目前沒有適合的社群可以進一步討論與交流。

在與 ExplainThis 夥伴們討論與發想後, E+ 每週會從前後端、演算法、系統設計等不同主題出發,分享一篇深度內容,並且有系統性地整理前後端相關知識點,讓 E+ 的成長夥伴都能不只單點,而是能以「面」的方式系統性內化這些知識內容。

除此之外,我們也預計每季會舉辦一場工程師職涯成長相關的主題直播,會包含如何設定目標、如何最佳利用跟主管的 1:1、如何快速融入新的團隊與專案、如何寫出更高品質的程式碼等各類主題

在未來,ExplainThis 網站仍會持續更新,我們也會持續在 FB、IG、Threads 等平台分享內容。在這些平台分享的內容,會以基礎、簡短概要為主。而 E+ 的內容,則會以進階、深入為主。

在經過一年的摸索,ExplainThis 發展出了很多新的可能,但在這些可能的選項中,E+ 是我們認為最能有效幫助讀者們的方式。我們期待在新的一年,能透過 E+ 成長計畫,讓更多人成為更扎實的工程師,讓這世界有更多帶給人價值與美好的軟體。

🧵 如果你想收到最即時的內容更新,可以在 FacebookInstagram 上追蹤我們