通過 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。咱們組從原來的家庭小做坊的舒適和諧,其樂融融,變成了企業式經營,全部人都來 「新官上任三把火」,我以爲弄得效率很低。數據結構
因此,對我來講:數據結構和算法
一、組裏項目已經成熟,和老闆交流後發現明年的項目並無什麼意思。ide
二、組裏人太多,立刻就要 re-org,我雖然基本知道個人新老闆會是我在組裏最要好的朋友和導師,可是,他剛剛變成 manager,確定要適應,個人升職確定會受到影響。學習
三、我想再生個寶寶,那樣,基本上最新兩年升職沒戲了。因而,在 18 年聖誕,我就下定決心,準備跳槽。網站
說幹就幹!我打開了網站,一切仍是那麼熟悉與陌生。當時寶寶只有 4 個月,因此,個人時間比較零散,週中基本上天天 1-2 個小時,週末一天會有 3-4 個小時用來學習。如下按照個人我的經歷。你要是能全職準備,或者基礎紮實,其實應該很快。ui
一、熱身期(1-2周)spa
我先開始按照經過率高的開始刷,只挑 easy 的刷,增長信心,找回感受。這樣刷起來很快,我刷了兩個週末就刷了 60+道。可是刷到後面感受沒有意思,碰到會作的會作,不會作的仍是不會作,沒有任何實質進步,再這樣刷下去沒有意義了。操作系統
二、學習期(1周)
因而我開始系統性看書,我老公一直是推薦算法導論,可是我以爲翻譯很差,看得不大明白,一看就困。
我在 UCSD 作過算法和操做系統的助教,算法我強力推薦我老師的書,淺顯易懂,看起來快。
我以爲基礎知識必定要打好,面試的時候,除了 FB,感受別的公司多多少少還會,不是說考,而是交流的時候,會涉及一些平時的工做的,或者是基礎知識。特別是,有的時候我作題很快,面試官沒有準備,就會問一些臨場的問題,那就什麼問題都有可能了。可是隻要打好基礎,系統性有個全面的瞭解,通常碰到沒有聽過的東西,我直接就說我不知道,好像也沒有任何麻煩。可是,要是問到基礎性的問題,說不會就不太好了。反正處處都是雷,打好基礎能最好的幫助避開這些雷。
三、日新月異期(1 個月)
學習結束以後,我開始分類攻克,按照數據結構和算法,拿出幾個常見的類型,一類一類的看。包括樹,圖,dfs,bfs,recursion,linkedlist,hashmap,priorityqueue,等等。按照頻率,一道一道刷,理解,掌握方法,融會貫通。在此我推薦一下前幾年和老公一塊兒寫的書。咱們都是強推以質代替量。保證理解,能考慮爲何這道題要這麼作,是先有方法再有題目,而不是一味的作一道題,想一個方法。一道題作了,作一道相似的題,觸類旁通一下。掌握解這種類型題目的方法。得問問本身爲何這道題能用這個數據結構或者這樣作?有沒有別的方法?
對此,我仍是推薦必定主攻 leetcode 前面 150 道題,基本上要是所有會就無敵了已經。要是保險,再刷刷每一個類的高頻題強化一下。LeetCode 都至關經典,高頻題確定也是好題,面試官平時面來面去也就這麼幾道題,好比我本身基本上就面一道和本身 project 相關的題。他們選考這些題是有緣由的。好比能夠考多個知識點,或者對一個知識點考的很全面,或者對代碼質量要求比較高,或者有多個解法發散思惟等等等等。因此都是好題,值得理解。
與此同時,我刷我刷我刷刷刷,一道一道一道刷。
四、瓶頸期(依我的了,看何時會有這個 「aha」 moment,方能進入無所不能)
刷着刷着,就又進入了,會作的仍是會作,不會作的仍是不會作。瓶頸期來了。。這個時候,我再也不那麼奮力什麼天天刷幾道幾道了。我開始看作過的題目,開始總結,作筆記。很累,很失望,知道本身到瓶頸期了,再刷題已經沒有質的飛躍了。總結,作筆記,看筆記。開始模擬面試。一開始,絕望,以爲刷了這麼久,白板一來又腦子空白了,不知道本身在說什麼。不要緊,總結經驗,繼續模擬。我開始花更多的時間去思考,而不是作題目。開始花時間去想明白。
看了一下,我此次一共刷了 200 道,包括前面的熱身的60道。
五、無所不能期
我開始一每天進步,不知道何時,通過幾回模擬面試,我老公說我能夠畢業了。我本身並無意識到。因而我開始廣投,開始了我面一個進一個,面一個進一個的旅程。
六、阿彌陀佛無慾無求期
開始了我漫長的 onsite,更多的是我想看看,逛逛不一樣公司的文化。並且能省去午餐錢。基本上在全部的公司,我都會說,在我如今這個階段,我真得是無慾無求,我只想找一個適合個人公司,大家也找適合大家的 engineer
至此,我要感謝全部在這個過程中支持過我,幫助過個人恩師們。尤爲萬分感謝那些幫我內推,傳授經驗的大佬們。你們不惜本身的時間來指導幫助我,受到你們的雨露,讓我茁壯成長,我真得感激不已。感謝我老公的幫助和鼓勵,感謝爸媽幫我照顧我可愛的寶寶,感謝寶寶讓我更有動力,努力向上。
做者:roger-shen
連接:https://leetcode-cn.com/circle/article/BCRG4D/