[心得] 2021/22 美國SWE實習與正職求職心得

看板Soft_Job (軟體人)作者 (從前有座山)時間2月前 (), 編輯推噓82(8315)
留言89則, 87人參與, 2月前最新討論串1/1
(代 PO) 不太會用 PTT 格式有跑掉之處請見諒 Medium 圖文版: https://reurl.cc/8pVj4R 關鍵字:2021 US Software Engineer Intern、2022 US Software Engineer New Grad、疫情、Google、Facebook/Meta、Amazon、Bloomberg、Cornell Tech、大學非本科 # 前言 在找工作的路上受到非常多人的幫忙,求職的結果很大部分歸功於集體智慧與台灣人好心的結晶。因為受到的幫忙太多,所以想提供這兩年的資料點跟我個人的心得給同樣當初像我需要幫助的人一個參考。個人覺得找實習與正職有相當大的運氣成分,我的想法很有可能都只是好運底下的產物,所以建議帶著自己的判斷閱讀。感恩惜福! # 背景 在 Cornell Tech 讀 Information Science,大學讀商科,有一些軟體工程師的實習 經驗。詳細可以參考我的 LinkedIn ( https://www.linkedin.com/in/cwhu )。 # 結果 ## 2022 Software Engineer New Grad 錄取:Google (GCP@NYC & YouTube@Bay Area), Facebook/Meta (Bay Area), Amazon (Seattle & NYC) 面試被拒:Bloomberg 線上筆試被拒 / 履歷被拒 / 無聲卡:Notion, Stripe, Figma, etc. - Google: 5 rounds interview, Oct 17, 2021 (result received) - Facebook/Meta: 5 rounds interview, Oct 17, 2021 - Bloomberg: 2 rounds interview, Sep 23, 2021 - Amazon: Intern Return, Aug 28, 2021 ## 2021 Software Engineer Intern 錄取:Bloomberg (NYC), Amazon (Seattle) 面試被拒:None 線上筆試被拒 / 履歷被拒 / 無聲卡:Facebook, Google, Robinhood, Roblox, Stripe, Figma, Kleiner Perkins Fellows etc. - Amazon: 3 OA + 1 round interview, Nov 11, 2020 - Bloomberg: 5 rounds interview, Oct 19, 2020 # 心態 ## 早一點投,早一點投,早一點投 在求職的時候,很常遇到的一個問題是覺得「自己還沒有準備好」。即使這一點在大部分的心得分享都一再被提起,我還是想要強調,很難有人可以真的「準備好」。 因為沒有準備好而在面試被刷掉總比因為太晚投而被通知職缺被補滿好。當然有些人會覺得面試被刷掉可能會有冷凍期的問題,但我認為早一點投履歷的好處有三: 第一是大部分實習與正職的面試我覺得在拿到面試後在開始準備都來得及。前提是你對於基本 Leetcode 的題型已經有一點點理解(例如刷過 Blind 75 題或是其他人整理的題目)或是願意抱佛腳每天坐下來刷十題一個禮拜。 對大部分人來說,刷題刷到一定題數後,刷題的動力會稍微下降。對我來說,拿到面試是刷題最好的動力,因為有一個清楚的死線(面試日期)跟一個清楚的目標(Leetcode tag 題跟面經)可以減少拖延跟不必要的擔心與憂慮,類似於 “Turn off your brain and let the body function independently”。如果真的覺得自己準備非常的不充足,也可以跟公司提前說一聲重新安排面試就好。 第二是早點投有利於最小化需要投入刷題的時間。這跟個人偏好有關,但我自己覺得在美國有很多事情可以趁在學生時做,所以想要最小化需要刷題的時間,而不需要一直把他擺在第一優先 (Top Priority) 而掛心。 在沒有拿到公司面試以前,大部分人把經典的題型刷完後所做的題目投資報酬率都會下降。除了經典題型能幫助我們打好基礎摸清大概方向,其他的題目實在太多。如果沒有針對公司的題庫刷題,那很有可能接下來大部分投入刷題的時間會是低效的。 即使對於刷題的方向有所規劃,類似於 Parkinson’s law 所說「工作總會填滿它可用的完成時間」,沒有清楚的死線還是很難辦法保證最有效率的投入。可能有一點極端,但以我的例子是在面試 Google 前,我只有規劃用三天每天坐下來 16+ 小時把他們的 tag 刷完(但最後一題都沒考到)。 第三是早點投面試被刷掉也可以當作累積經驗。早一點投早一點有 OA (Online Assessment) 和面試,即使運氣不好被刷掉也能夠當作累積經驗,提前知道自己面試容易犯的錯以及可以改進的部分。 我自己的例子是在正職面試 Bloomberg 的時候, 為了早一點習慣面試的手感跟節奏,我直接跟 Recruiter 說我想要比原定時間提早三個禮拜面試。結果考好難我自己也準備不足被刷掉,但因為面試的時候我發現自己做 Binary Search 不太穩,後來痛定思痛苦讀 Binary Search,把它系統化讓之後面對這類型題目都輕鬆秒殺。 從我的論述可能可以猜到,我自己是大部分時間相信 Fake it till you make it,所以會覺得當自己認為自己準備好時通常都已經太晚了,但如果你覺得這個不適用於你也無仿。而至於江湖傳說越早面試難度可能越簡單這點我無從考證。 具體來說,我大部分的職缺都是在一開缺後開始找內推,10 天內就會想辦法投完。也就是說,我大部分的實習及正職職缺都是在開學前到剛開學這段期間(七到九月)投的。 ## 讓運氣均值回歸 也許是只有在疫情或後疫情時代才會這樣,但我自己認為在找實習或找正職時,運氣是影響非常大的因素。正因為大部分是運氣,所以一定會有你自覺準備的很好或是面試的很好卻得到不如預期的結果。但同樣的,有時也會有你自覺準備尚可或是面試表現普通卻得到超乎預期的結果。 所以在找工作時,我自己的心態都是相信自己有盡力後,就坦然面對自己無法控制的運氣。雖然盡可能準備去減少運氣的成分,但還是要多投多面試讓自己能夠不會只被壞運光顧。讓自己有夠多的機會暴露在各種運氣之中,借用(誤用)財金的概念就像是讓運氣透過更多的機會均值回歸。 # 內推 因為成長背景跟科系的關係,我自己在來美國之前是沒有認識任何在美國科技業工作的朋友,所以我所有的內推都是在網路上找陌生人幫忙的。主要是用歹晚郎互助網絡(謝謝 Bryan 的經營)、矽谷輕鬆談 Just Kidding Tech 的 Slack(謝謝 Kenji 和柯柯的經營)、還有 LinkedIn。 我投履歷時只要找得到內推聯絡資訊就一定會傳訊息或是 Email 問,如果一個禮拜沒有回應就會找下一個內推或是直接海投。如果是自己特別好奇的公司我會在自我介紹的訊息內順便附上一些我想問的問題。 也許是我運氣特別好,但我的經驗是如果可以有點禮貌然後積極一點,台灣人願意幫忙的程度真的是超乎想像。不止一次我單純想詢問內推卻得到很多履歷建議、公司推薦、職涯分享,甚至會有人會主動幫忙留意新職缺。我自己的習慣是會跟所有我找過內推的人更新我最後找工作的結果(實習與正職的去處),不管有沒有因為內推拿到面試都還是要好好謝謝願意幫忙的人。 具體上,在聯絡內推人時,我寫 Email 通常會用的大綱會像是: --- 第一段先謝謝別人願意內推。 第二段自我介紹,順便提到自己想要麻煩內推的職缺。 第三段告訴內推人不管能不能幫忙內推都簡短回覆即可,我會再提供我的聯絡資訊( Facebook、電話),盡可能讓內推人能選擇一個他最方便的方式。 第四段條列他內推所需要的資料,例如職缺連結、Email、自我介紹等等。 --- 如果是傳訊息的話,我會盡量控制在越少字數越好。舉例來說: --- XXX 前輩你好,不好意思打擾了,我是 XXX,目前在 XXX 讀 XXX,大學讀 XXX,之前在 XXX/XXX 實習。透過 XXX 搜尋到你的聯絡方式,想要請問方不方便麻煩你幫忙內推 XXX職缺 (link)。我隨訊息先附上我的履歷跟 email: XXX,需要任何其他資訊再麻煩跟我說。如果最近不方便的話也沒關係,謝謝! --- # 履歷 如果對於寫履歷沒有方向,一個簡單的小技巧是去 LinkedIn 上面搜尋你想要投履歷的公司,蒐集一些在那間公司曾經在你想要投的職缺工作過的人,然後多參考他們是怎麼描述他們在那個職缺上所做的事,畢竟這是公司預期你在應徵時可能可以做到或即將做到的事。有些佛心人還會把他們的整份履歷放到 LinkedIn 上面,多參考個 10 到 30 份就能夠對履歷的方向跟如何敘述有一個比較好的理解。 我在投實習時覺得最重要的是多給不同的人看,因為每個人都會有一些盲點,而履歷總是有能夠進步的空間。一個尋求建議的小技巧是,如果覺得別人可能在猶豫能不能給我們誠實的反饋,我們可以問說這份履歷 1 至 10 分你個人會給幾分,然後接著問要如何改進才可以更接近 10 分。這個小技巧來自 Adam Grant 的這個 Tweet ( https://twitter.com/AdamMGrant/status/1369732419021135879 )。 除此之外,我在一份履歷裡,會花特別多的時間去優化工作經驗中第一項經驗的第一句描述,因為在我的經驗裡,這通常是為這份履歷定調的關鍵。在面試中如果有 Behavior Question 問到 Can you talk about an experience in your resume,我通常就會直接從這一句做開展。 # 刷題 關於刷題,我覺得可以簡單分成兩個階段。第一個階段熟悉題型,就按照資料結構以及演算法按照主題刷。常見別人整理好的題庫有 Blind 75、CyC2018、花花醬。我覺得品質應該都差不多,可以按照自己有的時間挑一個適合自己的。我自己在當兵的時候會另外印這個網站( https://www.cnblogs.com/grandyang/p/4606334.html ) 的答案進去看,每次只要練軍歌或是單兵戰鬥教學就拿出來墊在講義上看,一個禮拜可以想個十幾題,導致最後驗收軍歌跟單戰都不會,被班長笑說每次都看那麼認真還記不起來。 有一些我自己覺得在刷題時對我了解某個資料結構或演算蠻有幫助的整理: Binary Search - https://leetcode.com/discuss/general-discussion/786126/python-powerful-ultimate-binary-search-template-solved-many-problems DSU and Union Find - https://leetcode.com/discuss/general-discussion/1072418/Disjoint-Set-Union-(DSU)Union-Find-A-Complete-Guide DP (Dynamic Programming) - https://leetcode.com/discuss/general-discussion/712010/The-ART-of-Dynamic-Programming-An-Intuitive-Approach%3A-from-Apprentice-to-Master 第二個階段就是刷公司在 Leetcode 上的 Tag。當然不是每一家公司都會考 Leetcode 上的題目,但有一個方向準備起來總是比較安心。我會至少把要面試公司的高頻的 50 題刷完,這個時候在刷題時我會把每一題當作在面試,所以我會避免看到題目就直接開始寫。我覺得比較好的練習方法是能夠確定自己有想通並有能力口頭描述好自己解答之後,再開始碰鍵盤。 我自己覺得刷題有一點很重要的是要保持心情愉快,不要給自己太大的壓力然後 Burn out,也不需要有「我一定要刷到幾題面試才會穩」的這種壓力。我自己為了效率以及避免開始懷疑自己太笨,會在刷每一題的時候計時 10 分鐘,如果時間到沒有想好解法就會直接看答案。至於語言,我原本是用 JavaScript 刷題與面試,但後來為了熟悉新語言就全面改用 Python。身邊也不乏使用 C++ 面試的硬漢們,所以我是覺得挑一個自己喜歡的就好。 # 面試 我覺得面試的心態和溝通與解題同等重要,而且通常心態和溝通做得好,對解題也會有所幫助。剛開始面試難免會緊張,我喜歡在心態上把面試當作一個跟面試官交朋友的機會,並假設面試官都是希望我面試順利,所以我跟面試官是一起合作來完成這個面試的。 在面試的時候,大部分公司面試都是希望我先口頭解釋完我對於解答的想法,了解時間複雜度後,再開始動工寫程式。我自己的習慣是會不停的問面試官 Am I on the right track、Does that make sense to you 等等。因為即使我看到題目就已經知道最優解,我需要實作的通常要是面試官心目中的解,而不是標準答案的解。如果兩者不同,我會先把面試官心中的解搞定,再嘗試提出我心目中的解。 遇到看到腦筋一片空白的題目,最簡單的方法就是先從暴力解 (Brute Force) 開始,然後爭取時間想優化。如果還是完全沒有頭緒,我會開始列舉一個一個資料結構與演算法,然後簡述一下這個資料結構與演算法的特性,測試看看面試官的反應。舉例來說,我可能會說:I don’t have a concrete idea now, but I’m wondering if hash map can be used here to solve this since it can offer O(1) access to the data. 看一下如果面試官沒有正面反應之後,我可能就會接 At the second thought, probably I can draw some diagrams and think about whether there’s a potential greedy solution。 至於 Behavior Question,我通常都是按照常見的問題用 STAR 原則簡單寫一下自己需要提到的點,如果沒有把握也可以寫個逐字稿訓練表達。因為自認自己的英文不是特別好,我每次面試都會寫一個字條貼在電腦上提醒自己英文要講慢一點。講慢一點可以幫助面試官聽清楚我想表達的意思,順便爭取更多時間思考,還能讓語調聽起來比較有自信。 # 談薪水 每一次需要談薪水我都會複習這三篇文章: Ten Rules for Negotiating a Job Offer - https://haseebq.com/my-ten-rules-for-negotiating-a-job-offer/ How Not to Bomb Your Offer Negotiation - https://haseebq.com/how-not-to-bomb-your-offer-negotiation/ 談offer的理念和技巧 — 分享給剛拿到offer的小夥伴們 - https://www.1point3acres.com/bbs/thread-559735-1-1.html 如果有空我覺得 Chris Voss 的MasterClass 線上課程或書 Never Split the Difference 也蠻有幫助的。 # 找公司與選公司 知道自己要什麼跟知道如何達成至少一樣重要。在找公司的時候除了開啟 LinkedIn 的職缺 Email 通知,我也會參考各種別人整理好的清單,包括一些 GitHub Repo: Fall2021Internships - https://github.com/BaruYogesh/Fall2021Internships/blob/master/US.md New-Grad-Positions-2022 - https://github.com/coderQuad/New-Grad-Positions-2022 如果有特定想去新創也可以參考 Career-Launching Companies (謝謝 Yen-Ming 前輩分享) - https://blog.wealthfront.com/career-launching-companies-list/ AngelList - https://angel.co/jobs?ref=onboarding 如果幸運能夠有選擇公司的機會,我會先把我自己會考慮的點以及優先順序全部列出來(移民政策、技術、公司文化、地點、薪水等等),然後再帶著這些條件去找曾經在這些公司工作的人問問題,找答案。先列出自己優先順序的好處是不會在問問題以及聊天的過程中迷失自己的優先順序,畢竟每個人所考慮的點都不一樣。 # 結語 希望這篇有提供資訊給一些需要的人,不管是申請研究所或是到美國來後找工作都非常感謝所有願意讓我請教問題的人,如果有任何問題也請不吝留個言或丟個訊息給我,祝一切順利。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 98.42.216.181 (美國) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1663819877.A.576.html

09/22 12:17, 2月前 , 1F
markdown排版推
09/22 12:17, 1F

09/22 12:28, 2月前 , 2F
這個一定要推~很詳細, 感謝分享!
09/22 12:28, 2F

09/22 12:35, 2月前 , 3F
推實用
09/22 12:35, 3F

09/22 12:41, 2月前 , 4F
09/22 12:41, 4F

09/22 12:42, 2月前 , 5F
推分享
09/22 12:42, 5F

09/22 12:56, 2月前 , 6F
咦仔細看你的2022 result是2021開始面的?
09/22 12:56, 6F

09/22 13:00, 2月前 , 7F
詳細推
09/22 13:00, 7F

09/22 13:14, 2月前 , 8F
09/22 13:14, 8F

09/22 13:18, 2月前 , 9F
推一個
09/22 13:18, 9F

09/22 13:42, 2月前 , 10F
推 超詳細
09/22 13:42, 10F

09/22 14:08, 2月前 , 11F
謝謝
09/22 14:08, 11F

09/22 14:27, 2月前 , 12F
09/22 14:27, 12F

09/22 14:29, 2月前 , 13F
感謝分享
09/22 14:29, 13F

09/22 14:30, 2月前 , 14F
markdown排版推
09/22 14:30, 14F

09/22 14:56, 2月前 , 15F
文筆好籃球又猛 給點活路吧
09/22 14:56, 15F

09/22 14:57, 2月前 , 16F
推原po
09/22 14:57, 16F

09/22 14:57, 2月前 , 17F
從實習就很厲害
09/22 14:57, 17F

09/22 14:58, 2月前 , 18F
好詳細!感謝分享各種實用小技巧!
09/22 14:58, 18F

09/22 15:08, 2月前 , 19F
強者推 謝謝分享
09/22 15:08, 19F

09/22 15:36, 2月前 , 20F
推 感謝經驗分享
09/22 15:36, 20F

09/22 15:46, 2月前 , 21F
推分享
09/22 15:46, 21F

09/22 15:55, 2月前 , 22F
強者推
09/22 15:55, 22F

09/22 16:06, 2月前 , 23F
09/22 16:06, 23F

09/22 16:33, 2月前 , 24F
09/22 16:33, 24F

09/22 16:34, 2月前 , 25F
非常詳盡的分析與內容 感謝
09/22 16:34, 25F

09/22 16:37, 2月前 , 26F
推推
09/22 16:37, 26F

09/22 16:42, 2月前 , 27F
09/22 16:42, 27F

09/22 16:43, 2月前 , 28F
推詳細
09/22 16:43, 28F

09/22 17:45, 2月前 , 29F
又帥又強
09/22 17:45, 29F

09/22 17:53, 2月前 , 30F
只能推了
09/22 17:53, 30F

09/22 19:39, 2月前 , 31F
09/22 19:39, 31F

09/22 20:57, 2月前 , 32F
恭喜
09/22 20:57, 32F

09/22 21:25, 2月前 , 33F
推了 感謝完善的資料整理 很有幫助
09/22 21:25, 33F

09/22 22:16, 2月前 , 34F
09/22 22:16, 34F

09/22 23:15, 2月前 , 35F
超詳細 推
09/22 23:15, 35F

09/22 23:19, 2月前 , 36F
推~感謝原Po
09/22 23:19, 36F

09/23 00:04, 2月前 , 37F
詳細推
09/23 00:04, 37F

09/23 00:29, 2月前 , 38F
09/23 00:29, 38F

09/23 00:37, 2月前 , 39F
大推
09/23 00:37, 39F

09/23 00:49, 2月前 , 40F
09/23 00:49, 40F

09/23 01:01, 2月前 , 41F
09/23 01:01, 41F

09/23 03:25, 2月前 , 42F
09/23 03:25, 42F

09/23 05:23, 2月前 , 43F
出去看一下有沒有走錯板
09/23 05:23, 43F

09/23 08:38, 2月前 , 44F
推 感謝分享
09/23 08:38, 44F

09/23 08:48, 2月前 , 45F
感謝分享
09/23 08:48, 45F

09/23 09:09, 2月前 , 46F
太神了吧
09/23 09:09, 46F

09/23 09:45, 2月前 , 47F
09/23 09:45, 47F

09/23 11:43, 2月前 , 48F
09/23 11:43, 48F

09/23 12:14, 2月前 , 49F
超詳細,推
09/23 12:14, 49F

09/23 12:40, 2月前 , 50F
強者推
09/23 12:40, 50F

09/23 14:08, 2月前 , 51F
3w
09/23 14:08, 51F

09/23 15:04, 2月前 , 52F
大師
09/23 15:04, 52F

09/23 15:41, 2月前 , 53F
09/23 15:41, 53F

09/23 17:05, 2月前 , 54F
太強啦
09/23 17:05, 54F

09/23 17:11, 2月前 , 55F
推!
09/23 17:11, 55F

09/23 17:46, 2月前 , 56F
推分享
09/23 17:46, 56F

09/23 18:01, 2月前 , 57F
推分享!
09/23 18:01, 57F

09/23 18:48, 2月前 , 58F
推分享
09/23 18:48, 58F

09/23 19:40, 2月前 , 59F
推推
09/23 19:40, 59F

09/23 21:17, 2月前 , 60F
面試心態真的重要 推!
09/23 21:17, 60F

09/23 21:37, 2月前 , 61F
先推再看
09/23 21:37, 61F

09/23 21:39, 2月前 , 62F
先推 感謝詳細分享
09/23 21:39, 62F

09/23 21:50, 2月前 , 63F
推認真分享!
09/23 21:50, 63F

09/23 21:58, 2月前 , 64F
推!
09/23 21:58, 64F

09/23 22:05, 2月前 , 65F
推!
09/23 22:05, 65F

09/23 22:33, 2月前 , 66F
09/23 22:33, 66F

09/23 23:37, 2月前 , 67F
推分享
09/23 23:37, 67F

09/24 02:15, 2月前 , 68F
推推
09/24 02:15, 68F

09/24 03:30, 2月前 , 69F
感謝分享
09/24 03:30, 69F

09/24 09:42, 2月前 , 70F
先推 感謝分享
09/24 09:42, 70F

09/24 10:06, 2月前 , 71F
推 超詳細
09/24 10:06, 71F

09/24 10:45, 2月前 , 72F
09/24 10:45, 72F

09/24 15:27, 2月前 , 73F
謝謝分享
09/24 15:27, 73F

09/24 18:02, 2月前 , 74F
09/24 18:02, 74F

09/24 19:30, 2月前 , 75F
推分享
09/24 19:30, 75F

09/24 20:41, 2月前 , 76F
推感謝分享
09/24 20:41, 76F

09/24 21:57, 2月前 , 77F
09/24 21:57, 77F

09/24 23:21, 2月前 , 78F
推分享
09/24 23:21, 78F

09/25 00:08, 2月前 , 79F
推 感謝分享
09/25 00:08, 79F

09/25 06:30, 2月前 , 80F
推 好詳細謝分享
09/25 06:30, 80F

09/25 09:57, 2月前 , 81F
感謝分享
09/25 09:57, 81F

09/25 14:01, 2月前 , 82F
推~
09/25 14:01, 82F

09/25 14:43, 2月前 , 83F
09/25 14:43, 83F

09/25 14:45, 2月前 , 84F
人家在US intern過 沒啥好參考吧 ptt都在US上課?
09/25 14:45, 84F

09/25 15:42, 2月前 , 85F
推 經歷好厲害喔
09/25 15:42, 85F

09/25 16:09, 2月前 , 86F
感謝分享
09/25 16:09, 86F

09/25 21:41, 2月前 , 87F
謝謝分享
09/25 21:41, 87F

09/26 22:56, 2月前 , 88F
09/26 22:56, 88F

09/27 19:43, 2月前 , 89F
09/27 19:43, 89F
文章代碼(AID): #1ZA-1bLs (Soft_Job)
文章代碼(AID): #1ZA-1bLs (Soft_Job)