看板 Soft_Job 關於我們 聯絡資訊
代po 2022 New Grad 全職找工之旅正式結束。這篇文章除了聊聊面經外,也會談談各種刷題、 內推的策略。同時,由於我本身在台有 3 年工作經驗,這篇分享文也會描述,有在台工 作經驗者,如何尋找 Experienced Hire 的機會。 那就開始吧! -------------------------- Medium好讀版(內含文章所有超連結,因為我不會貼QQ) https://reurl.cc/RbA9kG -------------------------- Offer (New Grad): Google, VMware, Amazon, C3.ai, Hive Offer (Experienced): Nvidia (IC3), Godaddy(SDE II), Tekion (Staff Software Engineer) Decision: Google Onsite 後被拒: Citrix 電面後無聲/被拒: Robinhood, TIBCO, Scale AI, Coinbase OA後無聲/被拒: Salesforce, IMC, Circle, Citadel, Quora... 內推被拒或無聲: Facebook, Apple, Stripe, Microsoft, IBM... 海投:150+ 家太多了列不完 婉拒面試: Bloomberg, Blend, Verkada 被延到畢業再面 Experienced Hire:Databricks, Aurora, MemSQL 找工之始:Mindset 當你決定踏上美國求職之路時,務必要先問自己:「當身旁朋友已滿手 offers 開始度假 ,而你卻一個 offer 都未拿到,你還有心力努力不懈,抱持不上岸不結束的信念嗎?」 念完碩士並落地深根,是所有海外留學者必有的夢想。然則,若常翻一畝的版友必知, New Grad 求職一年比一年艱難,就業市場逐步內卷化,越來越多與 1、2 年海外工作年 資的對手與你競爭,「留學、求職、成為美國工程師」,與十年前相比,無疑更加艱難。 普遍來說,在求職季,你會看到身旁同學一個月就成功上岸,也會有人拿滿 FAAMG 面試 爽爽度過,更會有滿手 offer 的強者,「壓力來源」其實不僅是擔憂自己無法成功上岸 ,更多的是來自同儕(包括印度、中國人)的壓力。 更甚者,以 Onsite 面試來說,一次要面 5 關,如果其中一關自己覺得面差,無法整理 好心態好好把接下來面試面完,那可能就錯失一個 Offer 。以 Google 來說,就算有一 輪 No Hire ,其他 round 有 Strong Hire,都還有機會發 Offer。 也因此,找工之旅開始前,最重要的工作,我認為不是刷題,而是「建立好 Mindset」。 在美國找到一份工作並不難,但前提是自己心態建立好,有執行力的努力,上岸之旅才能 成功達成! Timeline 找工時程:早! 凡事只要「早」,就有高機率拿 offer。早一點刷題、早一點準備好 Resume、早一點投 履歷、約最早的面試,只要早就很容易拿 offer 。普遍建議是:8月馬上丟履歷,8/9 月 寫 OA 或電面,10 月 Onsite 後拿 Offer 。 不論一落地是要找實習、還是找全職,最好的安排便是: 1. 來美前先刷題,至少一刷 2. 7月底、8月初,職缺一出,就丟履歷 以美國來說,當公司釋出職位時,通常就會設下 Head Count (今年只收幾人)。Head Count 不但普遍在 11 月時都歸零,當 Head Count 數量越少,公司審核標準就越嚴苛, 面試過的機率就越低。也因此,「越早投、越早面」是找工求職最重要的原則。 以今年為例, Google 的 New Grad Position 8月一釋出,只給一週的時間投遞。第一天 就投的人,普遍可在 9 月底安排 Onsite Interview。但若你截止前才投,則到 11 月都 還沒面試。 同樣例子也套用 Robinhood 、VMware,職缺一出當下就投的人,人人發面試。到了 8 月 底,VMware 直接關掉申請介面,Robinhood 則開始簡歷拒。 當然,有些人可能擔憂有 Exploding Offer 的情況。因為拿 offer 後,普遍只給 2 weeks 決定時間,可能被迫需簽下 offer 停止其他家面試。然則,這個情況不套用學生 ,因為學校普遍會有 Guideline ,規定公司不能將 offer deadline 設早於某個日期( 以 Berkeley 來說是 11/1),可以拿學校 Guideline 向公司說明請求延長,通常中大型 公司都可以順延。 以我本身而言,因為我在 7 月底就投 Amazon New Grad ,8月寫完 OA 和面試,成功在 8/31 當天拿到 offer ,一個月內成功上岸。有了 Amazon Offer 後,去面其他家都可以 說有 offer deadline ,或拿 Amazon Offer 包直接 Compete ,求職歷程不但沒壓力、 還能居上風。 如何用在台工作經驗 Get Experienced Hire 以北美市場來說,儘管你有再多的台灣工作資歷,到這邊統一都當成 New Grad 計算。然 則,我覺得這沒有硬性的規則,通常越小型的公司,越願意 value 在台工作經驗。通常 來說,Experienced Hire 的面試,只會在畢業前 2 個月才能進行。 以我為例,今年我拿到了 Tekion 的 Staff Engineer Offer,也拿到 Nvidia, Godaddy Experienced Hire,也參與 Robinhood Experienced Hire 的面試流程。簡單的說,我覺 得分成兩種: 1. 畢業時間在 12 月:可以直接投 Experienced Position 參與面試,New Grad 和 Experienced 同時進行。當然,要準備的事情也較廣,System Design 可能要花一些時間 研讀。 2. 畢業時間在 5 月:可以先投 New Grad,在第一次 HR Phone Call 時,主動提出自己的 海外工作經驗,詢問能不能面 Experienced Hire 。 Databricks & Facebook 的 New Grad ,因為工作經驗大於 1 年多被拒。由於我的畢業 時間在 5 月,Databricks, MemSQL, Aurora 的 Experienced 面試都跟我約隔年 3 月重 啟,就錯失了面 Experienced Hire 的機會。 面試準備 Programming Language 我認為語言不是選 Python,就是 C++ 或 Java。Python 的好處就是好寫、快、不受型別 限制,但在面 Quant 或做 Internet 的公司時,會吃力不少。C++ 的好處就是展現 CS 實力(不過面試不太需要)、有 BST ,壞處則是 90% 面試官都不會寫 C++ ,所以遇到 Bug 自己要會 Debug。 有些公司會要求寫 Java ,因為目前 Java Spring Boot 這個 Framework 還是業界主流 ,公司也想考你 OOD 的知識,同時在業界需要寫 thread programming 的都會用 Java 寫。Java 很好,但可能就是寫起來太麻煩,同樣一個 Operation ,Java 可能是別人的 數倍行,在面試求快的心態下,用 Java 可能心很急。 刷題 刷題的重要性我想是人人皆知,但「刷得好比刷得多」還重要,質量大於題數,以下是我 覺得刷題的建議: 1. 「重質不重量」 2. 實習應該要到 250 題左右、New Grad 建議 350–400 題左右。有這個題數,應該看到題 目都會有初步想法。 3. 著重刷 Medium 題,基本上面試就能迎刃而解,非經典的 Hard 題不要刷,建議不要浪費 自己時間。 4. 刷題順序可以照分類,刷 Leetcode 各分類的高頻題,比如今天刷 BFS,明天刷 Binary Search ,這樣同樣概念比較好統整。 5. 刷題不是刷一次,而是最少兩次,經典題則要 3+ 次。一刷我建議不要卡太久,想不到解 就快去看解答,因為這個時期是在熟悉演算法。二刷時,「一定要建立思路」,思路是指 :看到問題,如何聯想到可行的 Algo ,並如何逐層解題,「找出思考的路徑」很重要。 6. 思路之所以重要,是因為在面試時,如果你一上來直接給最佳解,可能頂多就 General Hire。但如果你有逐層解釋自己的思考歷程,逐步推倒出解,就算最後沒寫出來,可能都 有 General/Lean Hire,給出最佳解則當然會 Strong Hire。 7. 以我 Google 為例,有一輪 Corner Case 會炸開,但最後面試官說想法正確、思路清楚 ,還是給了我 Positive Feedback。因此,「找出思考的路徑」是二刷重要關鍵。 而板上 Alvin 學長文的點醒,Blind整理的高頻75題真的非常有用,很多題目都源於這 75 題,很適合短時間複習,建議這 75 題定時重刷,刷 3 次以上。先刷 75 題,再刷 Top Liked \ Top Interviewed ,最後再補完各分類的高頻題,應該面試都會較輕鬆。 System Design 因為今年面了 Experienced 的職缺,所以面了較多 System Design 的面試。System Design 基本上仍然依賴自己長時間工作知識的積累,問得方向也比較多元,比如 Producer / Consumer 問題、Scale 的選法、Partition 的方式,MQ 怎麼選,DB、 Microservice 如何 Reliable 等。 簡單的說,Microservice (Kubernetes…) 生態系還是業界主流,務必要熟悉微服務下的 各種知識,同時對一些主流 SQL, NoSQL (MongoDB, Redis, Elasticsearch, Prometheus, Cassandra…) ,各自特質、Scale、Partition、維運…,最好要有基礎觀 念。 面試準備的教材: * 初階的可以看 system design primer 、Educative.io 上的教材,這些資料能帶你初步 熟悉 System Design 的基本問題及如何配置。 * 資深的可以看 DDIA 這本書,這本書能精熟應該就是 staff 級別的工程師了。或翻翻 infoQ 上的影片,看 Netflix, Instagram 各大公司如何處理 large-scale 的問題。也 可以多看看一些 FB, Uber … 大公司的 Engineering Blog,慢慢的累積知識。 矽谷輕鬆談的 Kenji 也統整一份很詳細的準備指南,一畝上的猴子都能懂系列也非常完 整,都十分推薦! 當然,很多人滿腹知識,但往往掛在講的雜亂無序,我很建議 HackBear 泰瑞這部影片, 很清楚的解釋了 System Design Round 如何有好表現。 CS Fundamental 知識 常見考題如 OS 的 deadlock, thread, process, race condition… 還有 Networking 的 TCP/IP Level 3 & 4 & 7, DNS, Router…。建議面試前著重複習這些概念,應該都能 輕鬆解決。 如果有面到做 Database 的公司(如 Oracle),則會問一些 B+ Tree, Cache Design… 的問題,不過我想收到面試後再來複習都不遲。 拿面試及面試技巧 面試技巧會分成面試前、拿到面試、面試後三個階段剖析。 面試前:海投、內推、校招 參與過北美求職都知道,「拿面試比面試本身還難」。在這個內推橫行的年代,如果我們 說海投是投到外海、內推就是投到內海,但一樣都是海,比如我 FB 內推後直接拒、或 Apple 內推後無聲。現今有效的拿面試,是內推人親自將你的 Resume 送到 Hiring Manager 手上,或你能直接找到 Recruiter 當面聊。 儘管內推逐步式微,但還是比海投好,找內推基本上有幾種方法: 1. Linkedin 上找學長姐。台清交成的同學,每家大公司一定都有校友,可以到 公司的 Linkedin 頁面,點選 People ,搜尋欄打 「National Taiwan」,「National Tsing Hua 」…,就可以找到台灣的前輩。 2. 上「矽谷輕鬆談 Just Kidding Tech」的 Slack 內推版。謝謝 Kenji 和柯柯的經營! 3. 到「歹晚郎互助網絡」找內推。謝謝 Bryan 的經營! 4. 到「Taiwanese Referral 台灣人內推系統」找內推。謝謝 SD 學長姐的熱情協助! 5. 等 Mason 的內推文。感謝 Mason! 另外,不要覺得找內推很害羞、彆扭,也儘量不要內推人都不回你就放棄,主動出擊、有 禮貌、好好介紹自己、直接表明需要幫忙內推,我相信 80% 的前輩都很樂意幫忙,因為 我們也是這樣過來的,我們懂。 而對於校招 Career Fair,因為今年後疫情年,校招全部 online 舉辦,我覺得效力降了 不少,很多公司只是來釋疑而已(如 FB),只剩 Bloomberg 還在校招上撈人。若有一年 回到 In-Person 的話,可以參考這網站。除了 Career Fair ,還有 info session 和 Coffee Chat ,Coffee Chat 是和 Recruiter one-one 聊天比較有用,info session 則 是公司來演講比較沒有用,但還是建議有空可以參加一下。 而除了找投履歷的管道,職缺一出就投也很重要。建議設置 Linkedin Job Alert,可以 設定「new grad engineer」、「university graduate」、「early career」、「campus 」等發送 Job Alert ,這樣當一有 position 釋出,就可以馬上投。同時每一年都有人 熱心整理 New Grad List ,可以追蹤看看今年是否也有。另外,常上一畝翻面經,也可 以找到自己還沒投的公司。 拿到面試:刷面經、邊講邊打 一個常見面試流程是:OA(線上 Coding 筆試) → Phone Interview (一輪或兩輪)→ Onsite Interview (一天 5 輪以上),每家公司都有些微差異。 由於今年後疫情年,Onsite 都改 Virtual,所以 Onsite 就像延長版的 Phone interview 一樣。 拿到面試後,不論是 OA 還是 Phone Interview,首要工作便是上一畝刷面經,照著時序 依序往下看。有些公司都只會考固定題組(如 Robinhood, Amazon),刷面經就變得相當 重要。但對於一些題庫龐大的公司(如 Google),則直接上 Leetcode 刷該公司高頻題 比較有用。 在面試時,務必認知到「溝通 >>> 寫 code」,好的溝通可以掩蓋掉 Coding 表現不好的 問題。好的溝通不代表英文講的詞藻華麗,用簡單的詞彙、清晰的解釋概念通常就很夠。 我的 English Speaking 絕對不是很流利,但還是能通過重溝通的 Google ,原因就是「 技巧 > 英文能力」。 面試進行流程應該是:面試官貼出問題,你開始提出一些 testcase, corner case,詢 問 Input Range,有無Invalid Input,確認雙方認知後再開始想題。下一步,則是要和 面試官解釋解題想法。以我為例,因為我擔心發音不標準,我基本上都用邊寫註解、同步 講想法的方式,把我的概念解釋出來。待面試官確認方法可行後,才會開始寫 code 。 寫 code 時,也會邊打邊講,適時寫些 Comments。最後,則會自己想一些 testcases 進 行驗證。詳細的面試影片可以參考這個網站。 在面試流程中,如果自己發現很久沒收到新消息,就有可能是 HR 忘了你,一定要窮追不 捨的持續 Reach out HR 請他給你 update 。我的 Nvidia 就曾被遺忘了一週,後來 Follow up 後就趕緊補發 On-site Interview 給我。 面試後:催 HR 談薪水 「Always Negotiate」,因為公司發包給你時,都預留了你要跟他談的空間。談薪水這件 事我也是新手,不過一年洗禮下,發現可分三階段:剛收 Offer 、過一週後、要簽以前 。 剛收 Offer 時,可以談的就是 Deadline、What is Salary Range、Visa Sponsorship 等訊息。過一週後,可以開始針對 Base, Stock, Sign-on 開始談,拿其他家 offer compete 是最直接的方法。要簽以前,可以說當數字高於 XXX 時,現場簽。 談薪水的心法是,要把 Recruiter 當朋友,持續表達對公司的嚮往,但因為生活費、家 庭…開銷,目前的薪水實在太低,希望 Recruiter 幫你一把。「誠懇、持續表達意願」 ,是談成功的關鍵。 求職文件、面試準備 CV 留學時期的 CV 和申請工作的 CV 完全長不一樣,Recruiter 只會看 skill 欄位,90% 面試官則只會看工作欄位的第一個工作經驗的第一項,其他全不看。也因此,我會建議 CV 要有以下更改: 1. Header 務必放「手機電話、Email、Github」,如果在加州一定要放「地點」 2. Education 欄,重點課如 OS, Algo, DS, Network 一定要放,不要寫簡寫,因為系統會 爬。 3. Work 欄,務必第一項放最 powerful 的,或講的最順的,因為你會發現面試官只看這行 。 4. Skill 欄務必放到 Resume 上半部,Recruiter 通常看不懂你的研究或工作經歷,只會看 看 skill 有無 match 決定是否發面試。 5. 有心力的話,可以針對每個 position 的 JD 做客製化。基本上,Distributed System, Java, Object-Oriented Design 這幾個關鍵字,你的 Resume 最好能 include 到。 我建議在丟履歷前,一定要把你的履歷先送到學校 Career Center 改,或是找在美國工 作的前輩改,因為自己可能 miss 掉一些 information。 New Grad Job Market 今年邁入後疫情年,各大科技公司的招募情況逐步恢復,Google, Facebook 及 Amazon 的 Head Count 也增加不少。於此同時,由於去年的學生普遍 Defer ,今年 New Grad 市場少了一批碩士畢業生,2022 應該是前景相對好的一年。 倘若我們綜觀數年,進行統整,可以大致分為 FAANG 及 Not FAANG: FAANG Facebook 和 Apple 往年都是面試難拿,FB 拿了面試後就是要勤刷 Leetcode 高頻題, Apple, Microsoft 則是要靠組推或校招才能拿到面試。Amazon 則是典型的轉碼天堂,面 試應該是眾觀北美求職中最簡單的一家,Head Count 很多,發 Offer 品質不是很好。 Netflix 則是今年第一年招 New Grad ,所以所有人都在觀望,目前為止有身份的人才有 拿到面試(有綠卡 or 公民)。Google 則是面試好拿,但面試難通過,且流程冗長(9月 底面試,11 月才拿到 offer),不過今年好像 Head Count 比較多一點。 Google 的考題特色是,通常都不是 Leetcode 原題,不過都是要套用某個 Leetcode 題 的想法求解,面試官除了求正確性,更在意你的思考歷程有無符合邏輯,以及溝通能力是 否良好。 非 FAANG 其實有別於台灣人的認知,在北美,其實並不是所有人都嚮往進入 FAANG,FAANG 的面試 也不是最難的。蠻多 pre-IPO 的新創十分有潛力(如 Databricks, Stripe),New Grad 面試也真的難。與此同時,做 Quant Trading Firm 類型的 (如 Citadel, Hudson River Trading),通常薪水也會是 FAANG 的兩倍,不少人會選擇這些棄 FAANG。 Fintech 則是成為 Growing Trends,除了老牌 Bloomberg,Payment 招牌(Stripe, Square, Paypal),也有走 Blockchain 的(Coinbase, Circle),做散戶股票的 Robinhood,還有諸如 Brex, Chime, Blend 這類前景良好公司,開發的層次越來越深層 ,成為許多人的首選。 簽證時程 蠻多人來美國後,都是用 STEM OPT 3 年間抽 H1-B ,抽到 H1-B 後再辦綠卡。然則在現 今,因為越來越多人在 H1-B 的抽籤 Pool 裡,有人也會用作弊方式一人投 10 份申請, 中簽率確實越來越低。 也因此,不少人在職涯選擇上,會選擇能直接辦綠卡的公司。台灣人辦綠卡相對中國、印 度,不用漫長排程,普遍可在 1.5–2.5 年辦完,所以幸運的話,有些人會在 OPT Extension 期間,就辦到綠卡跳過 H1-B 。 據我所知,直接辦綠卡的公司有:Google 、Microsoft 和許多硬體廠(Nvidia… ) 。Facebook 剛解決完 PERM issue ,應該近期也會恢復。Amazon 據說是 Manager 決 定你能不能辦,也有 PIP 壓力。 結語 今年受到太多人的幫忙了,比如從留學申請到找工都持續 carry 的 Vera 學姊, Databricks 裡的超熱情資深前輩 John ,還有無數幫我內推的學長姐們,感受到滿滿的 在美台人的溫暖~ 同時,也很歡迎大家有問題的話,在 Linkedin 上 reach out 我,先預祝大家都找工順 利了! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.109.16.164 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1640031146.A.10D.html ※ 編輯: thomaskov (140.109.16.164 臺灣), 12/21/2021 04:18:58
Ericz7000: 777 12/21 04:36
kuanxiix: 先推再看 謝謝分享! 12/21 04:45
peter98: 推 基本上這篇說的都沒錯 12/21 05:53
shaq2000: 感謝大大無私分享 12/21 06:03
sevenw: 推 12/21 07:28
yungyuan: 推強者 12/21 08:13
doranako: 謝謝分享 12/21 08:34
xenorock: 推大佬 12/21 09:10
Funkshow: 推大神 12/21 09:50
aassdd926: ㄏㄠㄕㄣˊㄅ 12/21 10:14
aassdd926: 好神推 12/21 10:14
hsuchian: 推 12/21 10:18
ian90911: 感謝分享 12/21 10:28
TWkobe: 推 12/21 10:30
hakosaki: 推 感謝分享 12/21 10:55
nill0930: 先推 謝謝分享! 12/21 11:00
unmolk: 寫太好了!!! 12/21 11:32
Inglenook: 推!!,也推矽谷輕鬆談 12/21 11:37
archieliu: 推 感謝分享! 12/21 11:45
ILoveSoyMilk: 好文 感謝分享 12/21 12:03
genius945: 推 12/21 12:12
scott0002: 推 超級有用 12/21 12:38
wulouise: 強 12/21 12:49
van2037: 推 12/21 13:02
supercrazy: 推 12/21 13:48
Nesoi: 推RR 12/21 14:36
sarsman: 好文推推 12/21 14:41
※ 編輯: thomaskov (73.241.249.201 美國), 12/21/2021 14:52:20
blackmaninEE: 大推推 12/21 15:09
joshnash: 好文 頂 12/21 15:13
geezO1234: 推 12/21 15:13
summerhealth: 推,超詳細 12/21 16:53
NOYUYU: 好文推 12/21 17:00
Hermanfdsa: 好文推! 12/21 17:06
michael0728n: 推推! 12/21 18:05
royyy: 有時候覺得這些1%的強者,從求學時代開始努力,大學念完還 12/21 18:11
royyy: 要再付出大量心血、金錢留學,競爭掉數千人只是為了拿簽證 12/21 18:11
royyy: 挺可悲的 12/21 18:11
royyy: 有時候運氣不好可能還會輸一個有身分的人 12/21 18:13
AesirKing: 感謝分享 12/21 19:23
dogppatrick: 感謝分享 12/21 19:27
Spiralspiral: 推強者 12/21 20:14
smdf: 推 12/21 20:36
zrna0515: 推強者 12/21 20:39
jackflu: 太神啦,推推推 12/21 20:50
BigCockman: 也沒啥好可悲 本來國家就有高低等之分 生在低等的就 12/21 21:22
BigCockman: 是得努力點 12/21 21:22
nicetw20xx: 感謝分享 12/22 00:02
YCon: 推推 12/22 01:00
agario: 也許他意思是台灣太低薪以至於被迫要去更高等國家很可悲 12/22 02:23
peterchen33: 1%能算是強者嗎?如果你只是打棒球的前1%,不要說MLB 12/22 02:46
peterchen33: 你連中華職棒都打不進去,有飯吃就不錯呢,實在不需 12/22 02:46
peterchen33: 要怨天尤人。 12/22 02:46
ejnfu: 樓上 但是職業運動員薪水也跟一般大公司員工不能比阿 12/22 02:54
tnfshjcc: 還好吧 在台南我也是1%所以大學跟工作都要到台北啊 12/22 05:29
kyrie77: 推 12/22 08:10
ms0529876: 推 12/22 11:07
mepowerlmay: 學姊 12/22 12:39
Ziegelstein: 推推 12/22 12:49
ckscks038038: 好文超詳細 12/22 13:49
estd1971: 謝謝分享 12/22 15:04
viper9709: 推分享~這也太詳細 12/22 16:05
ryan60115: 好文 推認真整理 12/22 21:47
eric525498: 推大佬 12/22 21:48
parchment: 推推詳細分享 非常感謝 12/22 23:54
cyl61123: 強者我同學 太神啦 12/23 01:05
piona: 感謝分享 12/25 01:37
ssszl: 推 感謝分享 12/27 23:01
kokosorazure: 推推 12/30 20:30
cathychg: hi baby ! I am not gay yooo 02/09 13:11