比賽早就開始了
比賽什麼時候開始呢?我自己覺得從申請上研究所入學前的那個暑假期間就開始了。找工作是一件馬拉松式的過程,在你真的簽下合約之前,一顆心就這麼一直浮在那邊。每個學校找工作的氣氛都不同,CMU算是一個找工作神校吧,身邊的同學隨便撈一個都拿到過大公司的合約。我知道有很多人在入學前的這個暑假就不知道已經刷了幾百題的leetcode,做了多少回的模擬面試。這麼做當然是有原因的,8月底一開學,9月初就是公司的秋季徵才了,也就是說你這個時候就應該要有一個不知道修改過幾十次的履歷,準備好的面試能力跟技巧,來面對這場競爭了。對於兩年碩班的人而言,第一年就是找暑期的實習。雖然說也就是個實習,但是如果你能夠在這個時候進一間很好的公司,很有機會拿到return offer。這遠比到時候要面試正職來的容易許多。如果我回顧去年,我覺得我可以更早開始準備,現在看看去年9月的我真的就像是一隻弱雞在這個就業市場中被屠殺。美國的徵才季主要分為秋招跟春招,尤其大公司往往會在秋招就收滿,所以當然是愈早上岸愈好。
搶到面試機會 — 茫茫人海中的你?
在美國找好的工作,往往是供(工程師)過於求(公司職缺)。不像是在台灣,如果你是台大的畢業生,投10家公司大概會有一半讓你來面試。而怎麼拿到面試機會,不外乎兩種,網路上海投(包含請人內推)以及學校的就業博覽會。網路上海投當然就是履歷準備好,資料填一填就可以了。另外現在大概80趴的人都會想辦法找內推吧,所以也不是那麼有效了。海投拿到面試的比例當然要看個人的能力,但是就我自己跟周遭聽到朋友的說法,正常時間(肺炎之前)以CMU RI的學歷(目前算是世界第一或第二的機器人學院)大概也就是丟個20家會有4–5家的回應吧。那現在特殊時期,我自己的印象大概是丟100家,拿到不到10家吧。白話來說,就是很慘。學校的就業博覽會,或是企業會常常到學校來招人,這樣可以直接跟recruiter講到話,如果講話講得好就可以有很大的機會拿到面試。這個比例大概會是10家可以有將近一半的回覆。這邊就會顯示出不同學校的差異,而這也是為什麼大家都要擠一些名校。在疫情之前,我看過的所有大公司都曾經來學校招人以及在學校就地面試,這也是最容易跟大公司接觸到的機會。不然要網上海投,要拿到面試的機率真的是微乎其微。當然不是在名校就一定容易找到好工作,在名校當然也會有一個很大的壞處。有句俗語,『能力是比較出來的』。名校裡強的人很多,你很容易就會被別人比下去。通常如果多注意一下就會發現,在學校的就業博覽會,recruiter每跟一個人講完話通常會收下履歷表。很多recruiter會有兩堆,也大概就是他有興趣跟沒有興趣的。我就曾經看過,我前面的兩個人講了很類似的經驗,但第二個明顯比第一個強的許多。第一個人講完的時候他的履歷本來是被收進那個recruiter手上的,但我就看到第二個人講完後,recruiter默默把第一個人的履歷丟到桌上那一大疊他沒有興趣的那一堆履歷中,然後把第二個人的收進他手上的那一疊。所以到底是當雞首還是牛尾呢?我其實也沒有一個定論。但總而言之,獲得面試機會本身就是一個很難的一大挑戰,當然這也就只是第一關,可怕的還在後頭。
刷題 — Leetcode
現在整個科技業都圍繞著寫程式打轉,科技業公司多多少少都會在面試的過程中某個環節要求來個coding interview. 像我這種完全在robotics產業中的,面試基本上就是5關中會有4關的coding challenge, 1關的behavior question. Coding interview可以說是最麻煩也是最耗時間的部分,但我自己覺得卻也是在整個面試環節中,最有點投資報酬率的部分。刷題真的很累人,就像考基測考學測時候寫模擬題一樣,反覆練習。然後你想想這個刷題能力跟以後工作能力有很大關係嗎,好像又沒有,但是面試卻又要考。所以就真的跟基測學測大考一樣,哈哈(苦笑)。最大的刷題網站就是leetcode, 網路上也各種刷題公司,刷題補習班帶你刷題。這就跟我們一般理解的台灣課後補習班的概念是一樣的。但是總而言之,這個沒有什麼偷吃步的方式,題目就是要練才會熟。現在這個階段,已經不是只要寫出來而已,要寫得好(時間複雜度低或是空間效率很好)跟寫得夠快。每個人對於刷幾題都有自己的見解,這個跟你的專業背景很有關係。像我就是大學沒有修過資料結構,整個四年時間有沒有寫過多少程式,所以我大概是刷到150題左右才開始有一點頭緒。邊刷題目邊學coding。我最後找到正職之前是大概刷了300題左右。我也有朋友大學就是很大量的寫coding,他大概也就是刷了70幾題就拿到NVIDIA的工作了。刷幾題才夠呢?我覺得大概是當你看到一個題目,你有70~80%的機會可以做出來(brute force解法不算做出來)的階段我覺得就差不多了。
學科背景 — 咬著鍵盤出身
在美國的科技業找工作想要順利,最吃香的背景當然是資工系。我這邊說的背景是大學經歷。我自己是機械系背景,在這方面就算是非常吃虧的。機械系的背景,讓我雖然在CMU機器人學院裡的各項課堂裡都還能跟得上,但是在找工作面試這一個環節卻是非常吃虧的。就像是我前面提到的,現在的科技面試,不管你是什麼職位,除非你是純硬體工程師,不然任何的工程師職位面試,都會有80~90%都是在考coding技巧。所以當我要用我一年的coding能力跟那些已經寫了四年coding的人比,當然會是一個非常吃虧的狀態。電機,資管,圖資這一類的科系其實在某種程度上都會站上一點風頭。我也不是要否定我大學的努力,我在面試ARGO的時候,就跟我的老闆聊到,我機械的背景對於工作上有什麼幫助。他也非常同意我機械背景的確在找工作這一個環節上會有很大的劣勢,但是對於我未來的工作會是有幫助的。這個到底真還假,就要等我進去工作之後再來回顧吧。
作業跟找工作的平衡 — 作業寫不完、專題做不出來、工作還是找不到
來美國讀碩班的人主要分為兩種,畢業後找工作,或是繼續申請博班。我自己就是屬於找工作的這一群人,那找工作跟學校課業這個比例到底要怎麼抓呢?這個問題也是見仁見智了,身邊哪種人都有。有很認真找工作,學校課業真的放給它爛,作業隨便寫寫糊弄個就畢業的。但卻很認真準備找工作,去了大公司正職。或是很認真的寫作業,卻沒有時間找工作的人其實都有。這就是每一個對於自己的事情輕重的安排,我也沒有多做的評論。我自己大概是一半一半,學校課業多重一點吧。我的想法是,這也算是人生中最後的求學階段了,可以好好讀書學習也就這麼兩年了。我想要好好享受一下學生的生活。我在求職季的時候就會多花一點心力在求職上,少花一點在學校課業上。也不能像是大學生活,想辦法把每一個作業或是專題做到完美,但是時間就是這麼多,沒有辦法。我覺得CMU的教授都非常了解這個狀況,所以當你說你這個禮拜有大面試要準備,教授通常都會通融個讓你的作業遲交個一天。在讀碩班的這個階段就是要先想好自己的目標到底是什麼,然後安排好自己的時間跟精力。現在也在CMU第三個學期了,CMU RI 也正如其名,真的非常的炸裂,作業跟專題真的連環的轟炸,真的是要硬是塞出時間來準備找工作的事情。我自己也常常跟朋友討論到這個問題,我們這樣很硬的program到底是好還不好,如果目標是要找到一份好的工作的話。現在看來還行是因為我已經找到工作了,但如果還沒有呢?簡單來說,我們思考的點在於,我們都相信我們現在認真讀的東西,在未來工作上應該都是會有所幫助。但是如果找工作這一關都過不去,遑論以後未來的幫助?
面試靠的到底是什麼 — 你以為我每天都在刷題?其實是在扶老先生過馬路
找工作一個很大的環節就是面試了。怎麼面試,如何面試,要怎麼準備面試,這個真的不是三言兩語講得完。我自己也不是手上拿了一堆offer的那種人,我覺得這個留給更厲害的大神來發表感言就好。但是如果你隨便問一個在美國找工作的人,找工作靠什麼,大概8成的人會回答你靠運氣。就我自己到目前為止找工作的經驗。我也覺得找到好工作真的也是「靠運氣」。我要解釋什麼叫做靠運氣。這邊當然不是說,你在路上走路,剛好扶了一個大公司的老闆過馬路,他就給你一個offer了。醒醒吧,這個只會出現在連續劇裡面。這邊的「靠運氣」是指說,剛好遇到你有準備到的東西,剛好考到你會的東西,或是剛好面試官很喜歡你這樣。除非你是真的很厲害的大神,不然沒有人是什麼都會,什麼題目都寫得出來。每個面試官會出什麼題目常常是他們心血來潮,如果剛好是你有準備到的東西,那就真的是很有運氣。面試中會出現的題目是沒有範圍的,我甚至有遇過面一個職位,但卻問你另一個職位的問題,只是因為面試官有那個方面的背景。像是這種真的是很難準備,所以我真的覺得面試很「靠運氣」。像我自己的經驗,我在面試ARGO AI的時候,總共面了5輪不一樣的coding題目,剛好有兩題都是我在一畝三分地上看過的(中國人的超猛論壇,找工作一定要有的東西。美國人有身份,亞洲人(中國人、台灣人)靠一畝三分地)。剩下的兩題,一題我在leetocde上面刷過類似的,另一題我想一下有想出來怎麼做。這些東西真的是各種機運加起來,只有努力準備我真的覺得是不夠的。我其實也是靠著這個「靠運氣」的想法才可以撐到現在,10個面試大概有一半以上會被拒絕吧。這時候我就會想,大概是運氣還不到,繼續準備,等下一個面試的機會。我拿到了還不錯的正職,但也不代表我真的比那些還沒找到工作的人厲害,只是剛好運氣好,遇到會寫的題目,遇到喜歡我的面試官。
談判 — If you could raise my pay to XXXXXX, then I will sign the offer
在拿到口頭的offer之後,最重要的就是談判(negotiation)。這個在台灣工作可能不是這麼常見,但是在美國是一個非常正常的行為。有些人甚至會說,HR給你的第一份合約就是要讓你談的,不是要讓你真的接下來的。談判有很多很多的技巧,我當初也是問了很多很多的人。但是總括來說,這就是一個資訊跟心理戰。你給出的資訊愈少,建立出的心理強度愈大,愈有可能提高你的offer。美國雖然對於薪水多少是一個禁忌的話題,但是是可以去上Glassdoor或是IRS(查去年H1B申請的薪水)看看這一家公司你這一個職位給出的範圍大概是多少。當然這就只是一個參考,給你當做心裡的一個底。最直接可以拿來談判的東西就是compete offer,也就是例外一家的offer。我有一個大神朋友就是同時拿到了UBER, FACEBOOK, GOOGLE的正職offer。他做的方式就是最直接拿這一家去提高另一家的薪水,看最後哪一家開的最高就接哪一家。合約可以談判到多少當然也會跟你當初面試的成績有關係,有人跟我說過,面試完公司通常會把一個人歸類為1)一定要讓他來上班的人2)還不錯的人選3)他有資格來等等幾個等級。你接到offer之後,其實可以仔細從HR跟你的來回溝通推敲出你到底是在哪一個類別的人,就可以知道你可以要求提高多少的薪資。每一份合約內容也是非常繁雜,基本薪資、股票、福利等等。想要從哪邊下手談判也是要仔細看清楚。引用朋友的一句話,一樣辛辛苦苦找到一份工作,如果再多努力一點,一年下來可以多好幾萬塊美金,為什麼不努力一下。然後也不要被別人影響說,這一家公司就是給固定薪水,這是我之前在考慮要怎麼談判的時候一個在公司的朋友跟我說的,但是我最後談判到的薪水其實比去年同樣職位的工程師平均薪水就多個3到4萬塊美金。所以就嘗試看看,不要擔心公司會收回他的offer。只要不是一個太誇張的範圍,做好你的功課,最壞的結果就頂多是他們說不行而已。
戰果 — 好爽好爽
為什麼很多人會想要來美國工作呢?哈哈這邊就讓我炫耀一下好了,因為我現在壓力好大作業寫不出來,腦袋不能思考了(請問這個關聯性?)。就以我現在公司的這個領域,自駕車領域,還是屬於一個在研發的階段。研發階段最需要的就是技術跟資金,而這兩個東西常常是分不開的。美國社會上有很多的問題,但是這個完全資本主義的國家,跟台灣相比的確有比較多的資本可以投資在這一類的產業中。所以很多有辦法出國工作的人都會擠破頭想要出來工作。福利上當然也是很好,像是前幾天公司就寄來調查我到時候上班的工具要選什麼。我選了一台頂規16寸的mac book pro, 一隻bose的降噪藍牙耳機,機械鍵盤跟一個電競滑鼠。其他公司福利就像是公司會附餐,幫你付大部分的醫療保險(美國醫療保險很可怕,我現在大概只需要付跟台灣健保差不多的錢)。薪水的部分大概也都會落在台灣軟體工程師的5到10倍左右,換算美國物價大概也會是台灣薪資水平的3~5倍之間。我記得之前有一個教授很苦惱為什麼台灣常常留不住人,我覺得有時候很現實層面的就是如此。當然在美國找工作,跟實際工作也是會有很多障礙,像是各種身份問題。像現在的工作簽證就提高了基本薪資標準跟各項審核,所以能在美國工作到幾歲也是一個未知數。另外,美國的稅也是扣得很可怕,像我自己算算總括所有聯邦稅、州稅、外國人身份我總共要繳大概35%的稅。
總而言之、言而總之
在美國找工作真的會是一直碰壁,再加上現在疫情肆虐。各公司基本上不太開職缺了,所以我也很慶幸我現在可以找到一個我覺得很好的工作。大家不要緊張,我還沒有要畢業。我要明年7月之後才會開始上班,在這之前我還要好好享受當個學生,然後我作業還是寫不出來,我好慘QQ