前言
經(jīng)過六月到九月這幾個月的努力菱涤,九風(fēng)有幸拿到了趨勢科技、小米洛勉、美團(tuán)粘秆、網(wǎng)易互娛的offer,之前看了好多分享的面經(jīng)收毫,是時候該回饋了一波攻走。
先介紹下九風(fēng)的基本情況:在導(dǎo)師的創(chuàng)業(yè)公司待過一年多(沒有課就去公司),做過C++圖像處理此再、java后臺開發(fā)昔搂、移動web開發(fā),由于自己比較水输拇,學(xué)的東西都不深摘符,在7月初離開公司后就猛補(bǔ)基礎(chǔ)知識點。
艱辛經(jīng)歷
九風(fēng)在校招七月初就開始投簡歷策吠,沒有統(tǒng)計過投過多少家逛裤,基本把牛客網(wǎng)上的可以投的公司全部投了一遍猴抹,投了簡歷的至少有60家公司带族;筆試也不知道做了多少了,至少有25家的筆試蟀给,最后收到的面試情況:
- 招銀網(wǎng)絡(luò)科技:電話一面掛蝙砌;
- 金山WPS:電話一面過阳堕,電話二面掛;
- CVTE:現(xiàn)場技術(shù)一面掛择克;
- 美團(tuán)點評:現(xiàn)場技術(shù)一恬总、二三面、hr面拿到offer祠饺;
- 網(wǎng)易互娛:現(xiàn)場技術(shù)一面越驻、二面拿到offer;
- 趨勢科技:現(xiàn)場技術(shù)一面道偷、二面拿到offer缀旁;
- 小米:現(xiàn)場霸面技術(shù)一面、二面拿到offer勺鸦;
- 騰訊:現(xiàn)場一面掛并巍;
- 深信服:和騰訊面試沖突放棄;
其他公司:百度换途、頭條懊渡、京東等這些公司掛在筆試上了,360军拟、搜狐剃执、搜狗、美麗聯(lián)合等直接掛在簡歷上了懈息;
對現(xiàn)在的offer情況比較滿意肾档,準(zhǔn)備結(jié)束秋招;先感謝給我offer的面試官辫继,找工作真的是很看運(yùn)氣的怒见,碰到好的面試官會一步一步引導(dǎo)你,碰到風(fēng)格不搭的面試官那就有點難受了姑宽;然后感謝一起找工作的小伙伴們遣耍,一起學(xué)習(xí)一起進(jìn)步,多交流面試經(jīng)驗炮车,少走了很多坑舵变;也謝謝很多牛友分享的面經(jīng);
準(zhǔn)備校招的還是蠻辛苦的示血,九風(fēng)7月份開始基本都是7:30起來刷編程題刷到8:30吃早點去實驗室準(zhǔn)備其他知識點棋傍,中午午休前半小時刷編程題,晚上回去洗澡后刷編程題到12:30左右睡覺难审,沒辦法瘫拣,基礎(chǔ)不行只能靠努力來補(bǔ);由于智商還是不夠用告喊,最后也只把鹏镏簦客上的leetCode題刷完了而已派昧,看了幾遍劍指offer,這兩個都是神一般的存在拢切,算法題就靠這兩個蒂萎。
九風(fēng)想對小伙伴們說:
心態(tài)很重要:九風(fēng)的offer可以說都在9.22號這天拿的,在這天之前淮椰,我也是一個offer也沒有五慈,也比較難受,看著一起的小伙伴面試主穗、拿offer泻拦,我在9.22之前就在9.18號現(xiàn)場面了CVTE一家(招銀科技、WPS是電話面的)忽媒,還一面掛了俏扩,當(dāng)時也是很難受压状,但是還是要繼續(xù)學(xué)習(xí)赤拒,畢竟榔至,機(jī)會是給有準(zhǔn)備的人,如果offer還沒來闹瞧,那么要么就是適合你的offer還在后面绑雄,要么就是還需要繼續(xù)學(xué)習(xí)。擺正心態(tài)奥邮,厚積薄發(fā)绳慎!
多交流:九風(fēng)的實驗在8月底就組織了一系列活動,基本每天晚上有個小伙伴來分享漠烧,而分享的內(nèi)容沒有限制,面試經(jīng)驗靡砌、操作系統(tǒng)已脓、hr面如何回答、網(wǎng)絡(luò)知識通殃、排序算法度液、實習(xí)經(jīng)歷、大數(shù)問題解決方法画舌、如何講項目等等堕担,只要和面試有點相關(guān)的都可以,大家一起討論曲聂,互補(bǔ)知識點霹购,聽者從面試角度來提問,講者回答朋腋,討論知識點會從哪些角度來問等等齐疙;
補(bǔ)上盲點:這一點起始是對修改簡歷的建議膜楷,九風(fēng)初始版本的簡歷的技能就是寫自己會哪些就寫哪些,發(fā)現(xiàn)基本都在掛在簡歷上贞奋;之后看到上一屆師兄們的簡歷赌厅,就專業(yè)技能方面就比我多好多項,至少看上去高大上一些轿塔;然后九風(fēng)就去騰訊招聘C++開發(fā)工程師的要求直接粘貼到簡歷上特愿,適當(dāng)修改后感覺簡歷瞬間高大上了--------好多知識點都不懂,然后根據(jù)簡歷上寫的狂補(bǔ)勾缭。只要你補(bǔ)上了之后那就不虛了揍障,因為實在不懂的你可以寫個了解,如果有時間的話就深入學(xué)習(xí)漫拭。
面經(jīng)
- 金山WPS 時間九月初亚兄,具體時間忘了,
電話一面: 過了
- 如何檢測內(nèi)存泄漏
- 講講智能指針
- C++容器有哪些
- list 和 vector有什么區(qū)別
- 講講大端小端采驻,如何檢測
- public 和 private 關(guān)鍵字审胚,在繼承中有什么區(qū)別
- 設(shè)計一個內(nèi)存分配類---參考STL中空間配置器
- 現(xiàn)有一個程序需要申請的地址是要求起始地址必須是16的倍數(shù),如何設(shè)計----將申請大小上調(diào)至16的倍數(shù)礼旅,那么最多會浪費(fèi)15byte空間膳叨,真正存儲從16byte倍數(shù)上開始利用。
電話二面: 9.12號痘系, 掛了菲嘴。 不過這個要吐槽下,約的2.30汰翠, 等到下午5點才打電話過來龄坪,等得心累;
- TCP三次握手
- http狀態(tài)碼复唤,403是什么
- http 與 https的區(qū)別
- 智能指針健田,shared_ptr 內(nèi)部實現(xiàn)
- IPC通信有哪些
- 多線程的死鎖,死鎖避免(講了銀行家算法額思想)
- Vistual Studio 怎么調(diào)試佛纫,如何設(shè)置條件斷點
- JVM 內(nèi)存回收
- 招銀科技 9.15號
電話一面: 掛了
- tcp妓局、udp的區(qū)別
- spring 依賴注入
- 面向?qū)ο蟮奶卣鳎v講多態(tài)呈宇,什么是多態(tài)好爬?
- 進(jìn)程與線程的區(qū)別
- 什么是信號量,信號量與信號的區(qū)別
- 依賴注入
- 怎么創(chuàng)建索引
- 知道哪些設(shè)計模式甥啄,工廠方法與抽象方法的區(qū)別
- 怎么統(tǒng)計char二進(jìn)制中1的個數(shù)
- sizeof 與 strlen的區(qū)別
- CVTE 9.18號
現(xiàn)場一面: 掛了
- 挑一個最拿手的項目講
- 面向?qū)ο蟮幕咎卣鳎悍庋b存炮、繼承、多態(tài);
- 析構(gòu)函數(shù)能不能用virtual
- 引用與指針的區(qū)別
- 引用必須初始化僵蛛,先在要設(shè)計在一個類中如何初始化引用:
class A{
int &a;
}
如何給a初始化尚蝌? - static、const充尉、virtual結(jié)合使用情況飘言,以下幾種可以么:
static void fun(){};
static void fun() const {};
static virtual void fun() const {};
static virtual void fun() {};
以上四種函數(shù)可以這樣定義嚒驼侠? 為什么姿鸿?
- 美團(tuán) 9.20號
現(xiàn)場一面: 過了
- 進(jìn)程與線程的區(qū)別
- 數(shù)據(jù)庫索引為什么用B+樹而不用B-樹
- spring mvc 的處理流程
- 訪問一個網(wǎng)頁的具體過程
- 手寫單例模式
- 手寫數(shù)組合并
- java線程安全了解么
- hashmap、hasptable倒源、concurrenthashmap的區(qū)別苛预,concurrenthashmap如何實現(xiàn)高并發(fā)?
- 知道哪些NoSQL笋熬,講下redis热某,redis的實現(xiàn)原理,redis怎么實現(xiàn)高并發(fā)胳螟?
- C++如何處理異常昔馋,異常向上拋出拋到最上層是什么情況?
- get糖耸、post的區(qū)別秘遏,什么是冪等性,put和post的區(qū)別嘉竟。
現(xiàn)場二面: 過了
- tcp三次握手邦危,第三次握手的時候如果直接發(fā)送數(shù)據(jù)會怎樣。
- 一個http請求的具體過程以及具體的協(xié)議舍扰,越詳細(xì)越好倦蚪,dns的查詢過程
- 設(shè)計一個訂單,同時有多個騎手搶訂單該如何設(shè)計边苹,有多個服務(wù)器處理請求要怎么處理审丘?
- select、epoll的區(qū)別勾给,什么時候用select,什么時候用epoll
- 講項目
- 網(wǎng)易互娛 9.21號面試锅知,22號晚上出結(jié)果播急; 到了現(xiàn)場先寫一個算法,不難售睹。
現(xiàn)場一面:
- 講下快排
- 手寫插入排序
- 進(jìn)程與線程的區(qū)別桩警,如何創(chuàng)建多線程、如何創(chuàng)建多進(jìn)程昌妹。
- IPC通信捶枢,會問你自己實際使用過不
- socket編程過程
- vector實現(xiàn)原理
- 如何實現(xiàn)vector 在擴(kuò)容的時候不進(jìn)行新的空間申請握截,即不想有擴(kuò)容操作,該如何設(shè)計烂叔? --- 從operator new和placement new方面來講谨胞。
- 如何將一個序列均等分為兩部分,使得這兩部分之和盡量小-----沒做出來蒜鸡,比較尷尬胯努。
現(xiàn)場二面: 過了
- 全程講項目
- 最后出了個題:在王者榮耀中(干嘛不說陰陽師中呢)如何統(tǒng)計全服中所有玩家阿軻這個英雄的勝場排名?
呀呀逢防,到了神奇的9.22這天了
神奇的9.22號
- 9:00 美團(tuán)三面:
- 全程問項目
- 9:50 美團(tuán)hr面:
- 把一個項目用通俗易懂的語言講懂給她聽
- 如何處理同事關(guān)系
- 一個人不會在公司待一輩子叶沛,你會出去創(chuàng)業(yè)嚒忘朝?---堅決咬定不會灰署,美團(tuán)特別好,留在公司做貢獻(xiàn)
- 為什么來美團(tuán)局嘁?美團(tuán)的價值觀是啥
- 你選擇offer的最重要的兩個因素
24號發(fā)消息說進(jìn)入錄用池了溉箕,28號打電話詢問手里offer情況,然后定薪資导狡, 30號打電話說薪資情況约巷,要決定是否接offer,我說考慮一天旱捧,31號打電話回去把offer拒了独郎,機(jī)會留給小伙伴們,小伙伴們加油枚赡。
10:50才發(fā)現(xiàn)趨勢科技也是上午面試(以為下午面試)氓癌,趕緊跑過去面試現(xiàn)場。
- 12:00 趨勢科技 (忘記記錄贫橙,憑記憶寫咯)
現(xiàn)場一面:
- 根據(jù)簡歷上寫的項目贪婉、技能來問你是熟悉還是了解,你只是自己用過而已嚶唷疲迂?你不是自己從底層設(shè)計的哦,那就不用說了D妗S容铩!幅垮!
- 講下項目腰池,給我項目中的問題看我怎么解決。
這個一面的面試體驗比較不爽,不問里面的具體技術(shù)示弓,只問是不是只是用過讳侨,也不讓講深入一些的知識點,感覺你要是自己設(shè)計出來一個類似的東西或者深入研究過源碼才行或者修改源碼才行一樣奏属,給我的感覺不爽跨跨,不過還是感謝讓我過了。
12:50 現(xiàn)場二面
- 講項目
- 寫一個字符串拷貝函數(shù)拍皮,你這個會出現(xiàn)異常嚧醵!?怎么改進(jìn)铆帽?
- 簡單英語口語交流
13:30 hr簽offer
當(dāng)時就問了要不要違約金咆耿,然后就簽了,當(dāng)時到手的第一個offer爹橱,其他都還沒信萨螺,心里老高興了,準(zhǔn)備好久愧驱,終于有個offer慰技,差點就蹦起來了!
2:30 吃完飯后看到小伙伴有去小米霸面的组砚,我也湊個熱鬧就去了...吻商,第一次去霸面百度,百度沒鳥我糟红,覺得霸面應(yīng)該沒機(jī)會艾帐,不過小米還是支持霸面的,面試體驗不錯盆偿,贊一個(小米面試的酒店要刷卡才能進(jìn)某一樓層柒爸,我上它們面試的上一層樓上,想從消防電梯走事扭,結(jié)果進(jìn)了消防電梯到了面試樓層發(fā)現(xiàn)要刷卡才能出消防樓層....捎稚,然后尷尬的打電話給小米hr姐姐來解救我們。求橄。今野。。 當(dāng)時好尷尬)罐农。
- 6:30 小米腥泥,到了先從三道題中選一道題做,
現(xiàn)場一面:
- 先寫個堆排熱熱身吧?心洹!! 有點忘了溯乒,然后自己畫圖夹厌,根據(jù)自己的圖來寫過程,面試官看了兩次都說不急裆悄,你慢慢寫矛纹,我哪敢慢慢寫,趕緊寫完就給面試官了光稼,有些錯誤或南,不過總體思路是對的。
- 統(tǒng)計逆序?qū)€數(shù)艾君,我記得劍指offer上利用歸并的思想將原序列分成前后兩個序列采够,分別統(tǒng)計兩個序列中的逆序?qū)€數(shù),再統(tǒng)計兩個序列中的逆序?qū)€數(shù)冰垄,然后再合并繼續(xù)的思路蹬癌;我把思想說了之后面試官就讓我手寫代碼,寫好之后他看下了應(yīng)該是對的虹茶。
- 還手?jǐn)]了一個算法逝薪,不太記得,不過沒上面兩個難蝴罪,面的不好董济,全程手?jǐn)]代碼,不過讓我過了要门,真是開心虏肾。
中間在等二面的時候跟hr姐姐聊天,漫長的等待中暂衡。询微。。
現(xiàn)場二面:
- 二面面試官看了下我寫的堆排狂巢,然后讓我講了下STL中的空間配置器撑毛,問了為什么自由鏈表中的是8byte的倍數(shù)?
- 問了那個剛開始那道題: 如何在一個隊列中記錄當(dāng)前隊列的最大值唧领,這個跟那個棧的最小值有點相識藻雌,不過這個難一些,我用那個棧的思想說下我的解決思路斩个,然后面試說你確定嚳韬肌?我說我看下受啥,然后自己發(fā)現(xiàn)了問題做个,就把自己發(fā)現(xiàn)的問題跟面試官講了下鸽心,然后講了我那個解決方法的思想就是那個棧的最小值演變而來的;之后面試官提示我pop居暖、push顽频、getmax這三個方法都是O(n*lg(n))的時間復(fù)雜度,我說用堆囂搿糯景?他說堆插入的時間復(fù)雜度比較長,我思考了下說做不出來省骂。
- 最后問了那個逆序?qū)€數(shù)的時間復(fù)雜度蟀淮,讓我手推公式,我也沒推出來钞澳,然后面試官在我面前手推了一把怠惶,然后就結(jié)束了。略贮。甚疟。。逃延。览妖。。
二面面完后出去跟小米hr姐姐說我掛了揽祥,然后hr姐姐說我過了讽膏,呀呀,說了謝謝就去按電梯下去了拄丰,按電梯的時候接到網(wǎng)易互娛的通知說過了府树, 當(dāng)時就蹦起來了。下了樓之后一看時間已經(jīng)是晚上8:30了料按,辛苦了這么久終于有點小成果了奄侠。
- 騰訊 9.24
現(xiàn)場一面:掛了
- 自我介紹,然后面試官說來個自我介紹载矿,說他就問點基礎(chǔ)B⒊薄!闷盔!
- 寫個二分查找--這個倒是很基礎(chǔ)
- 現(xiàn)在多個活動弯洗,有多個開始和結(jié)束時間,計算出其中某個時間有最多活動的個數(shù)逢勾, 當(dāng)時腦袋發(fā)熱牡整,這個沒想出來,我記得是做過的溺拱。
- 知道一致性hash囂颖础谣辞? 設(shè)計一個一致性hash。 我講了點概念沐扳,說要用到虛擬節(jié)點潦闲,這樣可以負(fù)載均衡(自己給自己挖坑)
- 講下負(fù)載均衡吧----懵了,講了同學(xué)的cdn當(dāng)時的負(fù)載均衡項目迫皱,有點懵逼。
- 講下epoll的內(nèi)核實現(xiàn)吧----紅黑樹辖众、就緒隊列
- 講下linux的內(nèi)存管理吧卓起。 我:有點忘了,不太清楚您是要問哪方面凹炸,是虛擬地址空間還是進(jìn)程調(diào)度方面的戏阅,能提示下嚒啤它? 面試官:不行奕筐。 我:一丟丟就行了。 面試官:我們換個問題吧变骡。
- 講講數(shù)據(jù)引擎吧离赫, 我:有inodb,還有一個另一個忘了叫啥了塌碌,inodb是用的B+樹做索引渊胸,另一個好像用的B-樹(這里記錯了,也是用的B+樹做索引)台妆, (我心里想翎猛,你問我B+樹、B-樹吧的區(qū)別吧接剩,以及為什么要用B+樹之類的切厘,然而并沒有問)
- 面試時間差不多,你有什么要問的懊缺, 我問了問常問的問題(心里:怎么不問B+疫稿、B-樹的區(qū)別)。
晚上回來一查妥妥掛了桐汤,好氣哦而克,說好的問基礎(chǔ),C++基礎(chǔ)知識一個沒有怔毛,感覺應(yīng)該那個活動的編程題做出來了會好很多员萍,當(dāng)時腦細(xì)胞轉(zhuǎn)不動,實在想不出來拣度,還是自己掌握的不行碎绎,繼續(xù)前進(jìn)螃壤。
騰訊掛了之后,我就結(jié)束秋招了筋帖。 還在路上的小伙伴們加油奸晴,機(jī)會總是給有準(zhǔn)備的人的,如果機(jī)會還沒到你日麸,要么就是真正的機(jī)會還留在后面寄啼,要么就是你還沒準(zhǔn)備好!
總結(jié)
九風(fēng)也是學(xué)渣代箭,成績排名靠后墩划,基礎(chǔ)不牢靠,都是靠這幾個月狂補(bǔ)知識點積累的嗡综,之前面的招銀科技乙帮、WPS、CVTE問的問題都不難极景,但都還是掛了察净,都是因為基礎(chǔ)不行,補(bǔ)補(bǔ)就好了盼樟。
對于面試:當(dāng)你面了5次以上的面試之后就會發(fā)現(xiàn)氢卡,其實問來問去就那么幾個問題,所以把常問的問題搞懂搞深恤批,尤其是要搞深异吻,要是你也回答的比較常見的回答,那公司為什么要你而不要別人? 所以對于某個問題一定需搞的深喜庞,比如問select 與 epoll的區(qū)別诀浪,別人回答文件描述符限制,需要不需要輪詢這些大家都能記住的答案延都,那公司怎么決定就要你呢雷猪?其實就是比別人深那么一點,查查資料看看epoll的內(nèi)核具體如何實現(xiàn)的晰房、ET求摇、LT模式具體實現(xiàn)的區(qū)別,這就是公司要你的原因殊者!
對于知識點:這里推薦一篇學(xué)院大佬的文章与境,估計很多小伙伴都看過:http://www.reibang.com/p/a6ad23aee955 ,這里基本囊括大部分常問的知識點了猖吴,不過沒有C++的摔刁,下面是C++中常問的知識點:
C++基礎(chǔ)知識點:
- 面向?qū)ο蟮奶匦裕?/li>
- 多態(tài): 重載、虛函數(shù)海蔽, override共屈、overload绑谣;
- 繼承中的private、public拗引; class 與 struct的區(qū)別借宵;
- 內(nèi)聯(lián)函數(shù)與虛函數(shù);
- 指針和引用矾削;
- static 和 const壤玫;
- 智能指針;
- 宏和const 哼凯、 inline垦细;
- 構(gòu)造函數(shù)、析構(gòu)函數(shù)挡逼、虛函數(shù)、拷貝構(gòu)造腻豌、賦值操作符家坎;
- new與malloc;
- 進(jìn)程地址空間內(nèi)存分配吝梅;
- strcopy虱疏、memcpy、memmove苏携;
- 內(nèi)存對齊做瞪;
- 類型轉(zhuǎn)換;
- 單例模式:
- sizeof 與 strlen的區(qū)別右冻;
- 深拷貝装蓬、淺拷貝;
- 靜態(tài)鏈接纱扭、動態(tài)鏈接的區(qū)別牍帚;
C++ 進(jìn)階知識點
- STL 空間配置,具體實現(xiàn)過程乳蛾,如果內(nèi)存自由鏈表中沒有空間會怎么處理暗赶,如果內(nèi)存池中沒有空間會怎么處理,如果heap中沒有空間會怎么處理肃叶,為什么自由鏈表中的倍數(shù)是8byte蹂随,而不是其他。
- vector 的實現(xiàn)因惭,如何實現(xiàn)不發(fā)生拷貝到新空間就只在當(dāng)前空間擴(kuò)容(new operator岳锁、operator new、placement new)筛欢,vector的內(nèi)存時如何分配的(空間配置器)
- set浸锨、map的底層實現(xiàn)唇聘,紅黑樹的概念,紅黑樹的插入(刪除太復(fù)雜了柱搜,能把插入搞清楚就可以了迟郎,很少問到這一層次了)
最后的最后,祝小伙伴們都拿到滿意的offer聪蘸!