2019 年回顧 — 菜鳥網頁工程師的職涯分享


Posted by 林子暘 on 2020-02-22


2019 年快要劃下句點了,差不多是個時候來做個整年度的 review 。2019 年這一年,各種意義上都讓我覺得成長許多,但是要細說我私人的一些體悟的話有點族繁不及備載,可能也不是那麼有營養,所以在本篇我會比較著重在職涯上的一些心得分享。

這一整篇文章分成幾個部分來解構這一年我在我自己身上看到的改變,包含身份轉換、做為一個菜鳥網頁產品工程師的心得、變成社會人之後的生活步調改變與省思,以及對個人未來職涯發展的想法。

身份轉換

今年是我正式開始全職工作的第一年,在一個完全陌生的城市一個人開始新生活,是一個滿不可思議的體驗。以往在學校的時候,住在宿舍或著家裡,即使不一定想,也會每天接觸到室友、同學、家人、朋友;現在下班回到家,就完全只有自己一個人了。

剛開始的時候覺得很興奮,時間完全都是自己的,感覺非常的自由,但是過了幾個月之後說真的還是會覺得有點寂寞。本來以為透過網路,就多少還能跟老朋友保持聯絡,但是別人也會也有自己的事情要忙,很難在你想找人說說話的時候剛好就有個人在那空閒著,透過訊息文字跟真人直接對話還是有本質上的差別。

前幾週生了一場重感冒,發燒到 38.5 度,躺在床上昏沉的時候,好幾次都會閃過「如果就這樣死翹翹了,會不會也沒有人發現」這樣子的念頭。最後還是認命的走路去看醫生 😆。
此外,當學生的時候,隨時隨地都會有事情可以忙 — 雖然跟我個人在當學生時的時間規劃也有關係,我屬於那種有點工作狂的人,總是會有很多計畫、專題、社團、球隊 …… 各式各樣的活動,修課也排得很滿,下課永遠都有作業、計畫進度等等各式各樣的問題可以操心,所以總是很忙碌。

可能跟大部分人想法很不一樣,我覺得當學生遠比當上班族忙碌的多,有可能是因為交作業大學的作業量,也可能是我自己把自己推太緊,不過我真心的覺得上班比讀書時清閒多了。學生永遠有排定好的考試、作業、活動可以忙,但是上班族下班之後的時間,就完全都是自己的了。

沒有人告訴你應該做什麼,或不該做什麼。自由本身是祝福也是詛咒。

人類是註定要受自由之苦的 – 尚-保羅・沙特

不過,過了比較難熬的幾個月之後,最近有慢慢調整生活的方式。也因為有很多時間跟自己對話,所以思考了很多人生的不同面向。這部分會留到下下段落再繼續。

菜鳥網頁工程師

這裡必須先打個預防針:雖然以全職工作來說我確實是全新的開始,但以寫程式的經歷來說,我認真學寫程式的時間大約已經有六年、網頁相關的專案經歷大概也有三年了,大概也做過四五個小專案,所以從技術角度看我大概不太能算是菜鳥,我也不會在這邊深入講技術相關的部分。如果是如白紙一樣的新鮮人可能沒太大的共感,可以上一頁離開了(先不要啦QQ)。

其實在四月的時候就有寫過一篇文章講自己的心得跟介紹 Y 社,有興趣的人也可以順便看一下(硬要置入)。
在 Yourator 的兩個月零九天與社會新鮮人生活雜談

雖然算是有不少實務經驗,但是真正開始工作才發現:寫程式大概只佔工程師的 50% 不到的時間。以我最近的工作狀態來說,可以心無旁騖的寫程式的時間,一個工作天八小時裡面能佔到三、四個小時就很了不起了。

那剩下的時間在做什麼呢?大多數是會議及討論,會議包含產品的規格、驗收、工作回顧、code review 等等,有時候也需要快速地跟行銷、設計、BD 討論一些規格及小 bug 修正。值得一提的是我有實際參與過幾次客戶訪談,這可能是大部分工程師不太會遇到的。能第一線知道用戶的回饋,而且可以直接提問討論想法,其實對做產品滿大的幫助。
除此之外,在 Y 社個人覺得做得不錯的一點是 學習組織。目前每週會有一次讀書會讓大家分享自己有興趣的主題,而工程團隊也有自己的讀書會。準備讀書會雖然也會吃掉工作的一部分時間,不過可以讓大家共同提升,個人覺得算是滿划算的。

Together, We Go Far. — 交大校長張懋中

挑戰

很多人或許會覺得,工程師就是悶起頭來一直寫程式就好,不太需要跟人溝通,input coffee output code — 如果你也是這樣想就大錯特錯了。

工程師其實是很需要溝通和表達的生物。尤其是在新創的環境裡,我們的目標及商業需求可能會變得非常快,如果沒有確實溝通好規格的話,很容易造成做出來的東西跟預想的不同,或是無法正確傳遞我們想要的價值的狀況。

在 CPU 設計裡面有個名詞叫做 pipeline stall:CPU 是由很多不同的階段構成的,以產品來說就是一個需求會經過很多人 — User, PO, UI/UX, RD, QA,簡單列一下就要過好幾個管線,而 pipeline stall 就是指管線過長時,如果有某個地方出錯,勢必要回到前面的階段重跑,而通常這樣的代價很大。

避免 pipeline stall 的方法,一個就是讓管線不要這麼長,或著是不要讓管線斷掉;對應到工作流程上的話就是,一個需求不要經手太多的人,越精簡層級越好,溝通能越準確透明越好,避免溝通不確實造成的重工。

除此之外,雖說有很多公司都是一個人橫跨多個產品,但是在多個產品線上切換其實是相當消耗精力的。在新創裡,每個人往往都要身兼多職,才能應付快速變動的市場需求。

所以即使技術能力已經足夠 cover 工作所需,也大概只涵蓋工作內容的 50% 甚至更少而已,軟性的能力也是工程師—尤其是產品工程師—很重要的基本素養。除非你是頂尖中的頂尖的技術人才,在技術層面有非常高的不可取代性,不然無可避免的,你還是得跟其他人頻繁的交流,即使不是走管理職也一樣。要從用戶或老闆有時候有點衝突的需求中抽理出真正要傳遞的商業價值,需要很清晰的邏輯跟對產品的理解,所以如果你是因為不喜歡人而喜歡寫 code 才選擇做工程師的話,你很可能需要多思考你的決定。

噢不過,技術面的基本功還是很重要,50% 的工作就足夠吃力的話,剩下 50% 再把握不好日子就有點難過了。幸運的是技術的基本功基本上可以靠自己努力,而上面提到的能力很多都要在專案協作中學習。

生活步調

比對四月的文章,那時候還處於塵埃尚未落定、充滿新鮮感的時候,因為每天都很忙、剛開始跑 scrum 新工作流程、住處很多東西還沒整頓好…等等,所以每天都過得很忙碌,跟熟悉的朋友們也才剛分離一下下沒什麼實感,所以沒什麼時間沈澱下來思考一些關於自己的事。
時間又過了半年多,生活逐漸趨於穩定之後,漸漸的有時間想自己的下一步,也因此有一些關於自己的體悟。

前面說過我屬於有點工作狂的那種人,對閒下來有一點莫名的恐懼。但我其實並不是只有工作,我彈吉他,我打排球,運動,會自己一人到 costco 買自己吃不完的食物,如果有空的時候我也偶而會嘗試自己做甜點。
我其實認為我的興趣很廣泛,也過得相當忙碌(是真的!),理應該過的更快樂,但是卻覺得哪裡不太對。

發現的問題之一是自己的生活太過太規律。別誤會,我很喜歡規律的生活,有紀律的按照步調走超棒的,不用擔心明天會發生什麼事,不用為太多瑣事煩惱。
但是太過規律這件事也是一個警訊。我可以輕易的列舉平常工作日的行程:每天早上8:50起床,漱洗完畢 9:10 出門,9:18 分搭上捷運,9:46分抵達北車,9:51分打卡上班,18:51 打卡下班,約 19:50 回到家,吃完飯 20:20 做點簡單的重訓運動,21:00開始練吉他到 23:00,看點短片、洗澡、睡覺、起床,又是新的一天。

我的生活規律到分鐘等級,雖然確實是有下班後的活動,但是當生活規律到這種程度的時候就變成有點作業感,像是工作的延伸了。這一點讓我覺得有點恐慌。雖然這樣的生活不算不快樂,但是如果這樣的生活持續五年、十年、二十年,我會覺得很不對勁。我甚至還在年底時發現我的特休還剩好多,但是卻完全沒有想法特休要做什麼,假日要做什麼。
這大概也是某種程度的 burnout ,對於一成不變缺乏刺激的生活感到空虛,雖然持續個幾個月、甚至到一年,可能還不錯,但是再多下去就有點可怕了。談到 burnout ,就想到最近在聽的 podcast 頂樓加蓋(哇還置入其他棚),Ep3 有談到 burnout 及自我探索的部分,也有給我一點啟發。

頂樓加蓋 twitter

發現到自己的同事,或著已婚有家庭生活,或著有穩定感情關係,或著參與一些線下活動,也給我另外一個啟示:我下班後的生活太封閉了。雖然有一個人的自由,但是完全沒有跟人接觸真的會讓人跟世界失聯,也因此這幾個月,公司有活動的時候我都儘量去支援,也比較積極的參與技術社群的活動。

當然也不是說一定要接觸人群才會快樂,有些人也是自閉的很快樂(?),而有很多人喜歡用旅遊來轉換節奏,有些人可能會用追劇、看書等等靜態活動充實生活。不過我發現我個人其實還是很喜歡跟人交流的,所以其實不是一定要接觸人群,重點應該是:找回自己的「熱情」。太習慣一成不變的生活很容易會讓人忘記自己的熱情是什麼,而我給自己的其中一個答案就是「透過分享去影響這個世界」,這也是我開始經營自己的技術內容粉專的原因。
既然都說到技術內容粉專了,不置入一下怎麼行?請大家多給暘暘程式頻道捧個場,乾溫乾溫。

總之近幾個月下來,多參加了一些活動、多接觸了一些人,真的有比較找回跟世界的連結感,雖然也可能有一點太多 — 上個禮拜甚至連續三天下班後跑了三場不同的活動,但終於感覺到某個什麼東西在推動了。工作與生活的平衡調整很可能是我這一年最大的體悟,社會人已經不再像當學生時有(非常明確的)升學壓力、求職壓力、經濟壓力,學習如何運用自由的時間並且維持自己對生活的熱情變成新的一個課題。

人生就像騎單車,想保持平衡就得往前走 — 阿爾伯特·愛因斯坦

對職涯的思考

前面講了一些目前工作、生活上的調整,接下來要討論的就比較偏向自己對未來在工作方面的想像跟省思。

轉換

事實上我將要從 Y 社離職了。

誒?前面鋪墊了這麼多,居然就要離職了?

契機大概是今年八月左右跟朋友們去日本畢業旅行。以往我其實對出國旅行或生活沒有太多興趣,拜家裡有一個很愛出國玩的媽媽所賜,我小時候去過的國家一隻手數不完,得到的結論就是 — 台灣真棒。我一直覺得如果要選一個地方定居終生,很難找到比台灣更好的國家了,J丟喜愛歹丸啦。

不過這次出國跟以前不太一樣,除了不是被家人拉著跑之外,因是為完全自由行的關係,我們必須實際跟當地人交流、互動,實際體驗真正的在地人是怎麼生活的,那邊的環境有什麼樣的優點、又面臨什麼樣的挑戰跟問題。

這帶給我一些想法是,有時候出去看看世界並不 (只)是為了知道別人有多好,而是可以從不同的觀點回頭審視自己。知道自己比別人有什麼優勢跟劣勢,從一個不同的角度重新審視自己,才能更完整的拼湊出自己真實的樣貌。

最短的捷徑就是繞遠路,繞遠路就是我最短的捷徑 — 傑洛・齊貝林

當時在工作上,其實也剛好遇到一個瓶頸。

並不是技術或是政治、效率上的瓶頸,而是我開始意識到我的工作有點重複了。工程師是一種最討厭重複的生物,同一段 code寫兩次就要寫成 function,同一個功能被用到兩次就要包成 module,而我意識到雖然我做得還不錯,但我好像在重複做類似的事情了。

那時候其實有跟一些朋友還有前輩聊到,也是很接近前面所說的概念:我不討厭現在正在做的事情,但是如果想到五年、十年後我還在做一樣的事情的話,我會有點恐慌。生活已經過的很單調,連工作都開始重複的話,我應該會快速喪失生活的熱情。

當然還有一點是,我覺得我還太年輕。如果我 30、35 歲,即使重複一樣的事情,我可能就會選擇安逸,安全舒適的繼續下去了,但我才 23 歲,現在就開始平穩好像太早了一些。雖然我嘴巴上說想過跟植物一般平靜的生活,但我想在我還能拼的時候,還是希望能夠多嘗試不一樣的跑道、體驗不同環境、甚至不同國家的文化,探索更不一樣的自己吧?

綜上所述,我覺得可以把我想轉換的想法歸納為一個概念:跳脫舒適圈。在舒適圈待太久,是會麻木的,不是說待在舒適圈不好,但是對我來說可能早了點。

這段時間跟不少朋友、前輩還有老闆談過,很感謝老闆非常的開明 🙏。職場鬼故事聽多了就覺得,最後能好聚好散也是十分不容易的事。

職涯心得

再來想談一些這一年來工作上得到的、關於工程師職涯發展上的心得。

先來談談技術

網頁圈的技術變化的幅度非常巨大,同一個工具可能一個月出一次小板本,半年出一次大版本,一年就面目全非了。

在這樣快速迭代的生態系裡,如果只學到最末端的 API、使用方式,而沒有學到工具真正的精神的話,就會無法理解為什麼而改變,不斷試圖去抓住變化的潮流卻什麼都抓不住。對於技術相關的話題我覺得也沒什麼特別需要說明的東西,多看文件、多做範例、多想為什麼,只有當你真正開始做了什麼東西並深入思考其背後的原理的時候,才是學習一樣技術的開始。

天地滂沱如何渡?蓑衣褪盡任濁流!
— 刃無鋒・殤不患

再來談談管理
以前覺得管理者,就是一個 main function,把所有工作拆給所有 sub-function 讓他們去處理,最後把 return 的結果收集起來就好。

工作了一年之後才發現,管理著實是一個大學問。實際上來說應該比較接近 load balancer ,request 進來之後分派給不同的 node,要能夠知道哪個 node 現在 loading 重、哪個 node 死了,決定 request 要怎麼分配才能達到最大效益。

這兩個比喻可能都有點太 geek,總之我認為管理最大的困難在於:人並不會是完美無缺、具有一致性的,每個人在不同身心狀態、工作環境、生活因素之下,工作的效率、思考方式、採取的行動也會有所不同,以 load balancer 來說,要知道各 node 的 loading 的數據都還算容易,但是人的不可預測性高的多。

程式是沒有意見跟觀點的,給定怎麼樣的 code 電腦就會做什麼樣的事情,但是人是有觀點、意見跟情緒的。同樣的一件工作或任務,可能因為觀點不同,導致最後結果出現分歧,因此溝通是管理很重要的一環,確定大家 on the same page,對要傳遞的價值有明確共識。

再來想談論的是如何定義自己的價值

如果對金融體系有一點研究的話,會知道「價值」跟「價格」是一件不一樣的事情。消費者主觀的感受是該商品的價值 (Value),而市場經濟機能體現出來可以量化的是價格(Price)。
有很多求職、履歷健檢課程,教大家怎麼包裝、行銷自己,凸顯自己的長處。當然不是說這類型課程不好,畢竟敝司也有做這樣的課程。

既然都提到了,雖然這篇置入實在有夠多,但我還是要在這硬是插入一波置入:敝司老闆嘔心瀝血之作,「求職平台大揭秘!寫出讓人資心動的專業履歷!」課程 ,社會新鮮人或是求職碰壁的求職者可以參考😎😎😎😎。

包裝自己是彰顯自己的價值、進而提升自己價格的一種方式,但是任何行銷工具手段,最後都還是要回歸:你 — 作為求職市場上的一個產品 — 所能提供的價值是什麼。

在價值與價格的基礎上可以分成三類人:價值 < 價格,價值 > 價格,價值 = 價格。

市場上,如果價格一味的升高,而價值卻沒有跟上的話,就會走向泡沫化。以這個角度來看人的話,有些人會過度膨脹自己的價格,利用話術、行銷、人脈來包裝自己,但是實際的價值卻及不上自己的價格,終有一天,就會被人看破手腳。

而如果價值很高卻賣不出好價格,不能只是怨天尤人、抱怨別人沒眼光,而是發現自己的價值並設法讓別人感受到。作為工程師來說,有時候我發現資深工程師跟初級工程師的差異,「自信」往往是很重要的一環。當覺得自己能力不夠,你就無法相信自己的決策跟判斷,懷疑自己是否有能力而做到。當你能夠展現出駕馭所有狀況的自信,往往才是真的邁進到職涯下一階段的時候。

然而「自信」是建立在足夠了解自己,也足夠了解現狀的前提之下。不夠了解狀況的人也會有莫名的自信(Mount Stupid),必須要遇到一些自己無法解決的問題,掉入 valley of despair ,並設法從裡面走出來,才是真正的建立起可以撐起自己價格的價值的開始。

認識自己,了解自己的價值,進而提升自己在求職市場上的競爭力,是我覺得不只是工作上,也是人生目標上很重要的一個課題。而有了價值之後,如何說服別人你有這個價值,是另一個也需要花費很多心思去經營的目標。

結語 & 新目標

最後來從比較高的維度來定義一下明年的職涯目標:

  • 調整工作與生活的平衡,找回自己的熱情。
  • 嘗試不一樣的文化、不一樣的環境,踏出自己的舒適圈。
  • 更認識自己,了解自己的價值,並讓自己的價格符合自己的價值。

雖然這篇文章標題寫菜鳥網頁工程師,但其實 87% 的內容跟網頁工程師沒有太大關係😆,會不會被人說是標題詐欺?比較像是我個人對第一年工作所學到的體悟,以及對未來自己的期許。希望各位觀眾看完可以得到一點收穫或是靈感囉~

一個人生命中能達到最了不起的成就,無非就是發現自己,並勇敢成為自己 。
— 侯文詠《我的天才夢》


#職場 #職涯









Related Posts

[BE101]  PHP 與 MySQL  (語法)

[BE101] PHP 與 MySQL (語法)

Day 170

Day 170

效能

效能


Comments