拿到亞馬遜offer的經歷 (毫無保留)
在知乎上沖浪時看到一篇不錯的外企求職經驗,分享給大家,如果你也有相關打算的話,希望能對你有幫助。
以下內容中的“我”指這位求職者。
原文鏈接:https://zhuanlan.zhihu.com/p/546079576
本文記錄了我從投亞馬遜北京崗位到拿到 offer 的過程,將自己如何準備面試,以及關于面試流程所了解到的問題,做一個總結,希望能幫助想去亞馬遜的同學,因為面試過程中也有很多人給了我?guī)椭?/p>
雖然最后我沒有選擇亞馬遜,但亞馬遜不論是面試體驗還是 offer 吸引力,都是很棒的。以后有機會,還是希望能去亞馬遜工作的。
這次面試亞馬遜,最終拿到 SDE2,也就是 L5 的 offer,薪資也很滿意,不比國內大廠同級別低。
拿到亞馬遜 offer 的經歷
我找了個亞馬遜的員工幫我內推,他在美團干了九個月跑的,今年 4 月去的亞馬遜。所以想去外企早點動身,不用擔心當前工作不夠一年。
5.20 投的簡歷,5.24 收到 OA 筆試郵件。
SDE2 OA包含
1)coding, 90分鐘,兩道題; 2)工作模擬, 15分鐘; 3)工作風格調查。郵件還包含個人信息完善部分。
OA 在 7 天內完成都行。我是在 5.29 做的筆試題。后來了解這個筆試題是 HR 隨機選的,一般都是中等難度。但我遇到了一個 hard,LeetCode 2281 題,第一題過了,這個 hard 只過了一部分測試用例。擔心 OA 都過不了,那幾天還是有點失落的。
同時,在網站上看到這樣的信息,以為 OA 掛了。不過 6.14,過了半個月,通知我面試。驚喜。后來認識的亞馬遜 HR 幫我查了,說我 OA 結果還不錯。后來又了解到很多人都沒有全部 case 都過,也拿到了面試邀請。
不過從 OA 結束到面試邀請時間不一定,有的兩三天,有的半個月。做 OA coding 時, 還是要注意代碼風格,變量命名,不要寫過多無用冗余的注釋,代碼要簡潔。
我六月初面試就基本結束了,所以把面試推到六月底開始,好有時間準備下,總共 4 輪,我選的是連續(xù) 4 天每天一輪。這期間又把算法,系統(tǒng)設計好好準備了下。
亞馬遜面試不問八股文。就項目,coding,系統(tǒng)設計。總的來說,亞馬遜的面試可以說是很專業(yè),有水準,讓人尊敬。
一面
前半個小時問項目,后半個小時做題,加 follow up。
二面
是系統(tǒng)設計。前半個小時問項目,很有水平,問道了核心難點,別的公司面試的時候問道都比較淺。后半個小時系統(tǒng)設計,亞馬遜的系統(tǒng)設計用的畫圖網站很難用,可以用自己的本地或者在線畫圖網站,屏幕共享即可。
三面
是 BQ 考察。前半個小時 BQ 問題。后半個小時做一個題。兩次 coding 都是中等難度。
四面
也是先聊半個小時項目。后半個小時做了一個簡單的系統(tǒng)設計。建議換個不同的項目聊,可以更全方面的展示自己能力。
面試官都會做記錄,四輪面試結束后,他們要一起討論是否給候選人過。
亞馬遜面試流程前面會很慢,尤其是投簡歷后到 OA,OA 后到面試邀請。面試后就很快了,一般兩三天 HR 會聯(lián)系你,告訴你面試結果。然后收集薪資,問你期望薪資。亞馬遜 Offer 薪資是不可以 compete 的,申請下來是多少就定了。
哈哈,面試完拿到 offer 后,我還去臥佛寺了一趟,去還愿,不過周一去的,沒有開門。
前面記錄了面試流程,下面準備從以下 5 個方面做個總結:
算法刷題
簡歷
系統(tǒng)設計
面試技巧
offer 溝通
一.算法刷題
我是今年四月底開始準備換工作,準備到五月中旬開始投簡歷。作為程序員,面試必須是要做題的,我從今年年初斷斷續(xù)續(xù)開始刷題,之前總共 LeetCode 刷了有 300 道,今年面試前又進行總結復習,總共刷了 470 道,算是刷的數(shù)量少的。不過夠用了。
刷夠 300 多道,多總結,保持熟練度,大廠面試基本都沒問題了。況且,我從去年換工作,大小廠面試也有二三十家了,基本沒遇到過 hard,細心,保持鎮(zhèn)定,基本都能做出來。
做題量來說,300 可以出去面試了,500 多比較穩(wěn),不慌。我認識很多去面外企的都刷了六七百道了。平時刷題,超過 10 分鐘還沒有思路直接看 LeetCode 上面的優(yōu)質答案,刷的題少不會做題很正常,關鍵是自己一定弄明白,然后自己寫寫出來。
自己寫出來是重點。而且經典問題要用自己的話總結一遍。比如二分查找,一般二分查找怎么寫,改變一下,如果問題是在有重復的數(shù)組中找到最后一個 target,或者找到第一個 target,那判斷條件怎么寫?
一定要參考優(yōu)質答案,然后自己總結并實踐。
還有一點是,要細心,一定要處理好邊界條件。初級階段是,很多題指導思路,但對于細節(jié)把握不牢,因為沒有仔細去思考細節(jié)這樣寫的原因。雖然大部分面試不用上機運行出來,但我遇到的大部分面試管還是能注意到關鍵細節(jié)問題的。
比如,快速排序,原理很簡單,但不好好準備,沒幾個人能寫出來無 bug 的代碼。刷的題多了,思路基本都有了,就需要在做題的時候,把細節(jié)問題想清楚了再寫。負責很難讓面試官滿意。
常見算法題有:數(shù)組、字符串、鏈表。LRU 被問過 4 次,后來可以 bugfree 直接寫出來了。圖,最小生成樹,prim,Kruskal,Dijkstra,朋友圈算法等, 二叉樹,DP,我都有好好準備,但是面試都沒有遇到過。
所以準備算法題的時候,可以先把 HotTop100 刷的明明白白,然后再逐步將不常見的算法類型也攻克。labaladong 和 宮水三葉的題解都不錯。算法題是不能有失誤的,這也是最基本的。而且一般面試都不會出 hard,基本都是 mid。
二.簡歷
之前幫公司招人收集簡歷的時候,基本都是社招簡歷,真是見識了各種風格的簡歷。不是 hr,有些簡歷我也是一眼就像 Pass 掉的,主要項目不清晰,簡歷寫的很亂,花樣很多,這一看就不專業(yè)。
程序員的簡歷,要干凈,重點突出,才顯得專業(yè)。一般都不放照片,民族,籍貫這些也都是多余信息,電話,郵箱即可。教育背景,專業(yè)技能,工作經歷,個人評價這四部分即可。
重點在工作經歷里面,社招的不局限與簡歷是一頁還是兩頁,把重點項目按照 STAR 原則寫就好。我寫簡歷前,會按照 STAR 原則,將項目好好梳理一下,尤其是我做了什么,難點是什么,以及成就。最后還要加一點反思,之前方案有什么問題,這個很多公司都要問的。項目整理好了后,再往簡歷上寫。之后面試的時候,介紹時,也比較有條理。
我的簡歷問過一些獵頭,以及大廠公司的 HR,說算是還不錯的。當然,我也見過更漂亮的簡歷,用的是 LaTeX 寫的,很簡潔。
外企一般要準備英文簡歷,不過我投的是北京的亞馬遜,只有中文簡歷也可以。
三.系統(tǒng)設計
社招三年以上都要考系統(tǒng)設計的。
我買了 grokking the system design interview z 這個門課程,挺不錯的。國內價格 599,開 VPN 后,海外價格會不同,香港最便宜,好像是三四百。
上面這門課程將基本的系統(tǒng)設計要考慮到的點,常見系統(tǒng)設計的核心問題思路都有很好的講解,且全都是英文的,不過并不難,也能鍛煉閱讀英語的能力。
看過三四個章節(jié)后,建議 YouTube 上面搜一下 System design 視頻,面試時候的表達,條理也很重要。之前我面試沒有條理,只將核心問題給了解決辦法,看過視頻后,會更有條理。
四、面試技巧
后端開發(fā)程序員面試外企,硬實力部分主要是算法、系統(tǒng)設計,有的還要求英語。不過硬實力有了,不一定發(fā)揮好,或者說錯話,導致被 Pass。有個朋友面試亞馬遜,面試官問離職原因,說領導不行,這個不能這么說啊??赡芫褪且粫r嘴快說漏嘴了。
這個問題也很常見,面外企就說希望 WLB 唄,向多陪陪家人,想多點自己學習時間。面試國內大廠,就說想換個環(huán)境,想要更多挑戰(zhàn)。如果不是面試官不想要你,就不會再繼續(xù)為難你。
在做算法時,一定要提前和面試管溝通好問題,以及邊界 case。我一般是在快速思考后,然后面試官提問,不明白的,以及特殊 case 怎么處理提前問清楚。然后就是快速把代碼寫出來。寫完代碼后,不要著急說寫完了,一定要在檢查一遍,一般都會有小的問題。不要被面試官發(fā)現(xiàn)了再指出來。
面系統(tǒng)設計時,提前明確需求更重要。面試官很看重溝通能力。提前把問題,以及可能面試官都沒想到的關鍵點提出來,會增加好感。后來亞馬遜 hr 和我說過,面試官評價里面有個溝通很好,提前明確了需求。如果遇到沒做過的設計題,也不能慌,總得給個答案不是,總不能說不會吧。先把問題簡化,模型簡化,再一步步去解決。
面試 Tik Tok 讓我設計一個打車系統(tǒng),這個真沒遇到過。司機和乘客都在地理位置上不斷移動,這怎么搞。想了幾分鐘后,我按最原始的思路,將地圖分隔成很多小塊,然后打車是,找乘客所在小塊周圍 8 個小塊的司機,進行通知,匹配打車。
還有一點就是及時觀察面試官態(tài)度,自我介紹是不是說的太細太多了,方案是不是面試官不太喜歡,及時調整。BQ 行為考察的問題,在基于自己實際情況下,慢一點回答,多想想,朝著有利,真誠真實的方向說。
五.offer溝通
如果幸運走到這一步,談薪真的是很重要了。
對于 dream company,我一般先找?guī)讉€小公司練手,然后找?guī)准议_工資比較高的好好面,拿到較高的工資,最后去面試想去的公司,走到最后談薪時,會問你當前薪資,以及手里 offer 的薪資。這兩個都會參考的。要把握好面試進度。
問我期望薪資是多少時,我一般說上一家薪資漲 30% 左右,不過不絕對,根據(jù)我的面試表現(xiàn)和公司薪酬體系來。
想拿到好的薪資,主要還是兩點,面試表現(xiàn)好,當前薪資較高,另外有其他 offer 也是一個因素。最重要的是,缺不缺人,缺人面試好薪資就開的好。
今年大廠小廠都在裁員,面試環(huán)境很嚴峻,我前后投了八九家,小公司練手的基本都給我掛了,最后拿到 offer 的只有亞馬遜,和新加坡 Tik Tok。還有一個走完流程不發(fā) offer 的,兩家主動終止面試。去年投的國內大廠,除了騰訊沒有拿 offer 也都拿到了,有個搜狗 offer,后來被合并入騰訊。
面試掛了不要否定自己。要好好刷題,好好準備基礎知識,面試常問的知識點要用自己的話總結下來;不要廣撒網,這樣很浪費時間,要好好準備然后拿兩三個練手后直接去面大公司。
好好準備,祝有相關打算的朋友順利拿到 offer!
-End-
最近有一些小伙伴,讓我?guī)兔φ乙恍?nbsp;面試題 資料,于是我翻遍了收藏的 5T 資料后,匯總整理出來,可以說是程序員面試必備!所有資料都整理到網盤了,歡迎下載!

面試題】即可獲取