轉載:[Mitbbs]FB的intern和準備的經歷

今天中午剛收到f家的intern offer, 超級開心。在這個版塊看了不少也收穫不少。
onsite前天晚上面就就對本身過了必定發個帖跟須要的人分享下本身的經歷。論壇上帖
子看了不少,不少拿了FLAG之類公司的人都說本身不是大牛啦,沒準備多久啦。 LZ 覺
得都太假了。 因此但願LZ的帖子能真正的對以後同窗的人有些啓發。也給LZ攢攢RP啦。

首先說下背景。本科西安一個萬年211的高校的telecommunication,EE很強(西安的同
學應該猜到了是哪一個了)。本科沒作過research。春季入學了LA一箇中國學生超級多的
學校, 專業CS, Master。沒有任何實習經歷或者research 經歷。由於LZ徹底不知道
從哪下手因而就做罷了。 科目修了OS,Alg,DB, ML, Software Architecture,AI
。GPA3.79

1月份下旬開始投的簡歷,由於有大牛的幫助,有5個refer。結果LinkedIn 和twitter 
refer直接被拒,Yahoo 一直沒合適的崗位。本身也投了將近10家大公司和4家小公司,
都沒有消息(能夠看出LZ背景確實不行)。 最後只收到了G 和 F的電面。最後G家進了
waiting pool,F 家一輪oniste 拿到offer。

準備資料:
leetcode + cc150 + Coursera 的 Algorithms, Part I. LZ其實1月5號左右纔開始正
兒八經準備面試,以前只是上過學校的算法課。不過簡歷是寒假就準備了的。

準備順序: 
1. cc150 基礎部分(不包括 programming language, memory limit 和 OOD)。 築
基過程,很是中庸。

2. leetcode 老80 道題。 LZ一開始覺得leetcode就是 leetcode.com 不知道有oj 這
麼個東西,不過 老80道題有些題目真的很是經典,建議有空能夠看看。

3. leetcode oj,一共150道題,LZ是每一題都是本身獨立作的,除了 string pattern
類的題目,有一些是抄的。 可是這是絕對的錯誤,尤爲是你去FB的話,string 類的
題極其容易被考的,不信能夠翻mitbbs記錄。這也是最痛苦的過程。LZ建議不要幹別的
事這個時間,集中畫2周到3週一題題突破。不要拖太長時間,由於你會發現時間越長越
沒動力。

4.CC150 最後兩章。LZ是在G 家第一輪面試前發現的這兩章,當時嚇出了一身冷汗。因
爲以前室友問過LZ本身面試遇到的難題都在這裏面發現了,甚至一些比較偏門的也能在
這發現。強烈建議練習,背誦!

5. CC150 全書,這段時間也是LZ最迷茫的時候,由於不知道該作什麼了。最後決定還
是繼續築基。因而開始重作CC150.

6. leetcode 130道題。若是你以前都是本身作的話,你會發現這個階段你提升的很是
明顯。LZ 沒寫一道題都會發現 coding 風格比以前的更加簡潔,而且作得更快,130題
只用了一週多一點點就所有跑過了。

7. Coursera 的Algorithms, Part I, Princeton Univ. 不少人都以爲 leetcode 刷
通了就能進FLAG。 可是LZ以爲,不論是intern 仍是 fulltime, leetcode對付 電面
徹底夠了,可是onsite 就比較懸了,必需要從算法根本從新複習。因此LZ F家onsite
以前花了2天看了公開課的全部視頻,有些章節甚至看了兩遍。LZ認可,本身onsite沒
用到,可是跟LZ一塊兒onsite的一個CMU的哥們問到了 sparse vector multiplication,
公開課的原題啊!

基本上順序就是這些,其實每次電面前三天LZ都會用google doc 敲一遍 CC150最後兩
章的重點題,由於實在是太經典了。以前的章節也會本身帶着作一些。

準備建議: 
1。 數據結構必須精通,甚至要回搭建本身簡單的數據結構 好比hashmap, linklist
之類的。 
2. CC150 是神書,最神奇的是最後兩章,
3. 不要浮躁的刷題,有時間多看一些算法課的視頻,有些思想沒準哪天你就會用到了。
4. leetcode要練精,第一遍作的時候能夠嘗試多一些,第二次要儘可能作到bug free,
代碼一次成型,這點很是重要。
5. leetcode上一些複雜的DP其實考得不多,由於45分鐘你很難作出來,(面試官固然
會假設你沒作過)並且面試官也不必定能肯定你作的是對的。真正重要的就是一些
string 類型的小題目。很簡單,可是容易錯,很是考驗代碼風格。
6。 作題的時候就要保證代碼規範,雖然只有F家注重這些,可是好的代碼規範聽說會
加分哦。
7. 只用寫字板寫代碼,onsite 前能夠找白板練練。
8. coding 要老老實實地練,無論java 仍是C++ ,leetcode總有人能跑過的,LZ本身
就是Java 151/151. 因此,少抱怨些,多靜下心來作作題。(若是你有跑不過的,能夠
給LZ留言,LZ能夠把本身代碼發給你參考下)。

面經:
都是一些極其基礎的leetcode。只有一個facebook二面時候 brain teaser, 面試官很
聰明得給了LZ一段代碼,LZ以爲很眼熟,想起來時 CC150 brain teaser 最後一題。於
是一邊聊天拖時間一邊翻開書看了下,給了他答案。面試官最後很是滿意。

其餘:
其實LZ面試挺坎坷的,Google電面第一輪是LZ張那麼大的第一輪面試,及其緊張。LZ英
語也是半個結巴,因此感受很是很差。最後一道題居然還被告知bug。可是LZ 一直找不
到,問他他也說你能夠本身找。LZ最後用eclipse測出來沒問題就發郵件個面試官解釋
了了下本身的思路。居然最後兩輪過了以後面試官主動打電話說不要意思,面試時候看
錯了 你的代碼是bug free的。 不禁的佩服老美native的心胸。 相比下F家第一輪的烙
印就差點把LZ坑死, two sum不給用 夾邊的那個算法。LZ給了個hashmap的 被告知有
bug,還給了LZ個test讓肉眼debug。真是拼了老命都沒找到啊,結束後用eclipse test
, 完美跑過了他給的2個test。當時就驚呆了。。。 不過確實有個小bug,可是跟他給
的test徹底不要緊。LZ面試的時間就這麼被耗盡了。不知道是否是被這個烙印給故意坑
了。不過幸虧是refer的,因此recruiter給了第二輪面試,leetcode原題,表現良好,
就直接給了onsite。

因此你們仍是保佑別遇到極品阿三吧。不過LZ Google 第二輪遇到的阿三哥仍是蠻nice
的, LZ面的不錯,爽快的給LZ過了, 還彌補一面悲劇的表現。因此什麼地方都有好人
,也有壞人,你們沒必要一律而論。不過通過被F家一面烙印坑了以後,LZ仍是決定,以
後若是當面試官的話,遇到不靠譜的阿三直接難題秒他。

LZ如今也有些不知所措,不知道intern 要作什麼,本身能幹什麼。不過之前一個師兄
有句話對LZ幫助很大,最後送給你們:」當你迷茫的時候或者不知所措的時候,就老老
html

實實把手邊的事情作好就好了,全部事情都會慢慢變好的」。java


Data structure: 
Link list, tree(BST), graph, stack, hashmap, array, string.
Also: trie, suffix tree, Red-black tree.

Algorithm: 
DP, DC, tree traversal, some string pattern comparison algorithm including 
KMP, rolling hash.

Most algorithms and data structures are practiced in CC150 and leetcode.
面試


http://www.mitbbs.com/article_t/JobHunting/32659939.html算法

相關文章
相關標籤/搜索