這個五月,我拿到了騰訊暑期offer
閱讀前請開啟頁面右下角音樂播放器,閱讀更動聽。
前情回顧
本來學校就是雙非,如果再沒有些亮點,是很難進大廠的。
我比較幸運,曾在網易實習過一段時間,很感謝這段經歷,讓我有幸通過騰訊HR們的簡歷篩選。
對於騰訊春招,其實我是沒有參加網申(2.28-3.31)、提前批(2.28-4.1)以及線上筆試(4.5-4.7),我屬於常規批(4.13)中的晚期,我記得是4月18日投的簡歷,一直沒動靜,等到了5月14日更新了簡歷後,5月15日安排了當天晚上7點的面試。
騰訊一面
面試官是最守時的,說7點就7點來電。一面剛開始就說明所在部門是微信支付,而且沒有用Java,後臺全是C++,詢問我能不能接受轉語言,我表示完全沒問題,且不說語言只是工具,C/C++我也是上過專業課的,雖說到現在已經幾年沒寫過C++程式碼。
還問我打算如何去學習C++語言,我的回答是看書學語法、基本類庫,最後學習流行框架。然後繼續聊了聊在校期間做過的一些事,包括比賽經歷,創辦工作室的經歷等,又問了問與語言無關的基礎知識,最後讓我線上做3道題,發給我一個連結,題目包含以面向物件的思想模擬編寫簽到機程式,UTF-8編碼的校驗,64匹馬8個賽道跑幾次能選出前5名。
我做到9點後,面試官給我打來了電話進行一些題目上的詢問,就這樣,一面終於結束。騰訊一面給我的感受是嚴謹、認真和細緻,涉及的面非常廣,基本能把你的情況全部摸個底。
騰訊二面
5月17日,也就是一面結束後的第二天,騰訊發來了二面。二面問了我很多很多的基礎知識,包括計算機網路(TCP、HTTP等),作業系統(Linux),尤其是在程序、執行緒的問題上問了我好久。
最後問了我,你覺得單程序好還是多程序好,說句實話,這個問題把我問懵了,不過幸好我看過一些Redis方面的書籍,想起來Redis的RDB快照是通過fork出一個子程序來進行儲存的,如果不這樣的話,RDB操作將阻塞主程序,就這樣回答了這個提問。
然後面試官又提問了我,你覺得單執行緒好還是多執行緒好?我的回答依舊是借用的Redis的例子,單執行緒如何如何好,多執行緒如何如何好,究竟用哪個?要看具體的業務需求。問到這裡,面試官意識到你小子挺懂Redis的呀,因為我的一個分散式限流專案用到了Redis,於是面試官開始對我進行狂轟濫炸,說一說,Redis如何保證高可用?叢集、主從複製,我記得還有個哨兵。回答了這幾個關鍵詞面試官並不太滿意,我只能硬著頭皮解釋了下主從複製的流程。
最後面試官問了我一道演算法題,典型的海量資料TopK問題,這裡就不再敘述。二面結束,面完後感覺差強人意。
騰訊三面
5月19日,微信收到了三面面試官的好友申請,詢問得知是複試加面,看到這裡我深吸一口氣,嗯,好吧,二面表現的確實不算太好。
當時正在坐高鐵返校,就禮貌的推遲到下午5點。我是4點多到濟南的高鐵,下午5點微信面試官打來電話時,我剛從學校附近下了地鐵,沒辦法,就在大馬路邊面吧,雖然來來往往的都是大學生。
這次面試,重點是聊做的分散式限流專案,這個專案毫無疑問被面試官揪著分散式場景下的一系列問題問,我先是解釋了該專案前期的方案是基於Redis做分散式令牌桶,這樣不存在令牌數量在多個例項中的不一致問題,但是後來我捨棄了,因為這種做法在主執行緒中涉及網路請求,網路請求起碼是毫秒級吧,對業務的影響太大,於是為了不影響業務,我將分散式限流最大限度的做到本地化。雖然請求不均衡會造成令牌數量的誤差,但在實際的系統流控中,是完全可以實行的,並且,做架構本身就是一個取捨的過程。
接著,面試官又給了我一次freestyle的機會,如果讓你設計俄羅斯方塊,你會怎麼做,要具體到詳細的每一步。面試官問完這個問題,我的腦海中立馬浮現出我弟弟小時候經常抱著5塊一個黑白屏遊戲機玩俄羅斯方塊的場景。我回答說,我會先用面向物件的思想建立實體類,每一種方塊一個型別,這裡可以考慮是否使用抽象類,其次需要遊戲佈局,可以考慮二維陣列,不斷的往下掉方塊,當方塊到頂後,遊戲結束,這時候統計二維陣列中的0-1分佈情況,得出遊戲結果。這個問題真的是想到啥回答啥了,emmmm。還有一些其它的,都是老生常談的問題,這裡不再敘述。三面結束,面完後的感覺,隨緣吧。
騰訊HR面
三面結束後,我當天就看到我的面試進度是等待HR面試,開心到爆了。這一等,就等了3天,到5月22號下午4點,我收到了騰訊HR面的通知。騰訊HR面遲到了十分鐘,解釋是在面其它候選人,讓我感覺競爭者還是蠻多的。
HR面問的問題非常多,剛開始就問,拿了不少offer吧,都有哪些。我說拿了百度,不過只能走外包流程就不去了,還有新浪微博,面的是業務部門,一是做的不感興趣,二是轉正希望也不大就沒去。為什麼不面阿里,我耿直的說我掛了。然後繼續問大學的經歷,團隊比賽,參加工作室,最後還問我的家庭對我的影響。你覺得你的三個優勢是什麼?體現在哪裡等。HR面結束後,我的面試進度是已完成所有面試。
HR面結束後的第二天上午,我就收到了騰訊HR小姐姐的電話,首先告知我已經通過面試拿到offer,然後向我核對我的個人資訊。沒多久,就收到了offer郵件。
最後的話
說一下自己阿里三連敗和騰訊面試的感想。阿里面試我經歷了三個部,每一次都是一面二面容易過,可惜每次交叉面都掛掉。阿里交叉面給我的面試感受是“我非常忙,咱們儘快結束”,我的交叉面基本都是不超過20分鐘的。
吐槽歸吐槽,從客觀事實上說,被掛的確是面試官的問題我沒有回答上來,這也是可以接受的,你不能指望人家面試官給你降低門檻吧。再說一說騰訊,從上面的面試過程中,相信大家都可以感受到,騰訊面試官是多麼的無微不至,每次面試的時間都是在1個小時及以上,HR面也是20-30分鐘,這種對候選人進行全面瞭解再互相對比得出結論的操作我覺得非常對面試者以及對所在公司負責。
其實思考一下也不難想到原因,阿里招聘號稱無學歷門檻,這就導致出現大量求職者的面試安排,面試官著急結束似乎也無話可說。
如果你想要繼續瞭解我,歡迎關注我的微信公眾號“程式設計師柯南”。