我是如何拿到硅谷頂級科技公司的 10 個 offer?

原文:經驗分享 - 我是如何拿到硅谷頂級科技公司的 10 個 offer ?

鏈接:https://leetcode-cn.com/circle/article/BCRG4D/

在Leecode上看到一篇精選文章,是一名程序媛親述自己如何拿到硅谷頂級科技公司的10個offer!乾貨滿滿!


經過 3 個月精心準備,我拿到了 Google,Facebook,Netflix,linkedin,Snapchat,Roku TV,Amazon,Signal,Wealthfront,Toyota Research Institute 一共 10 個硅谷公司的 offer。airbnb 結果還沒出,uber, dropbox 面試體驗不好,最後 onsite 直接 withdraw。Soundhound intuit HR 自己說他們待遇不 competitive,所以也 withdraw 了。最終大概率在 LinkedIn Staff 和 Netflix 之間選一個。

背景

本人 13 年北大畢業,本科讀的是信息管理與信息系統專業,和圖書館學是一個系。我的數理能力肯定不是頂尖,高考是靠語文英語拉分的。後來追隨男朋友(現在的老公)來美國讀了 UCSD,強轉計算機專業。我 13 年剛剛入學 UCSD 的時候,連 terminal 也不會用,從本科算法課,操作系統課開始一點點補。來美國上了第一個 quarter 之後,靠老公對我的冬令營,刷題補習,拿下了 Apple,Facebook,Amazon 的暑期實習。14 年暑假選擇了和老公隔壁組的實習,因為深知自己計算機水平完全不夠,只是會刷題,想和老公近一點,能幫助指導,減少我不必要的壓力,同時增加拿到 return offer 的概率。14 年暑期實習表現的很好,實習的 project 也被選上 org 最佳。實習結束後,高高興興拿到了return offer。於是我在 Apple 一呆就是四年。

出發點

在 Apple 工作的四年裡,結交了很多好朋友,深交了幾位知己。第一年 exceed,RSU refresh 了工資的 60%,升職成功,超過預期,短暫高興過頭覺得自己是人生贏家。工作更加積極努力。第二年 exceed,股票比前一年多給了一萬,基本符合預期,短暫高興過後是平靜。工作依然賣力積極。也在這一年,我鼓勵老公跳槽升職成功,他頓時包裹豐厚,把我狠狠甩在了後面。也聽說身邊很多同學,升職跳槽成功,真心為他們高興,努力就有收穫。當時我完全沒有考慮跳槽,因為這年的項目特別好,我覺得是一個非常好的機會。所以,我同樣賣力工作,懷著孕,但是絲毫沒有懈怠,代碼量還是組裡前三。18 年 7 月份開始休產假。寶寶出生後 7 周我就回去上班了。不久 review 就出來了,第三年 exceed,股票再比前一年多給了一萬,感覺有點失望,不是說錢少,而是感覺我再怎麼比組裡其他人努力,但是基本上都差不多了,再沒有驚喜,大鍋飯,可預測性太強。同一年,老闆也想升職加薪,因為項目帶的好,“編出來” 好多 head count,招了 5 位新成員,其中有一位來自 cisco,強推 CI,新成員狂寫 unit tests,搬到了 Apple Park。我們組從原來的家庭小作坊的溫馨和諧,其樂融融,變成了企業式經營,所有人都來 “新官上任三把火”,我覺得弄得效率很低。所以,對我來說:

1、組裡項目已經成熟,和老闆交流後發現明年的項目並沒有什麼意思。

2、組裡人太多,馬上就要 re-org,我雖然基本知道我的新老闆會是我在組裡最要好的朋友和導師,但是,他剛剛變成 manager,肯定要適應,我的升職肯定會受到影響。

3、我想再生個寶寶,那樣,基本上最新兩年升職沒戲了。於是,在 18 年聖誕,我就下定決心,準備跳槽。

準備過程

說幹就幹!

好久沒有上 leetcode 的我,打開了網站,一切還是那麼熟悉與陌生。當時寶寶只有 4 個月,所以,我的時間比較零散,週中基本上每天 1-2 個小時,週末一天會有 3-4 個小時用來學習。以下按照我的個人經歷。你要是能全職準備,或者基礎紮實,其實應該很快。

1、熱身期(1-2周)

我先開始按照通過率高的開始刷,只挑 easy 的刷,增加信心,找回感覺。這樣刷起來很快,我刷了兩個週末就刷了 60+道。但是刷到後面感覺沒有意思,碰到會做的會做,不會做的還是不會做,沒有任何實質進步,再這樣刷下去沒有意義了。

2、學習期(1周)

於是我開始系統性看書,我老公一直是推薦算法導論,但是我覺得翻譯不好,看得不大明白,一看就困。

我在 UCSD 做過算法和操作系統的助教,算法我強力推薦我老師的書:http://algorithmics.lsi.upc.edu/docs/Dasgupta-Papadimitriou-Vazirani.pdf,淺顯易懂,看起來快。

OS 我推 Joe 的課:http://cseweb.ucsd.edu/classes/wi19/cse120-a,他會邊上邊更新,當然網上資料很多。

我覺得基礎知識一定要打好,面試的時候,除了 FB,感覺別的公司多多少少還會,不是說考,而是交流的時候,會涉及一些平時的工作的,或者是基礎知識。特別是,有的時候我做題很快,面試官沒有準備,就會問一些臨場的問題,那就什麼問題都有可能了。但是隻要打好基礎,系統性有個全面的瞭解,一般碰到沒有聽過的東西,我直接就說我不知道,好像也沒有任何麻煩。但是,要是問到基礎性的問題,說不會就不太好了。反正到處都是雷,打好基礎能最好的幫助避開這些雷。

3、突飛猛進期(1 個月)

學習結束之後,我又回到了 LeetCode。我開始分類攻克,按照數據結構和算法,拿出幾個常見的類型,一類一類的看。包括樹,圖,dfs,bfs,recursion,linkedlist,hashmap,priorityqueue,等等,leetcode 裡都有。按照頻率,一道一道刷,理解,掌握方法,融會貫通。在此我推薦一下前幾年和老公一起寫的書。我們都是強推以質代替量。保證理解,能考慮為什麼這道題要這麼做,是先有方法再有題目,而不是一味的做一道題,想一個方法。一道題做了,做一道類似的題,舉一反三一下。掌握解這種類型題目的方法。得問問自己為什麼這道題能用這個數據結構或者這樣做?有沒有別的方法?

對此,我還是推薦一定主攻 leetcode 前面 150 道題,基本上要是全部會就無敵了已經。要是保險,再刷刷每個類的高頻題強化一下。LeetCode 都相當經典,高頻題肯定也是好題,面試官平時面來面去也就這麼幾道題,比如我自己基本上就面一道和自己 project 相關的題。他們選考這些題是有原因的。比如可以考多個知識點,或者對一個知識點考的很全面,或者對代碼質量要求比較高,或者有多個解法發散思維等等等等。所以都是好題,值得理解。

與此同時,我刷我刷我刷刷刷,一道一道一道刷。

4、瓶頸期(依個人了,看什麼時候會有這個 “aha” moment,方能進入無所不能)

刷著刷著,就又進入了,會做的還是會做,不會做的還是不會做。瓶頸期來了。。這個時候,我不再那麼奮力什麼每天刷幾道幾道了。我開始看做過的題目,開始總結,做筆記。很累,很失望,知道自己到瓶頸期了,再刷題已經沒有質的飛躍了。總結,做筆記,看筆記。開始模擬面試。一開始,絕望,覺得刷了這麼久,白板一來又腦子空白了,不知道自己在說什麼。沒關係,總結經驗,繼續模擬。我開始花更多的時間去思考,而不是做題目。開始花時間去想明白。

看了一下,我這次一共刷了 200 道,包括前面的熱身的60道。

5、無所不能期

我開始一天天進步,不知道什麼時候,經過幾次模擬面試,我老公說我可以畢業了。我自己並沒有意識到。於是我開始廣投,開始了我面一個進一個,面一個進一個的旅程。

6、阿彌陀佛無慾無求期

開始了我漫長的 onsite,更多的是我想看看,逛逛不同公司的文化。而且能省去午飯錢。基本上在所有的公司,我都會說,在我現在這個階段,我真得是無慾無求,我只想找一個適合我的公司,你們也找適合你們的 engineer,我們是 mutually equal and this is a mutual experience.

結語

至此,我要感謝所有在這個過程當中支持過我,幫助過我的恩師們。尤其萬分感謝那些幫我內推,傳授經驗的大佬們。大家不惜自己的時間來指導幫助我,受到大家的雨露,讓我茁壯成長,我真得感激不已。感謝我老公的幫助和鼓勵,感謝爸媽幫我照顧我可愛的寶寶,感謝寶寶讓我更有動力,努力向上。

鏈接:https://leetcode-cn.com/circle/article/BCRG4D/


分享到:


相關文章: