從高中肄業生,到成為 Frontend Lead 的歷史回顧(二)-工程師燃燒生命開始
安安大家好!接續上一篇剛成為工程師,這篇主要會述說我從菜鳥到能獨立一面的奮鬥過程(沒看過上一篇的話連結在此)。
但如果單純敘述程式面實在是太無趣了,我不能容許自己成為一個無趣的人,所以我也會一併介紹一下當時的生活,以及很多人應該會想知道的,就是薪資的轉變。
好的客倌們,接下來就聽我娓娓道來。
上一篇說到我拿到公司的 Project 之後卻完全看不懂,當下我就知道我必須花很多時間去趕上其他人的腳步,讓原本打算先通勤一陣子的我,馬上決定在公司附近租房子,這樣才不會花太多的時間在交通上面。啊!對了對了,忘記介紹一下公司的環境。
公司介紹
這間公司位於台南(而我是高雄人),是剛創立的新創公司,開在一間很像安親班的樓上,格局不是太大。不過礙於我只是想打心得文,所以就不打算暴露公司名稱了,避免很像在打廣告。
成員組織上只有五個人,分別是:
- 老闆 1 位
- 合夥人 2 位
- Junior 工程師 1 位(就是我)
- UIUX 設計師 1 位
由於剛成立,所以也沒任何制度可言,大概就上下班跟休息時間有定出來吧!但對我也沒什麼影響就是了,畢竟我也沒讓自己準時下班過 XD。
再來想說說我的租屋環境,因為它的格局真的很特別,所以我決定要提一下,它的形狀大概長這樣:
第一次看到這麼尖的格局 XD,而且由於很老舊,還會有一堆奇奇怪怪的生物,比如說蟑螂、壁虎什麼的,睡到一半還會有金龜子飛到我臉上,我還備了一支掃把在枕頭旁邊,隨時準備拿起來打蟲子呢,不亦樂乎!
老實說我是很怕蟑螂的,要不是它租金真的很便宜,套房一個月才 3500 元,不然我真的是無法接受。還記得有一次往窗戶看,滿滿的壁虎在那裡爬,走出去還看到蟑螂 Party 開起來,嚇得我跳到床上翻過去再翻回來(單押x1)。
印象最深刻的是有一次睡到一半,大約清晨七、八點吧,我直接被煙燻醒,整個房間都是白的,真的不誇張,煙多到我快沒辦法看見前方!我嚇死了,還以為失火,馬上爬起來看是不是電線走火,結果待我神智慢慢清醒,覺得味道越來越熟悉,我突然知道了什麼,緩慢地走向陽台…
我
往
下
看
嗯,是有人在燒金紙沒錯。
我頓時領悟到沒有什麼事是不會在這個奇幻空間發生的,我只能走到大廳仰天,哈!哈!兩聲,然後接受。畢竟我的薪水扣掉之前貸款分期、保險什麼的,還沒扣房租就只剩 8000 元了,不要說存錢了,連活下來都要很努力,所以暫時也只能接受。
OK!接下來就進入主題,說說工作的部分吧!
剛進入公司時期-薪資 15 K
前面說到拿公司 Project 來看,其實只是讓我熟悉一下目前公司使用的程式碼,我的第一份工作其實是要獨立完成一個包含前後台的直播網站,從畫面到 API 甚至 DB 我都要獨立完成,晴~天~霹~靂~我連基本建構專案都有問題了,還一來就要當全端工程師,這真的是一個很大的挑戰,但我是這樣告訴自己的:
「在這個領域我已經輸在起跑點了,比我厲害的人多到數不清,如果他們還比我更努力的話,那我不就永遠都在他們之後了。」
當下我就決定我每天是不到隔天不下班的,什麼是不到隔天不下班?意思就是我都要超過晚上 12 點才回家。
剛開始對我而言,最困難的就是要拉畫面了,因為我是學後端的,我對那些 HTML、CSS 完全不熟,記得剛開始的幾天我都開 F12 用方向鍵調畫面調到半夜一兩點,做出來的畫面還跟玻璃心一樣,一碰就碎,為此我還寫了 30 幾個 Media Query,反正那個程式碼的可理解程度比畢卡索的畫還糟,有藝術天分的人也看不懂就是了。
就這樣過了一、兩個月,我完成了!雖然有很多的 Bug,但自己完成一整個系統還是很有成就感的,而且過程我也學到很多,尤其是怎麼當一個爆肝工程師,喔不是!是怎麼自己從頭到尾完成一個專案,雖然後來也沒正式營運使用(畢竟問題很多),但這段時間的努力我覺得都是有意義的。
之後,公司的專案越來越多,我也準備接手下個案子,同時也差不多快過試用期了。
試用期過後-薪資 22 K
隨著試用期過後,薪資到了基本薪資左右,我也即將開始做有正式簽約的案子,一樣也是我自己一個人就是了,但不同的是,這次我只負責前端的部分,API 由對方工程師實作,因此我不需要再去規劃 API 甚至 DB 的部分,只要著重在畫面呈現,以及 API 串接就可以了,而且有另一個人負責幫我跟對方工程師溝通,所以我也是著重在 coding 而已。
這時薪水多了一點,我也換了地方住了 XD,雖然一個月 5000 而且只是雅房,但我受不了一堆蟲子啦!!而且新住所很乾淨哈哈。
這次主要是做一個資料視覺化的部分,簡單來說就是要畫一堆折線圖、圓餅圖、長條圖,然後還要搞一些動畫效果就對了。針對這次的項目,我使用了一個叫做 D3.js 的函式庫,反正就是封裝了很多函式讓你可以快速地建立圖表,雖然說快速,但你如果沒用過,是絕對體會不到快速在哪裡,因為它連比例尺之類的東西甚至 resize 都要自己處理,我真心覺得我當時被這個東西搞到憂鬱症好一陣子…
尤其到了中後期,有一個需求是希望可以 3D 呈現那些圖表,原本想說看一下文件應該有辦法吧?沒想到居然要用到三角函數,就是 sin、cos、tan 什麼的,我立馬在心中向我學生時期的數學老師道歉:「對不起我說這些東西出社會用不到。」,害我當時晚上還得撥時間複習數學。
隨著時間過去,這個案子也即將完成,公司有作品後也漸漸地有口碑,也有越來越多案子等著執行,此時老闆提出想法說:「現在衝刺期,要不要大家一起隔週休,努力一下?」,基本上我是沒想太久就答應了,反正我本來就打算把大部分的時間都花在工作上面。
所以每天極長的上班時間加上隔週休,我幾乎是沒什麼休息的,不過為了自己想做的事,這些倒是還好,而且每天的下班時間有稍微提早一點,大概是 10、11 點左右(價值觀已經壞掉了,覺得 10 點下班很早 XD)。
公司慢慢有成績之後,也打算換到一個比較有門面的地方,而且也需要空間容納更多的人,於是就準備換到另一個環境了,隨著公司成長,我的薪資也稍微成長了一點。
到了新地點-薪資 25 K
公司這時換到了一棟整棟的透天厝,不過實際在使用的辦公環境還是只有一樓,不過已經比上一個地方好太多了。
在上一個案子結束之後,我也開始了新的任務,這次主要負責的是 API 以及 DB 的部分,做的是一個娃娃機地圖,由於這個案子只需要 APP,是跟其他兩位在別間公司的大神 ios、android 工程師合作,因此我不需要花太多時間在前端上,只要做好後台畫面即可。但這是我第一次負責 API 的部分與其他公司的工程師合作,溝通算是一大挑戰(要完全自己來了),這個案子也是導致我想轉向前端的原因。
這次有了之前的經驗,我發現一開始規劃資料庫映射關係是很重要的一環,因此我在前期就花了很多時間在規劃,應該有一個禮拜吧?才開始動手。
這次對我來說困難的點有三個:
- 不同公司無法面對面溝通,我要怎麼只用文件就讓他們知道 API 怎麼串接
- 由於他們本身有正職工作,可能是假日才做我們這個兼職,時間差問題怎麼解決
- 跟高手合作怕被罵 XD
溝通問題
要解決這個問題,我除了使用了公司平常就有在使用的 API 文件,我也盡量把每個欄位寫得非常詳細,但欄位寫得再詳細,也不像一般有 PM 的公司會出 Spec ,因此流程上還是不夠清楚,所以我還附上了 PPT 圖文並茂地解釋整個流程,我覺得這麼做極大化地減少了溝通不流暢的問題。
工作時間差問題
比起前端,後端是比較容易有突發狀況的(比如說串接到一半發現少了什麼欄位),再加上工作時間差的問題,我休息的時候才是他們撰寫我們專案的開始,因此我很常需要在休息的時候處理那些問題,而且我平常工作時間就已經很長了,極少的休息時間還得常常協助的話,可以說是快沒時間休息了。
這點是導致我想轉向前端的原因之一,並不是因為有問題要協助或是工時的問題,而是我不太喜歡計畫被打斷,我是可以接受花很多時間在工作上的,但休息的時候就想好好休息,如果是因為程式有 bug 要馬上協助我也都是 OK,但如果常態的因為非 bug 的問題被打擾,我想這不是我想要的生活型態。
而且這是我第一次完全只負責後端的項目,我漸漸地發現我好像對這種一直組資料的工作有點疲倦,我想要看到寫好的東西馬上顯示在畫面上,而不是常常寫一寫之後用 Postman 測試一下正確性而已,因此我就在心裡默默決定要朝向前端發展看看。
而在這個案子即將結束之際,公司打算做一個自己的產品,一個新聞網站,與此同時,公司還有一個購物網站的案子正在執行中,我就打算用這兩個網站搞一下前端。
默默學習轉向前端-薪資 30 K
這邊先說一下,公司原本前端使用的技術是 JSP + JQuery,也因此我寫了大量的 JQuery,但由於我原本是打算主要做後端,因此對前端也沒太多的概念,但等到我決定轉向前端的時候,去看了目前流行的前端技術,我彷彿回到剛進公司的時候,沒看不知道,看了不得了:
一大堆名詞看不懂啦!
什麼 SPA、SSR、Vue、React、Angular、Gulp、Webpack...WTF?原來前端這麼難?我怎麼只知道 MVC… 😂。
但對於我這種熱愛新技術、喜歡寫新東西的人來說,我怎麼可以跟不上時代的腳步!
這時我又湧出無止盡的程式熱情,覺得有很多東西可以摸,興奮起來!
於是我就開始每天晚上撥一點時間看前端的東西,JS 框架的話我先選擇了 Vue,因為聽說學習曲線較低,我想先知道何謂 JS Framework,但我一開始不打算直接用手腳架(就是打個指令,一個設定好的 Project 就出來了),想先自己從頭摸看看,其中最難的部分,我覺得是在 Webpack 這一塊,實在是碰壁無數次,現在想起我第一包建構的專案都會瑟瑟發抖呢!我甚至把整包 node_modules 推上去 gitlab,整個狂起來!大家一起 clone 老半天!
雖然那包 Project 建的很爛,但也因為我有這段建構的經驗,幫助我現在在做一些 bundle 優化的時候順利不少,強烈建議大家不要依靠手腳架建一次 Webpack Project 看看,真的會進步不少,尤其是前端新手。
等到我前端技術熟悉了不少(後面我還碰了 Nuxt、Css Preprocessor、Post Css 等許多東西),公司出現了一個極大的轉捩點、就是有投資者希望我們可以做一個他指定的作品給他看,如果滿足他的期待,他就決定投資我們,期限是:一個月。
為此我們又開啟了許久不見的話題:「要不要這一個月都不要休息,拚一次看看?」,接下來,你們知道的,一個月的辛酸血淚史即將開始。
那段時間真的可以說是修羅場,沒放假就算了,還常常弄到半夜一、兩點,中間的過程就不敘述了,我只說我到第三個禮拜後,精神已經開始恍惚了 😂,不過後續的成果讓人滿意,因此公司就打算到台北再開一間新的公司,因為覺得台北比較能夠快速找到員工(台南投履歷的人超少的 XD,可能也是因為小公司的關係吧?)。
由於在這期間也累積了一點前端實力,於是公司希望我去台北帶領一個前端 Team,老實說,我是有點不安的,心中無數個疑問湧上心頭:
「我現在有能力帶人嗎?」
「我有領導特質嗎?」
「會不會因為帶人導致我的程式能力退步?因為都把時間花在管理上。」
但後來決定先做再說,因為我也沒當過主管,好像也滿新鮮的?任何事試了才知道自己可不可以,而且談的薪資也滿不錯的,這部分就留給大家想像了,基本是翻倍以上。
於是我就準備前往下一個工作地點:台北。
初到首都工作
到這裡,我已經工作了兩年多,也慢慢習慣人生沉浸在工作中這件事了(隔週休還在持續中喔!),再加上我希望我做的事情對的起我的薪資,所以來到台北之後又開啟了我另一股衝勁。
– To be continued…
這篇比起上一篇長了很多,但我已經盡量縮短講重點了 😂,再來要說的就是我當主管到現在的一些心得以及故事了,有興趣的話歡迎繼續關注我的文章喔!!(第三篇之前可能會先寫一篇技術文章就是了 XD)