2018后台開發(C++)暑期實習面試總結


從3月份開始的實習面試,內推-網申-筆試-面試等等一系列漫長又煎熬的找實習過程總算是塵埃落定了。談不上面經,這里分享一下我的面試經歷。首先說一下面試結果

公司 部門 渠道&流程 結果
阿里 阿里雲 內推,電面 二面掛
騰訊 騰訊雲&TEG 提前批+正式批, 電面+現場面 offer
頭條 財經服務端&頭條主端 部門點招,視頻面 offer
微軟 O365 網申,筆試+現場面 offer
摩根士丹利IT -- 網申,筆試+電面+現場面 offer
美團 點評事業部 內推 一面掛
招行信用卡中心 后台開發(java) 網申+筆試+視頻 一面掛

  總的來說,有挫折也有驚喜,中間經歷了各種起起伏伏,所幸最后還是有一個比較不錯的結果。下面從面試成功與面試失敗的兩類公司,分別總結一下成功的經驗以及失敗的教訓,同時對面試公司的面試風格做一個總結。

Success

  實習面試包括三部分的內容:計算機基礎知識+個人/實驗室項目+算法題。對於C++后台開發崗位而言,要熟悉的基礎知識包括:C++知識(基礎、面向對象、內存模型)、操作系統基本原理、TCP/IP基礎知識、網絡編程內容(socket編程、IO模型等)、數據結構(鏈表、棧、隊列、堆、紅黑樹、哈希表)等,這些基礎知識有些會從項目作為出發點加以引申,有些則會專門詢問。
至於算法題部分,刷完Leetcode Top100以及牛客網劍指offer專題基本足夠應對面試。

頭條

  頭條的面試比較坎坷。一開始將簡歷誤投到了官網上實習招聘那一攔(頭條的暑期實習生在校園招聘那一欄), 后來也收到了財經服務端的面試邀請,對HR和面試官都說明了自己的情況,表示沒問題,遂面試。三輪面試除了基本的基礎知識和項目之外問的問題大概是:

  • 之字形打印二叉樹(劍指offer原題)
  • k路歸並有序鏈表(前面時間花太多,只說了思路)
  • 簡單實現一個LRU (雙向鏈表+哈希表)

  面試完后找朋友查了狀態,顯示面試通過,但是HR遲遲沒有來聯系Offer的事情。打電話咨詢HR,先問能不能轉成暑期實習生答要溝通,后續自己再打電話咨詢說只能提供5個月的日常實習生崗位,心中一萬只草泥馬奔騰而過...更蛋疼的事情是,正式批筆試也做了,但是掛了,可是實驗室另外一個同學A的題比我少但是筆試通過...
  心灰意冷的時候師兄跟他頭條主端的mentor聊起我的情況,他mentor說他們部門對時間上沒有這么嚴格的要求,問問能不能再重新發起面試。於是乎,重新參加面試。這次的三面體驗顯然優於上一個部門,不管是基礎知識部分提問的質量以及面試的氛圍。三輪面試的問題如下

  • 變形版本的正則字符匹配(?和*),暴力版本的復雜度說錯了,但是動態規划的版本的代碼算是寫出來了
  • 大佬教我做人系列,就項目中各種細節詳細問了,特別是對於IO復用、epoll等等。代碼部分讓我說了下單次買賣股票最大利潤問題的思路,輕松加愉快
  • 三面的面試官人非常nice, 應該是部門leader, 說話問問題如沐春風。沒有什么特別難的問題,主要是設計一個IM(個人項目中寫了一個聊天服務器),各種模塊的設計。

  頭條主端的面試流程非常正規高效,一天面試完畢,沒幾天就發了offer. 最后在自己各種不是特別成熟的考慮之下忍痛拒了這個offer, 說實話是有些后悔的,首先這個部門很核心,里面做的東西自己也比較感興趣,從面試也可以看出整個團隊的氛圍也非常好。有緣秋招再面啦~
  Tips: 頭條面試必問算法題,因此leetcode劍指offer該刷還是要刷。然后也會問一些基礎知識,但是一般而言不會很難,會比較重要的部分即可。

騰訊

  騰訊的面試經歷同樣充滿戲劇性。提前批的時候簡歷被SNG騰訊雲撈起來,一面問問項目問問基礎知識,沒有什么難的,基本全部答出,不過面試時間有點短,只有二十分鍾。后續一直等復試,公眾號里的狀態突然一天變成崗位不適合,驚得不行。然后當天中午就另有一個電話過來告知說忘記改狀態了,說后續還有面試。謝天謝地,然后接着等。這回等過來等過去,公眾號里的狀態復試、不適合、初試各種狀態來回變,總之就是沒有收到復試。
  騰訊是4月2號沒有收到正式offer就一定要參加正式批筆試。直到4月2號那一天,期待中的提前批復試也沒有來,慌得不行。做完筆試之后有收到說第二天總監電話面試,問是否算提前批復試,答曰算。第二天的復試總監大佬親自面,不知為何,水得一匹...這一回的面試居然各種聊人生...最后面完面試官說:“我這邊已經沒有什么問題要問了。我跟你說一下我面完你之后的感受吧。” 面試的感受大致就是我雖然不是科班出身,但是自己的興趣很明確,基礎知識也比較扎實,但是缺乏實際的工程經驗,他們團隊很適合我。(驚了...
  問HR,說面試通過了,但是我的簡歷現在鎖在正式批中,我不用面他們那邊,等到釋放了告訴他他拿去審批。開開心心,准備正式批面試那一天跟現場的HR說一下不面了,釋放掉我的簡歷就行。可是萬萬沒想到正式批現場面試當天又被告知騰訊雲那邊不能100%確定offer, 正式批的面試要不要參加我自己決定....
  猶豫了半天,決定還是硬着頭皮再面一次正式批。初試的面試官是個微胖的穿着沖鋒衣的大叔,可以,這很TEG。上來問問C++11新特性,這些東西自然是答得明明白白,面試官也很滿意。后面聊的一些問題有的答得不算好,比如分布式的基本原理、操作系統相關問題(進程怎么維護已打開的文件描述符)等,但可能前面聊C++聊得比較開心,一出門狀態就改成了復試。第二天來復試先聊基礎知識活絡起來之后就不緊張了,開始侃侃而談。讓看了兩道看代碼答運行結果的題,然后一道簡單編程題,都答上來了。最后再聊了聊人生,告知可以直接去上面等着HR面。下午HR面也就正常聊人生聊未來了,沒什么。
  沒過幾天,就發了正式的offer.
  Tips: 騰訊的面試我感覺是所有面的最水的一個...但是能不能進完全隨緣,而且面試官的風格相差也比較大。不過一般而言更傾向於基礎知識,很少做算法題。因此只要基礎知識比較扎實,然后也會主動以點帶面加以引申,一般都能過。

微軟

  微軟沒有內推,老老實實投簡歷然后等筆試。師兄說微軟的筆試會很難,戰戰兢兢了很久,沒想到筆試的時候題目水得一匹...倒不是問題多簡單,只不過寫了個暴力試試水然后就過了也是一臉懵逼。最后4道A了三道半,也就成功進入面試啦。
  4月23日去蘇州參加微軟正式批的面試。環境相當好,算是又充值了一波信仰。微軟面試一天分三批,我是中午11點那一批,首先被帶到一個會議室中等候面試,然后會有面試官一個個來門口領人去面試。
  一面面我的是一個外國小哥,人非常nice, 一直叫我放松不要緊張,然后考慮到我的口語水平語速很很慢。上來是一道熱身題,問如何判斷兩個字符串是否是Anagram(組成字符相同但是順序不同),馬上寫出了一個用數組模擬哈希表的方法。第二道題是數組中盛最多水的問題,Leetcode原題。之前雖然做過,但是思路一時間想不起來,然后就一直跟面試官探討,說自己對題目的理解,說暴力的方法,說初步的思考方向。面試官也給了我很多提示,最終想到了用雙指針的解法,並在A4紙上實現了。
  中午吃了一頓盒飯,然后一點就開始了二面。自我介紹完后,面試官讓我我用英語回答了一些問題,比如HTTP中GET與POST的區別。然后開始寫題。第一道熱身題非常簡單,判斷一個字符串是否有重復元素,easy. 然后第二道題說給我一個迭代器和一個數k,迭代器只有next一個接口,現在讓我將后面的k個元素刪除,只保留前面的。先說了一個暴力的方法,全部遍歷完后返回前面的n-k個。面試官不是特別滿意,想讓我在空間上加以優化,沒有想出來,很難受。其實后來覺得可能面試官只是想讓我用一個雙端隊列deque. 最后再做了一道題,給我一個BST和一個數n,找到這個BST中與n最接近的結點。說了遞歸的思路並加以實現,逐行解釋代碼,並說了將遞歸的代碼改成非遞歸的實現。
  剛回到會議室沒多久,就被一個和藹的大叔領去三面。看面相應該級別不低,但是人非常nice,如沐春風般的,語氣非常真誠且可愛。讓我用英語介紹實驗室項目,非常緊張,有些磕磕巴巴,他也還是笑眯眯地聽着,並一直安撫我讓我別着急。熱絡下來慢慢也就進入狀態了。他問我前面的面試官都讓我寫過什么題,說完他沉思了一下在黑板上嘩嘩寫了一個二維數組,我的天,這不就是二維數組中的查找,劍指offer第一題。故作沉吟跟他說完了那個從右上角開始查找的思路,以為應該十拿九穩了。但是沒想到大叔顯然並不十分滿意,於是一直交流引導,最后想到用二分的思想來解決這個問題。說完思路他表示很滿意,留我在房間里在白板上實現這個思路,他有事出去一趟。其實這份代碼只要有思路了寫起來並不難,算是寫得齊齊整整吧。大叔實力很強,回來后一行行對照着代碼看,很快又發現一個進一步優化的地方,佩服之余也立馬進行了優化。
  面試結束之后HR說我的面試通過了,問了下面試官評價,反饋都非常好。一周后,收到了offer確認信。
  Tips: 算法題是微軟乃至外企的大頭,同樣的刷題還是必須的。但是外企的面試風格更偏向於了解候選人解決問題的思路,衡量的標准是“我與你做同事我舒不舒服”,因此特別注重交流。因此在整個面試過程中時刻提醒自己不要慌,自己有思路,就要前前后后說明白;沒有思路,先說明自己對題目的理解,並給出自己的思考方向,實在不行就要提示。最后,因為是在白板上寫出代碼,因此平時寫代碼一定要保證很好的編程習慣。

摩根IT

一直有所耳聞摩根IT在浦東正裝面試,逼格高的不行,想要體驗一下資本主義的糖衣炮彈於是就投了簡歷。很快就過了簡歷篩選,之后不久就給了一個筆試鏈接,在3月18日前完成。筆試題目可以在C++和java中選一套題,題目非常的...emmm...很摳細節,而且全是不定項選擇題少選不得分。我都不知道自己是怎么通過筆試的...
  筆試不久收到了電面。全程英文,感覺題目都是快問快答,從C++、操作系統、網絡到數據庫,基本所有的都是考得最簡單的概念題,比如what's the difference between TCP & UDP? 基本都是快速作答,不過對有些問題比如smart pointer我也作了適當的引申。
  之后收到現場AC面的邀請,建議正裝。我是參加完蘇州的微軟面試后直奔上海,頭天晚上還特意跟前台借了熨斗2333.... 第二天到現場,這逼格,確實是比互聯網公司高一點...
  AC面需要先做30分鍾的筆試,題目純英文,類設計+兩道基於前面的設計的編程題。題目不難,很快就能寫完。之后會有面試官領人到具體的房間,每輪面試兩個面試官坐在一左一右Orz.... 一面的問題主要是回顧剛才筆試題中寫的代碼,詳細說明如此設計類的原因以及兩道算法題的核心。還簡要問了一些基礎知識。全程英文,但是不會很難,大不了就pardon.
  在面試房間等了一會,迎來了兩位大佬。先聊了一下人生,然后我嘴賤說了一句陳碩,然后兩位面試官哈哈地笑起來,說“He worked in my team...” 驚了...之后的面試題以你如何設計一個XX為切入點,以點帶面說了很多相關的知識,然后再加以實現。自己答得很不好,感覺思路不是很清晰,面完只覺得自己要掛...可是沒想到兩天之后還是發了offer...
  Tips:摩根的面試都是用英語,因此提前准備准備一些專業術語的英文還是十分重要的。可以在自己做的中文基礎知識總結上試着都用英語說一遍,然后把相關的專業術語對應的翻譯記下來。雖說都是英語,大膽說就完事了,大家彼此都是中國人,總能聽懂的。此外,筆試題中涉及到很多C++面向對象的知識,應該要重點加以復習。

Failed

總結了一下面試掛的公司,掛的原因主要有兩種,一種是對於某些知識還是不夠熟練,需要進行惡補或者強化;另外一種就是自己的技能棧與其崗位要求八字不合,聊不到一起去,對這些,以后敬而遠之即可。

阿里

阿里的實習生招聘開始得很早。從BBS找到一個阿里雲的師兄內推,是一個做數據庫的團隊。沒兩天就收到了電話面試,面試官對照着簡歷一條條開始問,每一條技能都有相關的問題,角度比較刁鑽且切中要害;幸虧針對簡歷進行了專門的復習,倒也還好。一周后打來電話說二面,這一次的問題的難度明顯加大,對於上次面試已經問過的基礎部分完全沒有提及,每一個問題都是切中要害,並且算是比較深。不過自己那個時候確實也大意了,很多本來應該能夠回答上來的問題沒有答上來,比如鎖的實現?信號的詳細實現?TCP狀態的切換?Time-Wait的作用?
雖然這次面試一面完就知道自己要掛,但還是很開心,幸虧這次面試讓我重新對很多的問題進行了更為系統化的梳理,后續面對其他公司的面試也就從容很多了。
后來又有一個電話打來說之前內推的流程沒有動靜,他那邊是計算平台的,能不能重新面試。那當然是說能,可是一面試依然懵逼,還是熟悉的阿里味道,對每一個問題都要一直追問,直到不會為止。然后還寫了兩道題,二叉樹非遞歸后序遍歷和循環隊列,我自認為都寫出來了,不過可能前面基礎知識所展現的深度還是不夠,那么結果自然也就是沒有下文了。
  教訓:阿里對基礎知識極為重視,因此對於后台開發而言的所有操作系統、TCP相關的內容一定要深入深入再深入。然后也需要學會自我展現,因為阿里的面試官最后問的問題到最后會很深,需要學會引申,然后以點帶面自己講出很多知識點,表現出自己的知識廣度。不過所有這一切的前提是,所有引申出來的部分,自己最起碼是可以說出個一二三的門道來的。加油,秋招再戰!

美團&卡中心

這兩個公司都是java后台開發,因此一聽到我的技能棧就表示沒什么興趣了,也確實聊不下去。面着面着就有一種沒話找話的感覺,大家互相尷尬。java完全不會,他們又更關注於業務,因此更側重於HTTP、現有的后端框架及其性能、數據庫等相關內容,但是抱歉,這一部分內容是我所沒有掌握的。
  教訓:不要投跟自己技能棧差別很大的崗位!

寫在最后

無論怎樣坎坷,實習算是找完啦,之后的好好學習好好總結,爭取在秋招有更好的結果。另外還有一些公司面試都沒撈着表示很氣, 百度、網易游戲、網易啥的....


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM