首先聲明,這只是個人播客隨感,其中沒法避免有一些我的色彩的看法,請不要在乎,我尊敬任何的互聯網公司,尊敬研究生期間的老師同窗,我只但願給在求學路上的CS同窗一些啓發。前端
先介紹一下背景,我是ACM銅牌退役狗,在某985讀研,今年找暑期實習。過去兩年一直準備去谷歌或者其餘好的IT外企實習,堅持刷了兩年CF,kickstart, codejam,今年CF升到紫名了(這個月沒練,實力又降低了hhh)和leetcode全球排名前300。可是今年遇到了谷歌翻車以及面試碰壁等各類狀況。
git
從2月初到4月中旬,已經兩個月,終於實習面試即未來到尾聲。今天微信HR面結束,而我暑期實習的面試除了一個外企金融公司已經所有面完,有些offer已經發了下來,有些還在路上。雖然從結果上看暫時只有谷歌翻車了,可是整個3月和4月初的煎熬,伴隨今年疫情的蝴蝶效用,2020必將是一個無比魔幻的一年,讓我一輩子難忘。github
2月份大多數時間在幹兩件事,一個是組裏的大項目,另外一個就是準備谷歌的一面。因爲以前參加過a day with google的活動,而且1月份我還去google上海蔘加了谷歌機器學習冬令營,憑着這些經歷還有hs學長去年成功轉正的經驗,我也但願可以順利進入谷歌實習,刷了大約一個月的CF+leetcode,在3.5迎來了我人生第一次谷歌面試。面試官上來給了這麼一道題。面試
給你一個數組errors, 和一個時間點 time(0 <=time < errors.siz()), 和interval,以及threshold。 問errors數組中是否存在一個連續的區間,這個區間的長度爲interval,且包含time位置,且這個區間的最小值大於等於threshold
對此我提出了滑動窗口的作法,用multiset動態維護窗口的最小值,複雜度o(nlogn)。誰知面試官表示不知道set,multiset,更不懂滑動窗口。以後我想到了能夠直接維護窗口大於threhold的數的解法,複雜度O(n)。讓人崩潰是我解釋20分鐘本身的想法,面試官才勉強弄懂。以後的follow up題,面試官一開始講漏了一個重要條件,讓個人解法偏向了複雜的線段樹數據結構,以後發現的時候個人心態已經崩了,這也致使本身的解法不是最優解(我提出的是nlognlogn,正解估計是n)。算法
在覆盤的時候,我發現這題有一個更簡單的作法,直接從time位置往左往右統計大於threshold的個數,複雜度也是O(n)。若是我當時一開始想的就是這個解法,或者面試官提示我他的想法,估計結果也不是如今這個樣子。可是這不是面試官低能的理由吧,我有理由相信,大多數競賽出身的人都知道set,multiset,滑動窗口,刷過100道以上leetcode的人,應該也知道這些。至少說明面試官不怎麼刷題,也不會STL(甚至C++也不會?),這種人怎麼進谷歌的?面試官出題的時候是否只准備了一種解法?面試結束以後面試官對於一開始不理解個人算法表達了歉意,但也表示這會影響個人面試評級。數據庫
大約兩週後HR跟我反饋一面結果不夠理想(估計learning hire),考慮今年的嚴峻形勢可能沒有二面。這件事對我打擊的太大了,雖然我ACM退役以後堅持刷題不徹底是爲了進谷歌,可是這兩年堅持CF,kickstart, codejam,我認爲我是有這份實力的。固然以後很是戲劇的一件事是谷歌由於疫情直接取消了中國區的實習招聘,無人生還 = =。這世界是真的魔幻,我怎能想到我是這樣掛掉了谷歌,並且不只我掛了,全部人都去不了。編程
以前說谷歌一面翻車,我原本準備谷歌若是能過,其餘公司就不投或者只投幾家了。可是本身仍是太菜,沒有作到未雨綢繆,這個未雨綢繆在於兩點,一是沒算到個人谷歌會翻車,二是沒算到今年外企基本翻車了。我以前的策略是抓刷題,只要會作題,就算谷歌掛了,還能去微軟,hulu,intel這些。誰知道最後只有微軟,hotstar還招實習生。paypal,google,hulu,intel,airbnb由於各類緣由統統陣亡,有些是自己今年就乾脆不招實習生了,好比谷歌hulu,還有就是hc大幅減小,還沒輪到我面就已經招滿了,好比paypal。外企原本hc就少的可憐,這麼一搞,有些公司可能只有個位數。我終於認識到,外企面試真的很看運氣,甚至能安排到面試都是一種幸運。因此我只能把重心放回國內企業,還有少數幾個外企,開啓海投模式。我投的仍是挺雜的,國內的BAT,字節,ponyai, 國外的微軟,hotstar,morgan,optiver。並且崗位上來看我C++開發,算法,大數據都有嘗試,這不得不說到研究生坑爹的選了數據可視化方向,結果進來發現你們都在寫前端。我在組裏作的和大數據有些相關,主要是數據可視化所須要用的一些算法的編寫和研究,好比交互式數據查詢,圖佈局,降維等等。可是這些經歷去投算法,你沒有什麼ML,DL的經驗,去投後臺開發,你沒有分佈式,網絡編程的經驗,面大數據相關,勉強還算match,但你也沒接觸過那些大數據框架。因此就很是僵硬,基本去哪面都是靠着本身四做paper,冬令營經歷,ACM經從來硬麪,這也得看面試官的面子了。在阿里提早批面了後臺開發,阿里雲API開發,搜索推薦中臺開發等部門,我才意識到本身不適合面純業務的開發,更適合和大數據相關的崗位或者算法的崗位。數組
這段時間有兩件事對我打擊仍是蠻大的,首先是阿里的搜索推薦三面掛掉,仍是莫名其妙掛掉的,面試官讓我寫不拷貝內存的鏈表快排(巨難寫,讀者能夠本身嘗試,不能用swap),以後又問了些跟個人方向八杆子打不着的問題,更讓人氣憤的是面完以後不告訴結果,在阿里的系統開放以前把我當備胎,仍是系統開放以後次日我連發兩次郵件才告訴我面試掛了。第二個事是微信一面就掛了,微信這邊簡直是奇葩中的奇葩,3月初我剛填完簡歷,我準備讓xj學長內推,結果簡歷直接被微信後臺的一個面試官拿走了,我跟他說我想去xj學長那個部門,結果他也沒有直接放我走,堅持面我還面的巨難無比。掛掉我以後我猶豫了下,準備想先去微信的ML崗位試試水(由於字節當時面算法面的還行),結果被數據分析的撈走了,我拒了數據分析的人以後,又被PCG的算法崗位撈走,並且PCG那邊鎖了我三週沒有給我面試,氣的排到我以後,我直接拒了面試。這件事說明騰訊那邊必定要好好利用HR的資源,讓她幫你解鎖簡歷,提醒面試官面試。bash
整體來講這段時間的壓力是愈來愈大,我原本以爲就算谷歌掛了,好好努力看基礎知識,3月結束前拿個offer應該是問題不大的。誰知道阿里搜索三面掛掉,騰訊那邊由於各類奇葩的緣由基本就沒面,微軟面完以後遲遲沒有結果,就算是面的比較好的字節,也在面完以後收到告終果清明節以後纔會出的通知。看到同窗都至少拿了一個offer,我內心很是沒底。微信
我以前認爲3月份至少會有一個offer,從結果來看當時已經面完了字節,hotstar,微軟,可是結果徹底不知道,清明節後的那個星期,我壓力巨大,這幾家公司頗有多是把我當備胎,翻看了下牛客網,也有各類所有面完流程最後被拒的帖子。我想若是這周尚未一個offer,我真得去投一個小公司保底了。幸運的是這周,字節在週四發了offer,hotstar和微軟那邊也問到了我面試經過的消息。
這裏一直沒有提阿里,阿里那邊搜索推薦掛了以後,螞蟻數據技術部的lead又找到了我,這位lead以前就經過github認識了我,我由於想去搜索推薦部的緣由婉拒了,以後他看我係統開放以後沒有投遞就又來找了我。真的很是感謝這位lead,我在螞蟻那邊的面試很是順利,再加上筆試也是滿分,據說是我是他們大部門第一個拿到offer的人。因此清明後那個星期忽然就得到了四個offer,個人壓力也終於緩解了下來。
騰訊那邊的狀況依然一波三折,PCG把我放了以後,我終於被內推到xj學長那裏,誰知道一面就面了30分鐘,就把我掛了,理由彷佛是我不太懂數據庫相關知識。我尋思我面哪一個部門不是硬麪的,不都不懂那些框架嗎 = =。並且更諷刺的是3月初bgg學弟還邀請我去企業微信,說幫我跟lead說下確定能過,我由於想面xj學長那裏就拒絕了,結果折騰一個月終於去面告終果被秒掛,真的是夠諷刺的hhhh。以後我找HR yy幫忙又推回了微信,很幸運的找到了一個比較match的部門,如今終於面完HR面了,很是感謝yy。
拿到幾個offer以後,我找hs,yc,gucci等同窗以及一些職場的老人都談了下,字節那邊是算法崗,螞蟻和微軟都是大數據相關。考慮到過去一年自學ML無果,冬令營被虐,跟Z博搞科研直接被拋棄的慘痛經歷,我知道我過算法崗純粹靠刷題,因此決定先拒了字節的算法崗,這個決定其實挺起來挺蠢的哈哈。大部分人應該會接字節的吧,最核心的廣告部門的算法崗,應該是搞算法的人最想去的地方之一(身邊不少人都去了)。考慮到今年外企的形勢,杭州比較方便,螞蟻lead對我還挺好,最後決定accept螞蟻的offer。
從結果上來看,我除了谷歌以後投了9家公司,截止今天有3個已發offer(阿里,字節,微軟),有2個比較穩的口頭offer(微信,hotstar),還有2個不知道結果的(morgan, optiver),還有2個由於時間關係組裏項目繁忙不許備再面了(百度,ponyai)。
國內公司: 字節/廣告組/推薦:已發offer,已拒 螞蟻CTO線/大數據:已發offer,accept 微信讀書/OLAP:等offer 百度/C++:筆試過了,不許備再面 ponyai/SWE: 面到四面,最後一輪是team match, 就拒了 國外公司: 微軟/azure storage:已發offer,已拒 hotstar/推薦引擎:口頭offer optiver/SWE:HR面已經面完 摩根/SWE:面完等待最終結果 谷歌/SWE:一面結束,已掛
回望這兩個月,感受本身不容易,也太菜。首先在家辦公,本身的效率估計連學校的一半也沒有,自從去年投稿結束以後的一系列破事,個人身心狀態也沒有剛上研究生那麼好了,對於組裏的科研和工做一直是很是低的效率。其次,這兩個月不只要準備實習面試,還有3月組裏的項目以及4月的投稿,有時候確實沒法同時兼顧,這也是我初期掛了幾回面試的緣由,由於我項目比較忙,因此就沒有報一些小公司練練手,本科時候考研也沒有實習面試過,因此一開始仍是個小白。
若是你是一個準備讀研的CS本科生,我認爲在選導師的時候應當更注重這個方向在工業界的match程度和這個方向是否適合你的發展,導師的名氣有時候是次要的。回想我當時選導師的時候,也投了3,4個老闆,當時以爲如今的老闆要我已經足夠幸運。說白了當時仍是太嫩,或者說是運氣不夠好(固然運氣也不算差了hhh,能考研錄取不算運氣嘛)。
個人結論是若是你不想讀博,最好找一個無論你的老闆或者是軟工那種能夠直接出去實習的,課上完後直接去大廠實習,遠比每天在實驗室待有前途,你讀研最大的收穫就是一張文憑,其餘經歷並不值錢,不少和工業界作的相差太大,還不如大廠實習經從來的香。
若是你想嘗試學術,像我這種在有名氣的學術老闆那裏讀研的,也能獲得一些鍛鍊,可是其實不如一些年輕老師的機會大。反觀咱們實驗室一做頂會論文的研究生,基本都是年輕老師那裏的,老師須要論文,也有空每天輔導學生,這樣學生才能最大程度的發展。
可是從另外一個方面說,若是你的本科是雙非,不過你的本科經歷豐富與否,能去985讀研拿到這個文憑對將來的發展確實有很大的幫助,就算你由於各類緣由研究生期間混的不夠理想,也是一筆穩賺不虧的買賣
有幾項是若是立刻要面試沒法改變的,你的性別,學歷,過往的競賽和論文經歷,這些每一個公司看重點不同。還有些是能夠在短期提升,好比計算機基礎知識,刷題,面試技巧。不過最硬通貨的仍是學歷,985CS出身,基本不會被刷簡歷,就算你大廠由於自身能力不足過進不去,小廠也是橫着走。對於頂級大廠,競賽和論文若是要很是有說服力的話,競賽通常是ACM金銀牌,kaggle金牌這種,論文通常是CCFA類一做or二做,有說服力,再次一點就不太行了。計算機基礎和麪試技巧,你們反正到時候多面面就上來了,刷題若是你不是競賽黨建議仍是提前準備,今年阿里都要求必須筆試了,刷題必須得過必定的bar才行。其次的話建議你們儘早投遞,早掛早積累經驗,早過早拿offer。你面晚了就有可能進備胎池,進備胎池就是養蠱。
下面我會比較具體的談一下對於幾個公司招實習生的不一樣風格的見解:
阿里的部門很是多,並且每一個部門是本身招聘,堪稱百團大戰。面試流程通常是3-5面,看評級和具體部門而定,總體流程較慢,基本只能面1-2個部門(一個部門掛了才能轉去另外一個部門面嘛)。坊間一直流傳阿里的面試喜歡談人生,問些HR喜歡問的問題。我確實遇到過一些這樣的面試官,可是阿里的面試官風格仍是各不一樣的,水平也良莠不齊。阿里不太喜歡面試的時候手撕代碼,對於基礎知識比較看重,對學歷和經歷也比較看重,整體是比較熬人的面試經歷。
字節算是最近幾年煊赫一時的獨角獸,字節的面試風格偏外企,通常是先問一些基礎問題,而後寫一道題,大約leetcode medium-hard難度。面試風格大多相似,面試官水平也較高,面試安排也很快,並且是疫情下惟一招這麼多崗位的大廠了。若是想作推薦算法,字節的廣告組是很是好而且不是很難進的選擇。不過字節通常掛了就沒法再面了。
騰訊這邊理論上是能夠面不少部門的,只要沒有坑爹部門撈了你而後忘了面試,提早批面個3,4個部門都問題不大。我主要面的是微信事業部,微信這邊通常會有2-3輪技術面試,其餘事業部通常2輪。前文也說了,我被騰訊的坑爹招聘系統坑慘了,你們若是面試發現5,6天都沒有更新,就儘快去找HR問問。微信這邊面試廣泛不是很是尊重人,喜歡丟幾道leetcode medium-hard題,而後掛電話讓咱們本身寫,問題是有時候那題意也不清楚,我能問誰去= =。有些部門不只題目難,問計算機基礎也難的要死。這種部門說白就看運氣,碰到好的面試官就能過,我也遇到過比較nice的人。固然你就是大佬除外,遇到誰都能過。
這幾家放一塊兒說吧,谷歌相比其餘外企更重視交流能力和代碼細節,對於一個問題也但願能探索更完美的解法,這也是它bar最高的緣由。可是谷歌今年直接取消實習,看這個趨勢,之後大廠一哥的位置早晚不保了,國內自己hc就少,將來幾年也不要報太大但願。微軟在中國的hc一直挺多,也有不少重要的業務,面試也就是算法題,懂的都懂,算是一個比較中肯的選擇。hotstar是北京一家面的印象挺不錯的外企,作的跟hulu差很少,也是視頻推薦網站,聽說給的很高。這些公司面試基本就是作題,可是跟競賽題仍是稍微有些區別,建議競賽爺仍是應該熟悉下leetcode hard題的套路。只要多加練習是競賽黨理想的去處。實習的話,谷歌是兩輪技術,微軟和hotstar都是三輪技術面。外企相比國內企業安排面試慢,出最終結果更是慢,不過面試比較規矩,難度比較平均,不會出現特別變態或者特別水的狀況。
大摩和optiver都是金融公司,外企金融公司都是英文面試,面的我頭皮發麻,並且這兩家的最終結果還沒出。大摩的面試過程上看,仍是體驗很好的,面試官通常會問一些你的項目,延伸問一些計算機基礎相關的知識。主要是你得用英文做答,就比較僵硬。大摩有一輪筆試,很簡單的那種,leetcode easy。後面有四輪面試,其中一輪也會讓你寫道題,也不是很難。其餘輪就須要你用英語和麪試官吹牛逼(太難了)。說白了外企金融公司比較看重英語交流能力和計算機方面的綜合素質吧。這種公司你們就面面碰運氣吧。
總結就是國內企業儘可能能找內推找內推,國內的公司內推大部分仍是能免去筆試的,固然你能認識HR,部門lead更能幫你省去很多事,說白了國內企業嘛,都有些人情世故。固然能不能過仍是得靠實力與運氣。IT外企通常就是拼刷題,水平到了基本沒問題,說是沒問題,可是如今好多外企都不招了hhhhh,因此能不能進也只能看命吧。外企金融我就不太瞭解了,若是你不是特別想去這個領域,那就面着玩唄。
若是是刷題很強,又以爲今年外企機會很少的,能夠嘗試去字節,ponyai進行投遞。今年的大環境太差了,但願你們在這種狀況下還能保住飯碗,保住狗頭吧。