2022/07/20

轉職工程師 :: 撞牆撞得亂七八糟,從睡廁所到睡公司的軟體工程師之路 (1)

達成在主管辦公室玻璃上畫畫的成就

大學 & 研究所 & 交換學生 - 所有階段都不務正業


大學的時候念工業工程,但非常的不務正業,
除了大一必修計算機概論寫 C++。

大二必修網路資訊應用 ASP.NET C# 架網站和資料庫管理系統
選修系統分析與設計學畫 UML 和資訊安全與規範密碼學。

大三選修3D 互動內容製作用 unity 寫 JavaScript。

大四畢業專題大家都在寫生產管理、供應鏈等,我跑去寫 AR;
那時候展出時外來的評審委員看了後大為驚艷,還遞名片給我說希望我過去他們那邊就讀,其實是挺開心的,但還沒有真的想到要往資訊這方面發展,所以就沒有考慮。

再來就是以前想念的科系想做的事情都被家裡限制,想念醫學想念美術想念哲學想念建築,
所以大學快畢業時期時還是不知道自己想做什麼或是我能做什麼,本來還考慮考高普考,後來卻誤打誤撞申請了研究所。


--
碩一時進了 AR/VR | AutoCAD 實驗室,
選修 3D 視覺模擬和虛擬實境,用 unity、cinema 4D 結合 kinect 做手機遊戲寫 JavaScript。

接國科會計劃時和機械、化學系合作,用 dreamweaver 架宣傳網站,
那是第一次一個人架網站而且不是只是作業,是要公開出去的,
那時候還被 TPCA 台灣電路板協會把網站連結放在首頁,又覺得更有成就感;
後來化學系會長也想委託我幫忙架站,只是那時候沒有接受。

論文時則是用 C++ 寫 PSO 演算法解問題。


--
那時候念碩士時到處聽校內的演講,意外知道有交換學生這件事,
那時候我直接鎖定要去德國,直接不填備取選項,如果沒上我就不去交換了
除了德國我都不要! 就是對於德國有種莫名憧憬。

而德國又是全校最熱門的交換學校,所以一定要面試,
那因為我是系上頭一個申請交換學生的人,準備和查詢起資料特別辛苦。

於是碩班時白天寫論文、和教授 meeting、當兩門課助教批改考卷上課、當實驗室管理員、辦理實驗室聚餐、接國科會計劃、和機械化材系開會等;
晚上則是準備第一階段校內初審 : 純粹是交換申請、校內成績等基本資料;
還有第二階段校內面試 : 準備 PPT 上台報告包括自我介紹、申請動機、學習計劃等。

那時候收到面試通知的時候,是在我論文提案的前兩天,提案前就已經熬夜熬得天翻地覆不知白天黑夜了,提案完才休息一晚上馬上就開始準備面試資料。再來因為我想出國交換前把論文寫好,所以非常拚,那時候一到日都是早上起來忙到半夜。

面試通過後要再提供相關資料給德國校方審查 : 自傳、動機信、推薦信、校內成績、英文檢定、學習計劃、選修課程學分及採計表、其他有利審查等,

審查過了再能再去德國在台協會辦簽證、後續訂機票等。

而準備資料相關,認識的管院同學蓋章都是秘書蓋一蓋就好很快,
但我就必須要自己跑,找系主任與工學院院長簽名時之類,
因為是系上第一個,每次找對方簽名都會有個小面試吧,
系主任與院長都會問問相關的事情,所以會花點時間。

後來在德國選經濟系,因為覺得大學研究所都是工科,想修點經濟財金相關的課程,但我跑去選修了資訊相關課程寫 SAP,
那時候開始真的覺得我真的對寫程式有興趣,想要做相關工作,
然後那時候看到 ROR 很熱門薪水很高,就開始學 Ruby




從德國交換學生回台灣後 - 不知死活直接投工程師履歷


回台灣後先開始找本科系的工作,
想說先從事本科系的工作,再平日自己上課自修程式,
但被其他人建議說妳要不直接找工程師工作?
於是我就非常天真的直接開始投履歷,也沒有先去修相關課程。

面試了幾間公司寫考卷時因為大學有相關經驗所以大致寫得出來,
其中一間面試時那時的技術主管說 : 我不期待妳進來可以做到什麼,但我們有人會帶妳。

那時候雖然聽到很不開心,但是一方面有來自家裡的壓力,還有覺得我沒有相關經驗、薪水也比預期的還要高,所以收到 offer 還是報到了。


進去後不知道怎麼看 visual studio 的錯誤訊息、不知道怎麼 debug,
不會用 git 還覆蓋掉別人寫好的程式,
還有一個 issue 卡一天問同事,結果是一個 div 標籤包錯,
那時候我還很納悶為什麼一個小標籤包錯就會跑版,
不知道可以開偵錯模式看網站的結構、樣式和錯誤訊息,
......等等等。

進度都做不出來,每天都很害怕 stand up meeting
因為我一直在報告重複的內容,遲遲沒辦法解決同一個 issue,
不敢跟同事要好,因為我覺得太弱不敢跟他們相處,講話都會小心翼翼;
說好的會有人帶,其實每三四天才有機會問問題,
上班時間只好狂看線上程式教學。

當時很焦慮,加上又有其他壓力,
晚上都睡不好,每天起床早上會乾嘔、心悸和喘;
長期下來睡不好,中午會不吃飯衝回租處睡覺再衝回去公司,
白天太累只好找機會去廁所,把外套攤開鋪在蓋上的馬桶上然後趴在上面睡。
(小技巧 : 如果只是坐在坐式馬桶上不好睡,很容易睡著後人掉下去)

每到星期五就覺得很輕鬆,星期六就開始焦慮,
星期日開始從當天早上開始就會充滿各種不想上班的念頭,
沒辦法好好休息、出去玩沒辦法好好玩,
總是會有個念頭懸在心頭上 "又要星期一了,我沒有進度可以報告怎麼辦",
還有過在街上聊到工作大哭說 "我不想去上班"。




在家自學程式 & 找工程師工作 - 做出好笑的網站


後來實在覺得這樣不行,先辭職然後在家自學 JavaScript,
當時為什麼會挑 JS,沒有原因,就是因為別人說這個重要,
我身邊也沒有資工相關的人可以詢問、自己也不清楚怎麼查資料、也羞於向網路上陌生人求助;
所以我非常沒效率的用 w3Schools 花了半年自學 HTML、CSS 和 JS,
然後又開始投遞工程師職缺,從實習到正職都投,
想當然這樣沒效率的學習根本沒能拿到 offer,
當初能沒有經驗就拿到第一份工作真的是運氣太好了,
這半年就是在自學但沒學多少、還沒收入純燒儲蓄。

那時候自己寫的網站長這樣,超好笑給大家笑笑,
面試問拿到畫面會怎麼開始切版、UI/UX、RWD 什麼都不清楚都不知道。
還記得那時候排讀書計劃表,
在面試時傳閱還被笑說 : 欸超好笑她寫 OOP 學兩星期耶!
(我到現在都還記得那家公司那個人^__^,其實可以好好給我建議不用取笑諷刺我 )

是說我那時候去應徵時,還會仔細研究每家網站,寫一份報告說我覺得哪裡可以改進,不過那時候除了有人因背景能寫出 UX 設計哪邊可以改善外,技術方面都沒寫。(現在想想這樣寄給公司應徵職缺是不是會被認為在挑戰對方)





跑去上培訓課程 - 感冒發燒照樣操爆自己


後來跑去報名了前端班的課程,
一到五或六課程包括 (UI/UX、PHP、MySQL、JS、CSS、jQuery、系統分析與設計) 
+ 每天來回兩小時車程
+ 滿滿的作業 
滿滿的報告
+ 兩三個月持續發燒跑醫院

在沒收入還要付學費、醫藥費、租金、水電下,
大學、研究所和交換學生拿到的獎學金,還有當助教、接國科會案子的錢很快就消耗光了

看到同儕已經在工作了,自己卻還在找工作,
會覺得壓力很大和自卑,雖然能自覺是因為轉職不能這樣比,
但理智不是能控制住情感。

每天可能只睡三四個小時,醒來就是練習寫程式,
學習使用 illustrator 、photoshop,查各種資料學 UI 和 UX 設計,
老師說練兩次,但我覺得我不夠熟練就練個十次,
上課前預習上課後複習,發燒時吃退燒藥繼續寫 & 畫。

可能我真的蠻努力的,
得到最佳網站和最佳 RWD 獎項,結業時也收到不少 offer,



--
總結來說,我覺得我當時轉職不是很順利,
是因為
  1. 資訊的缺乏
  2. 不知道怎麼查資料
  3. 不敢尋求他人幫助
  4. 缺乏有系統性的學習

那現在 FB 上有 Front-End Developers TaiwanBackend 台灣 (Backend Tw) 等各社團、也有 IThome 等可以在上面 po 文請教大家,
不用因為對方是陌生人就不敢問,如果問問就能得到有用資訊,厚臉皮試試看!
網路上還有各式各樣轉職工程師的文章可以參考個人建議先上網了解各類工程師是在做什麼的

不要因為 "聽說"、"好像" 當工程師薪水很高就轉去做,有可能是你剛入行時薪水的確比轉職前高,但沒持續努力就一樣會遇到天花板;再來你所擁有的技術在任何國家都有可能拿到低薪,技術需求開一堆薪水壓很低的公司比比皆是。詳細分析可以看這篇 為什麼我說不要轉職成工程師的七大原因

也不建議馬上就跑去報名付費課程,因為我當時有太多同學一股腦去報課程,先付了錢上了課,最後才發現不喜歡寫程式,最後也沒剩多少人當工程師。

先找網路免費教學實作看看,看自己是不是真的有興趣,不然很多課程一花下去就好幾萬,等你學到一半發現沒興趣、或是沒想像中的容易就白花錢了。
我也整理了一篇資源蒐集各種教學資源可以參考看看 還在考慮轉職工程師要上哪間學校? 這裡推薦你免費的學習資源、書籍與素材

Youtube、udemy、corersa 等等上面優質的課程大多都是英文沒錯,
可能會覺得初學就看英文很吃力,但是遲早都要碰英文的,
文件技術也是看英文的最精確,真的不行就搭配中文技術文章一邊上課一邊查。

再來就是基本上很難有什麼工作不需要溝通能力,不要說因為不擅於溝通就想轉職工程師
其實我們常常要跟設計師、PM 、主管等等開會討論需求,有時候在新創甚至還會兼當設計、PM 等等角色,在國外從面試到開會到社交,頻繁溝通更是基本。





Offer 選擇 - 在大公司和新創之間選了錢


在大公司和新創小公司間我選了新創,因為 :



問我現在會不會後悔? 
現在要我選我會選大公司,因為進大公司讓我學習到很多事 (後續會談到),
但當初實在是很需要錢,所以能重選一次搞不好還是會選新創。

而且再過多年後,我會不會又覺得自己想再進小公司呢? 
有可能。
因為小公司能接觸和掌控的範圍比較廣,雖然常常是身兼多職就是了。

"後悔也是一種自戀,高估自己所擁有的控制力,美化了自己,以為事情的後果是自己「選擇」而來的,事實上很多時候當時的能力、環境和知識,你所能實施最好的行動就是如此,人無法帶著經歷過那麼多的自己還有後見之名回到過去"

這真的沒有什麼對錯,很多決定在當時也是經過很多考慮才這樣下的,
而且搞不好是因為當時在新創的經驗和體會才讓我知道我想要的工作環境是如何,
實際進去之後才會認知到自己到底喜歡大公司還小公司

但我後來認知到在挑選公司時,至少要有件事情讓自己不後悔
比如說這間公司名氣很大,足夠當之後的跳板;
比如說薪水給得很優渥,足夠讓你願意進這間公司;
至於公司風氣、同事相處、和技術最好在進去前不要希冀太多,因為這些是不可靠的,會因為組別、時間變化、同事離職而有差別;
到時候在公司內做一做覺得真的很不喜歡這家公司,還沒找到新公司前又不得不蹲著,雖然很現實,但這時候有個很可靠的可以支撐你下去的也許就是夠高的薪水。




轉職後第一份工作 - 年輕人就是太衝動了


在新創公司上班後,主要的 tech stack 是 PHP、jQuery,
因為有相關訓練所以一開始就比較上手,很多經驗還是當時前輩同事帶領的。

但那時候我主動爭取很多機會 : 

- 領導官網改版
比如說一進去官網要改版,同組大家都在開發功能和 debug,
包括會員註冊登入、金流串接、遊戲串接等,
但沒有人做統整和領導這件事,
於是我就主動領導改版,分配工作項目、每天和 PM、主管更新進度,
最後官網上線時,PM 們還在群組裡感謝我的幫助。


辦課程 & 課程問卷
那時候公司裡很多人不會使用 git,
是的就是我在前一間公司煩惱不已的 git,
那時候還分不清楚 git 和 github、gitlab 的差別,
甚至還把別人的程式蓋掉的我,花了很多時間去讀懂和操作 git,
然後辦系列課程,和提供問卷蒐集回饋,
根據回饋再對課程進行修改。


寫技術 & 教學文件
公司內部雖然有文件,但是並不完整,
有時候會遇到重複的問題,重複找解法,或是別的 team 也遇到,
就開始把這些遇到的問題和解法寫下來,這樣之後遇到一樣的問題就有文件可以看。


參加研討會
主動參加研討會,但公司本來是沒有提供這個額度的,
所以我就去爭取,前提是參加後需要寫報告跟大家分享。


寫 side project 內部留言板
那時候主管說他很想要有個內部留言板,讓大家有心事可以直接留言給他,
不需要再另外約時間,於是我就用 three.js、PHP、MySQL 寫了一個出來。


擔任面試官 & 帶新人
主動自薦擔任面試官和帶新人。



--
那時候我一個人負責一整個網站包括會員註冊登入、金流串接、遊戲串接等
做完所有 PM 開的需求時,還會想辦法優化網站,比如模組化程式、或是主動開 tasks 修改一些 PM 沒發現的 bug;因為我認為這個網站是我負責的,我應該全力把這個網站做到最好。

我還覺得上班就該全心全意都在工作上,不能看其他的資料,不然就是愧對公司,或是到下班都還在掛心事情沒做完,利用自己的私人時間蒐集資料,好讓我一上班時就可以快速開發。

而且我常常覺得我完成的事不需要特別提出來講,只是因為我想做而已,甚至還覺得主管要我特別提出來講這件事情很做作;
後來才知道因為認知上的落差,PM (在菲律賓) 常常認為台灣工程師都沒在做事,
而且我都喜歡做模組化這種工作,她們看網站外觀是看不出來的,
所以會感覺不出來工程師做了什麼,就覺得我們都沒在做事情。


所以我了解到 :
  • 事情是永遠是做不完的,該休息就休息
  • 與其去優化網站、模組化程式等,不如有多餘時間就精進自己,學習技術資訊然後再把這些回饋給公司,不但能精進你自己也能對公司產生利益

還會每周撰寫工作報告 : 
  • 這周我完成什麼 tasks 並提供數據
  • 下周預計做什麼

這樣每周寫,同時這也可以拿來當年度 peformance review 時可以參考的資料,
也可以當作 linkedIn 上的經歷,更能拿來當作談加薪的條件。

這在大 WFH 時代來說就更加重要,因為大家幾乎都不在辦公室裡,
如果沒有開會之類的,很容易被認為沒在做事情,
所以定時回報進度變成一件很重要的事。

如果沒有按時更新進度,盡管有可能你是非常認真在做工作,
但有可能對方並不清楚而誤會你。


--
而後來常常加班到凌晨 12 點、1 點,然後去掛急診又回來繼續加班,
放棄當工程師跑去應徵文書,又是另一個故事了。



沒有留言:

張貼留言