【轉自牛客網】C++類職位校招


作者:./a.out
鏈接:https://www.nowcoder.com/discuss/14022
來源:牛客網

話說在牛客網上混跡了半年,也沒啥拿的出手的貢獻。現在基本上自己的校招生涯要告一段落,就把自己的經驗總結拿出來分享下吧。 原文記錄在個人的博客http://foocoder.github.io

歡迎來訪~

校招准備之知識儲備

講到校招的知識儲備,當然不同崗位是需求不不一樣的,個人偏C++后台方向( 話說自己除了這個啥都不會 ),所以有相同方向的可以參考一下。

一般而言,面試的方向無非就是語言基礎,操作系統,網絡,數據庫,數據結構及算法。 額外還有邏輯推理智力題相關的等等。

在語言基礎上,看的書有:《C++Primer》,《C程序設計語言》,《C語言參考手冊》(參考用),《深度探索C++對象模型》,《C++標准庫》(參考用),《Effective C++》以及 《STL源碼剖析》(參考用)。 忽的發現這一總結,自己看過的書還不少。當然這些書並不是完完整整全部看完的,畢竟一本《C++標准庫》1000多頁給我半年也不一定看完。 基本上是相互參考着看的,反正都是關於C/C++的,肯定不少重復的地方,可以相互對照着理解。

網絡方向的書主要就三本:《TCP/IP 協議族》,《TCP/IP 詳解 卷一》 以及 本科時網絡的教材《計算機網絡》謝希仁版的。 雖說一般國內的教材都是比較爛的,完全可以扔掉的。但這本謝希仁的網絡總體來說還是不錯的。 另外就是《TCP/IP 詳解》雖然經典,但里邊好多協議顯然是過時了,一開始看的時候積累了好多疑惑。 最后還是決定以《TCP/IP 協議族》這本為主來復習網絡方向。

操作系統則是《現代操作系統》以這本經典的教材為主了,當然也入手了聖經級的AUPE以及UNP,不過這套比較偏重編程,概念性的還是要靠《現代操作系統》。 另外還有一本CASPP,把它放到操作系統下似乎有些不大合適,但這本書卻是讓人受益匪淺。不愧為價值比同等質量的金子更加值錢的書。

數據結構以及算法則是一些大公司的一大殺器,像一些國際巨頭更是以這個為主。 然而這一塊的准備並非一朝一夕之功,自己的水平只能處於臨陣磨槍級別。 這里主要看了《算法第四版》,彌補了一些基礎的數據結構以及經典的算法。 另外也買了牛客上左神的《直通BAT面試算法精講課》視頻。令人激動是面試時卻是遇到不少原題,物超所值。這里強行植入一波廣告,課程專屬優惠購課鏈接:http://www.nowcoder.com/courses/1?coupon=AhIXhIx 之后把左神的那本《程序員面試代碼指南》也入手了。雖說校招已經結束了,但莫名的發現自己對刷題也有點興趣,留着無聊的時候刷題用。 自己也入手過網上一些其他大神出的刷題書籍,但終歸是左神的這本更加良心一點。 最后再推薦一本左神最熱衷的《程序員面試金典》( 看清楚不是寶典那本 ),國外的一本神書,竟然在上邊遇到好多面試的智力題,相見恨晚。

至於數據庫由於時間關系沒怎么看了,而且個人感覺數據庫光靠看書的話是遠遠不夠的的,沒有相關的優化經驗以及項目經驗基本上意味着 數據庫這塊處於盲區。

校招面試經驗

這里總結一下校招的面經,畢竟面過那么多家,參加過幾十場面試,而且每場面試都詳記在冊。 從春招實習到秋招內推一直到最后校招,幾乎每場面試完都會把面試問題記錄下來,當然不乏一些遺漏的問題以及遺漏的面試。 這里總體來梳理一下。

阿里巴巴(2面) 失敗

作為一個計算機出身的,肯定夢想着國內的BAT這三大巨頭。 而對於綜合考慮地點環境,以及薪資待遇,A廠的條件算是Top了。地點杭州,待遇又屬上等。 最可惜的是,A廠是Java出身,C++想進A廠的話難度恐怕較大了。

首先是實習內推。但是還是在實驗室跑實驗,突然接到一個杭州支付寶的電話,意識到難道這就是傳說中的點面? 然后就在毫無准備的前提下進行了人生的第一場面試。 ( 一開始電話里說我們來簡單聊聊,我還天真以為談天說地呢,誰知道聊聊就是面試啊 )

阿里實習生內推電面:

  • 自我介紹
  • 講一個拿得出手的項目
  • C/C++ 與Java的區別
  • 你說C/C++較Java有性能優勢,為什么?
  • 從N個無序數中尋找Top-k個最小數( 經典海量數據 )?
  • Hashmap 的底層實現
  • Array與List的區別
  • 進程與線程的區別
  • 網絡的七層協議
  • TCP與UDP的區別
  • TCP的三次握手與四次揮手
  • 進程間調度算法
  • 數據庫索引的實現方式
  • Inner Join, Left Join 以及Right Join的區別
  • 有什么問題

由於當時處於裸面階段,這些問題基本上沒回答上多少,雖然現在看來很基礎了。 當時中途還跟面試官抱怨這些概念性的東西看了就知道,不看就不知道,沒什么用。 現在才體會到自己當時還是圖樣圖森破。 基礎都不好,怎么指望你成神? 不過好一點的是面試官人很Nice,並不會因為你啥都不會吐槽你鄙視你,而是一點點挖掘你的能力和潛力, 基本上是去尋找你的閃光點,這樣讓我並沒有感到太多的緊張。 雖然第一場面試以失敗告終,但由於面試官的Nice,反而給自己積累了不少的信心。

接下來阿里內推沒過系統自動進入了實習生的校招流程,然后參加筆試,收到到南京現場面的通知。

阿里實習生校招現場面:

  • 自我介紹
  • 關於科研項目
  • 關於文件服務器的項目
  • 項目中有沒有用到數據庫?對數據庫了解多少?
  • 談一談數據庫的3個范式
  • 有沒有用到其他的開源數據庫
  • C++面向對象的三個特性
  • 面向對象設計的基本原則
  • C++多態的實現方式
  • 虛函數表是一個類一個還是一個對象一個?如果繼承,子類與父類的虛函數表有何區別?虛函數表中可不可以存放非虛函數?
  • 有沒有用過typeid檢查運行時類型?
  • 模板中非類型參數與類型參數有什么區別?
  • STL中有那些容器?vector與deque有什么區別?
  • 什么是智能指針?寫一個模板的智能指針
  • Linux下/etc/下有那些配置文件,有什么作用?resolve.conf是用來做什么的。
  • 如果修改Linux下網卡配置在哪修改?有沒有用過iptable?
  • Linux有5個運行級別,你知道么?( Ps這里是面試官下的坑,實際有7個運行級別 )
  • 內核態與用戶態的區別?從用戶態切換到內核態有哪幾種方式?
  • 數據結構有沒有了解?
  • 圖有幾種存儲方式?鄰接矩陣與鄰接表存儲結構的優缺點?什么時候用什么結構?
  • 排序算法哪些是穩定排序?歸並排序常用於哪里?
  • 手寫斐波那契數列?
  • 為什么不用遞歸?遞歸有什么不好?那為什么不用inline來寫遞歸呢?如何來避免遞歸?
  • 有什么問題

阿里現場面的時候是在一個大廳,一個面試官一個小桌,每個人被叫到號后就去對應的面試官那里。 當時發現Java面試的大概有二三十個,然而C++只有四五個面試官。 而且面試官年紀比較大,很有經驗,自己所謂的包裝的各種高大上的項目被他一層一層剝開,一種被透視到內心深處的感覺。 雖然這次面試比第一次要好一些,回答上來百分之六七十,但最后還是掛了。 阿里C++要求還是較大的。

就這樣,阿里的實習生內推跟校招都是一面掛掉。 本想經過一番准備,再去向阿里重新發起挑戰。 后來7、8月非秋招內推則連面試機會都沒給。后來問了阿里的學長,據說是簡歷的評估跟春招的面試成績掛鈎的。 當時心涼了半截。春招阿里兩次掛在一面上,因此秋招也就沒有任何機會了。 只能說與阿里無緣吧。

騰訊(6面) 失敗

騰訊的流程跟阿里類似,也是參加了春招的實習招聘以及秋招。

話說實習生內推的時候明明收到騰訊的內推短信,卻沒收到完善簡歷的鏈接,所以內推的機會給錯過了。 之后參加實習生春招的筆試,然后騰訊來合肥現場面試。

騰訊實習生招聘現場一面:

  • 自我介紹
  • 項目里到的主要語言
  • 項目中用到了Python,Python起的作用是什么
  • 是否理解hadoop等大數據平台
  • 項目的代碼量在多少
  • C++指針與引用的區別?經常使用指針還是引用?
  • const在成員函數的位置,作用,如何保證成員變量的const?
  • C++虛析構函數的作用,如果析構函數不是析構函數有什么后果?
  • C++虛基類是什么?純虛函數可不可以有實現?什么情況下會對純虛函數進行實現?
  • C++中如何實現接口,接口與多繼承的優劣
  • 如何幫一個不懂電腦的女生找出電腦的問題(只能通過電話聯系)
  • 項目中用到網絡通信的地方
  • TCP如何保證可靠傳輸
  • TCP的流量控制
  • IP分組傳輸以及重傳等
  • 假設項目中TCP客戶端申請一個文件的讀事件,而服務端找不到該文件,卻返回一個成功信號,這種情況有沒有可能?
  • 項目里如何設計訪問量過大,如何提升?
  • 微信中附近的人的功能,其位置信息該如何存儲?
  • 操作系統頁面管理是怎樣的?頁面大小一般多少?過大或過小會怎樣?
  • 進程請求資源死鎖,如何在編程上防止死鎖?
  • 手寫singleton。如何避免多線程同步問題?
  • 實現一個singleton的基類,令其派生類都是singleton?( 利用template )
  • STL中容器的迭代器在什么情況下會失效?

騰訊這次現場面是自己的第一次現場面試,要比阿里的現場面還要早。 面試官看起來比較宅的那種,所以也比較嚴肅。 整場面試回答上來百分之七八十,當時面試官都沒說你有什么問題要問,感覺自己要跪。 但當天晚上通過微信查狀態發現已編程復試中,有些意外。 不過二面時面試官沒有到合肥,所以二面是電面的。

騰訊實習生招聘電面二面:

  • 自我介紹
  • C++虛函數的實現機制
  • 如果基類的析構函數是非虛函數,會有什么后果
  • gdb調試core文件的參數是什么
  • 有沒有網絡通信相關的項目
  • hash表中為了防止沖突過多常用素數,為什么?
  • stl中allocator adapter
  • vector中內存擴充方式怎樣?為什么每次都有2被擴充?( 算法導論中平攤分析 )
  • vector與list的區別
  • static的作用
  • 兩個文件,一個是class A,一個是class B,如果A跟B相互引用,如何include?
  • 有什么問題

據說二面的面試官是以后工作的boss,那二面面試官應該是SNG的騰訊雲部門的,人也很好,面試感覺回答上來百分之九十左右。 果然,晚上面試狀態就變了HR面了。

HR面還是現場面。但騰訊的HR面不涉及任何技術,就沒有記錄。只是從 HR那里得知了自己的部門是騰訊雲。

本以為HR面都面過了,基本上沒什么問題了吧。但后來卻收到了要加面的消息,好吧,加面就加面吧。

騰訊實習生招聘電面四面:

  • 自我介紹
  • 網絡字節序與主機字節序的區別?為何要有這樣的區別?
  • 內存對齊,為什么要內存對齊
  • 1G的內存可以裝入2G的程序么?怎么裝?
  • 常見的頁面置換算法?
  • 用瀏覽器打開網頁發生的全部事件?第二次打開這個網頁呢?
  • 循環與遞歸的區別
  • 二叉樹給出前序,中序求后序
  • 牆上有一個插孔,提供無線的4孔插板,有28盞燈,至少需要多少插孔?280燈呢?
  • 一個處理機時間分辨率是1s,單執行流,每秒系統運行一次run函數,現要求設計一個提供定時任務的函數addfunc( Xs, func),可以設置在X時間運行函數func。提供系統API是gettime()來獲取當前時間。

這次面試不是太好,后來就沒有然后了。 雖說自己實習即便是過了也不能去,但畢竟拒offer跟被offer拒的感覺還是不一樣的。 而且這次是實習階段離offer最近的一次。所謂看到希望的失望最是讓人絕望。

通過春招發現自己的不足吧。也體驗了一遍大廠的面試流程。 總體來說還是自己能力欠缺,尤其是項目經驗方向。 於是自己又花時間改了改補了補項目。 也花時間調整了下簡歷。

之后騰訊秋招內推,卻發現成了TST專場了。雖然找人內推了,卻一直沒有消息。 之后又是繼續通過筆試來參加校招了。

騰訊秋招現場一面:

  • 用5分鍾來介紹一個項目,你在項目中的職責以及獲得的成績
  • 做題,面試官給了個小本,上邊好多題目。int i; (!!i);是什么含義。
  • 做題。關於unsigned int 與int相加截斷問題
  • 做題。int a = (((int * )0)+4);
  • 做題。關於printf的緩沖區問題
  • C中引用跟指針的區別
  • Linux下如何檢測內存泄露?如何檢測程序crash?
  • gdb調試設斷點?如何查看系統堆棧?
  • 如何實現多態?
  • 進程通信的方式有哪幾種?那種的效率會更好?為什么?
  • Linux下swap區作用?
  • 給4個瓶子11種粉末,只有一種溶解呈現藍色,溶解需要兩分鍾。問多久能測出藍色粉末?
  • 寫代碼不用第三個變量交換兩個變量值
  • 字符串匹配,O(n+m)
  • 給一個單鏈表如何判斷有環?
  • 8個抽屜有一份文件,其中8個抽屜都沒文件的概率是20%,現打開一個抽屜發現沒有文件,求剩下7個抽屜會有文件的概率。

一面面試官人很好,面試完后直接就說面試通過了。之間還興致勃勃的聊了個人愛好什么的,因為是早上第一個面試的么,畢竟心情還是比較不錯的。

因為騰訊秋招的進度跟百度差不多,所以一直擔心的一件事發生了,騰訊的二面跟百度三面沖突了。一個是早上八點,一個是早上九點。 顯然騰訊的面完肯定趕不到百度那去。 於是面試當天7點就趕到騰訊面試現場,想跟HR申請調整下面試時間。 不過HR沒遇到,倒是碰到一個面試官。跟他講明情況后( 當然是以其他理由說明的,但看他的眼神感覺一直不相信我 ),面試官說他來給我面,就面半小時,給我留出時間。

騰訊秋招現場二面:

  • 做題。內存對齊,為什么要內存對其?
  • 1G物理內存,malloc申請2G空間,可以么?為什么?
  • 瀏覽器打開一個網頁,說明一下這其中發生了什么事?
  • TCP與UDP區別?
  • HTTP 為什么要用TCP而不用UDP?
  • HTTP 報頭以及狀態碼。
  • 如果客戶端keep-alive,服務端不支持keep-alive,連接是從客戶端斷開還是從服務端斷開?為什么?
  • 一個處理機時間分辨率是1s,單執行流,每秒系統運行一次run函數,現要求設計一個提供定時任務的函數addfunc( Xs, func),可以設置在X時間運行函數func。提供系統API是gettime()來獲取當前時間。
  • fun(){ int a; a=6; } 與fun(){ int a=5; a=6; }二者在二進制代碼上有什么區別?若變量是static的呢?
  • 一個函數rand可以等概論生成無符號整數,假定M的值是這樣定義的,若rand產生的序列中只有一個r0=r1,則M=2;若有r0=r1=r2,則M=3;以此類推,求M的期望。

整體面試自我感覺還行,基本沒什么卡殼的,但最后還是掛在的二面上,只能跟騰訊說拜拜了。 魚與熊掌不可兼得吧。

百度(7面) 已拿Offer

百度是實習的時候並沒有投簡歷,而是在內推的時候投過一些簡歷。 內推時總共經歷過兩個部門的4次面試。

首先Web Data的知識圖譜。

百度知識圖譜內推電面一面:

  • 自我介紹
  • 考慮一個Int64的整型。若計算一個數的各位數上的平方和,通過不斷迭代最終得到1,則稱這個數為有趣的數。現給定一個數,判斷該數是否為有趣的數?若判斷一個數組的數呢?
  • TCP與UDP的區別
  • 項目中文件服務器如何支持斷點續傳?
  • 用什么數據結構保存cookie
  • hashmap支持並發,如何上鎖來保證鎖粒度最小。
  • 堆與棧的區別
  • 析構函數為虛函數的作用。
  • 普通類的析構函數對異常有什么要求?
  • 有什么問題?

百度知識圖譜內推電面二面:

  • 自我介紹
  • 項目中如何用Python來處理數據?
  • 有一個文件,有不同的屬性列,如何將ID相同的Item整合到一起?
  • Python如果考慮多處理機。
  • 簡單介紹文件服務器的項目
  • TCP 流量控制
  • 如何在main函數調用前處理一些事情
  • main函數前會有什么操作
  • 考慮如何設計一個高並發量高吞吐量的服務器?如果是分布式的怎么設計?
  • 撲克牌均分3堆,求大小王在同一堆的概率。
  • 介紹自己科研項目
  • 服務器中端口復用
  • 程序中出bug,從哪些方面考慮找bug

百度知識圖譜內推電面三面:

  • 前兩面感覺如何?
  • 項目如何用PY處理數據,是怎么處理的?
  • 項目中規模如何?有沒有多人合作的項目?
  • 多人合作項目中個人職責是什么?工作量有多少?
  • 有沒有一些學一些新技術應用到實踐中?
  • Traceroute如果路由動態改變了,會出現問題,如何克服該問題?
  • 有沒有算法角度的新技能?
  • 有沒有失敗的項目?為什么會失敗?考慮下失敗的原因。
  • 如果重新做失敗的項目,會從哪方面考慮
  • 項目中遇到哪些困難?如何解決?
  • 你有什么問題?

總體來講,百度的面試難度是較高的,畢竟是三面技術面。第三面經理面偏技術與HR面結合的感覺。三面的時候感覺壓力很大。 之后發現掛在了三面上。問了下面試官,說自己達到校招的水平,但提前批還是差點火候。 看來提前批應該是sp的概率會大些吧。

接下來接到百度運維部門的電面:

百度運維電面一面:

  • 聊項目
  • C/C++static作用;static函數與非static函數區別
  • 宏定義與const的區別?宏定義可以完全用const替換么?宏定義如何調試?
  • 對設計模式有多少了解?
  • 一個有n行的文件,隨機選m行?如何選?
  • Linux查看文件的磁盤空間,監控進程cpu,內存使用率
  • ping的底層協議?ICMP處於7層的哪一層?
  • socket位於哪一層?socket編程的過程?
  • 內核分幾個部分?
  • OS同步與互斥的區別?
  • 數據庫中事物的原則
  • 你所知道的最快的排序算法?
  • 若在數據庫底層進行排序,該如何設計排序算法?

這場面試是面試最久的一次,歷時將近100分鍾,只因為卡在了概率題上,面試官給了好幾次機會,說這題你說上來就給你過,然而最終還是沒答上來。 事后發現的確是很簡單的一道題。只能惋惜了。

接着參加百度的筆試,之后是合肥本地的現場面試。

百度秋招現場一面:

  • 手寫vector刪除元素,需要注意迭代器失效情況。
  • 手寫兩個類,要體現構造,析構,拷貝構造,賦值,虛函數,重載函數等特點。
  • 析構函數為什么為虛函數?
  • new跟malloc的區別?
  • free是如何識別free區域的
  • Linux的找到目錄中cpp文件?如何找文件中一變量?
  • Linux檢測內存泄露?
  • 了解哪些開源項目?redis,mysql有多少了解?
  • n級台階問題
  • 手寫代碼,有序數組查找某個元素出現的次數
  • 一致性哈希

百度秋招現場二面:

  • 自我介紹
  • 如何判斷一個圖是否有環
  • 講一個你覺得很完美的代碼或開源項目
  • traceroute有什么優勢?
  • 介紹一個比較完整的項目,畫出流程圖
  • STL中vector內存分配?如何從原內存拷貝的新內存?會調用構造函數么?
  • 軟件工程?
  • 如何看待C++面向對象?與c有何區別?
  • 面向對象設計原則?里氏替換是指什么?
  • 多態是如何實現的?畫一下虛指針與虛函數表,如果多繼承,虛函數表怎么畫?虛指針是對象成員變量么?在什么時候初始化?
  • 講一下TCP中擁塞控制
  • 你還有什么問題

二面面試官人很Nice,過去的時候還給我倒了一杯水,很客氣,也很友善,看起來年級也不大。

百度秋招現場三面:

  • 自我介紹
  • 析構函數為什么要虛函數?
  • C++中強制類型轉換?Dynamic_cast的作用
  • 多態是如何實現的?
  • C++中構造函數發生異常會怎樣?
  • C++中構造函數中this指針暴露了會有什么后果?
  • 針對簡歷詳細詢問每個項目的細節
  • 介紹自己的部門( 企業安全方向 )
  • 你還有什么問題

三面也是技術面,而且面試官就是之后的boss,做的是企業安全方向,雖不是百度的核心部門大搜,但這一方向還是很有前景的。 當時面完就感覺基本差不多了。 后來在十一前收到了面試通過的信息,整個秋招算是比較圓滿了吧。

華為 SP 已拿Offer

華為則是參加2016的軟件精英挑戰賽獲了賽區二等獎,之后參加的合肥地區的軟件精英挑戰賽專場的面試,當天面完就跟我說通過了。 但正式offer也是十一前才下來的,算下來,華為這offer基本是面的最早,下來的最晚了。

深信服-星雲計划 失敗

深信服的星雲計划據說待遇也很高。

  • 聊項目
  • 對於N個點的網絡,求任意兩點的最短路徑的復雜的
  • C語言局部變量與全局變量
  • 對於大的數組,如何使用局部變量?
  • 不同文件中如何引用外部變量?
  • 遞歸時棧溢出怎么辦?任何遞歸都可以用非遞歸實現么?
  • 存儲通訊錄信息:姓名,手機,郵箱,簡介,如何能實現快速查詢以及部分查詢?
  • Linux編程中的鎖有哪些?
  • 自旋鎖與互斥鎖區別
  • 進程IPC方式
  • socket與共享內存用於什么情況?
  • 衛星網絡中網絡帶寬足夠,但丟包率高,導致網頁打不開,通信質量差,什么原因?如何解決?
  • Dijkstra單源最短路徑

深信服這場也跪在了算法上,面試官說只要你回答上這個問題就給你過,但還是沒想起來Dijkstra的具體內容。 無奈。

CVTE提前批 失敗

  • 自我介紹
  • C++多態實現
  • 虛函數表的位置
  • C++中new跟malloc的區別
  • 堆與棧的區別
  • Python三種內置數據類型
  • shell后台運行
  • STL中容器
  • vector的內存釋放
  • shell中調用腳本是通過線程還是進程

CVTE面試還是比較簡單的,然而還是掛了,主要是因為項目經驗缺乏的問題。 面試官對科研項目不感興趣,自己包裝的服務器又是爛大街,最后評價說基礎很好但項目經驗不足。

金山WPS 失敗

  • 自我介紹
  • 項目
  • C++中虛函數的作用
  • 那些函數不能是虛函數
  • 析構函數可不可以為虛函數,為什么
  • const 引用,為什么用const引用
  • 指針與引用的區別
  • static 的用法,每種用法的作用域以及生存周期
  • 模板類聲明跟定義放在兩個不同文件中可以么?為什么?
  • 快排的思路
  • 查找的復雜度
  • STL中list跟map的不同應用場景
  • 紅黑樹查找、刪除、增加的復雜度,為什么?
  • 介紹一個項目,遇到的困難,如何解決?

評價:基礎很好,項目經驗不足。然后果不其然又給掛了。

多益網絡-內推 已拿Offer

多益總共一輪筆試,一輪視頻面試。

  • 自我介紹
  • 介紹項目
  • 如果有比主管更好的Idea,你會怎么辦?
  • 怎么看待加班
  • vector如何擴容
  • 怎么理解線程安全
  • 如果有一個很難重現的bug,如何處理(可能運行好多次都難以重現)
  • 設計一個爬蟲爬網頁的話是DFS好還是BFS好,或者有沒有更好的策略
  • 關於一些網盤中,服務商如何提高服務器存儲利用率
  • 數字簽名中偽造問題
  • 地圖軟件中實時路況的實現策略
  • 有什么想問的。

科大訊飛-大數據研究院 已拿Offer

因為地處合肥,所以訊飛對我們學校的學生還是比較認可的。 整個面試過程也比較隨意,總共就經歷了一面面試,包含了技術+HR的因素。 但沒有記錄,所以面試內容也就不記得了。

遠景能源-提前批 放棄

  • C++如何申請釋放內存?與malloc/free的區別
  • 實現一個strlen,不用循環怎么做?
  • C++面向對象的作用,特點
  • 若析構函數不聲明為虛函數,會有什么后果?為什么?
  • fork 一個新進程與建立一個線程的區別。
  • gdb 調試查看棧的命令

遠景的提前批很早,八月就面試了,一直沒消息,一開始以為是跪了。后來九月收到現場面試的通知,才知道八月的面試是過了。 后來因為一些事而沒參加后續面試,自己主動放棄了。

知乎 崗位不匹

  • 自我介紹
  • 有沒有用過Python的Adapter 適配器
  • 對Java有多少了解
  • C++中多繼承與Java單繼承的優缺點。Java如何體現多繼承
  • 線程與進程區別與聯系?為什么進程切換代價比線程高
  • 有沒有聽過協程
  • TCP的建立連接與釋放過程?為什么最后需要2個MSL時間關閉
  • 數據庫了解么?事物的四個原則?索引是如何事項的。
  • 知乎話題之間子話題跟父話題之間的數據結構存儲你是怎樣?如何判斷新加入的節點是否有環?
  • HashMap怎么實現?如何解決沖突?hashmap是如何擴容的?
  • 怎么理解面向對象?有什么優點?
  • 用過拿些web框架?
  • 了解哪些攻擊手段?

知乎總體來說崗位偏Python跟Java,面試官也是這方向的,於是最后撲街了。

滴滴出行 崗位不匹

滴滴投簡歷時投了個系統工程師,一開始不知道是做什么方向。 后來面試的時候才發現完全不是研發。 面試偏運維方向,問好多分布式,虛擬化,Docker等問題,真個是大眼瞪小眼了。 面試這么多,從來沒有這么尷尬的時刻,什么都不會,后來還是我打破的尷尬的局面,跟面試官說抱歉投錯崗位了。

后來收到滴滴現場面試的通知,不知道什么鬼,難道是給調崗位了?然而自己卻忘記去了。。。

塗鴉移動 已拿Offer

塗鴉移動筆試是發給你兩道編程題,一天內寫完后再發給HR就OK,都比較基礎。

塗鴉一面現場面:

  • 自我介紹
  • 多態
  • 手寫螺旋矩陣打印
  • 象棋中馬走日從A點到B點的最短路徑走法

塗鴉二面電面:

  • 自我介紹
  • 做過什么開源項目
  • git
  • 長為N的數組,元素范圍是0-N-1,其中只有一個數是重復的,找出這個重復元素
  • 矩陣從左上角向右下角走,每次只能向右或者向下移動,求經過最大的路徑
  • 數n可以由完全平方數構成,求最小的完全平方數構成數。
  • 對算法有多少了解?算法導論看多沒?
  • 堆排序
  • 兩個棧實現一個隊列
之后,幾個星期后HR加QQ說技術面通過了,然后問你有多少offer,待遇多少,實話實說了之后,就沒然后了。 周圍有同學收到的塗鴉的Offer,但待遇很低,所以猜測是被HR給掛了。

-------------------------------------(分割線)

(更新一下,塗鴉移動剛收到offer,不過待遇較低)

網宿科技 待定

網宿科技也是內推時投的簡歷,但面試的時間較晚,在九月中旬左右。先是一面HR面。之后是一面技術面。

網宿科技技術面電面:

  • Linux環境變量的配置
  • Linux定時任務
  • 設計一個QQ群,如何存儲群里的發送消息?
  • 兩個很大的文件,去匹配相同的數據行
  • Linux的重定向
  • 如果有很多很大的對象,如何用容器存儲?
  • gdb 如何調試
  • STL中vector, list, map的區別
  • 有什么問題。

網宿面完后一直沒消息,開始以為是跪了,前兩天收到消息說要成績單照片,所以現在也不清楚具體是怎樣。

招銀 一面

招銀的筆試比較簡單,編程題是完形填空。

招銀電面一面:

  • 介紹一個項目
  • 項目遇到什么困難
  • C++用過什么容器
  • STL中如何計算迭代器距離
  • C中static的用法
  • TCP,UDP的區別
  • 你有什么優缺點

面試大概二十分鍾左右,面試官人很好,一開始我在外邊,給我調整了兩次時間。最后官評價說挺滿意的,說兩周左右有反饋。 后來收到完善簡歷的消息,貌似是十月下旬會有現場面試。

金蝶 失敗

差點把金蝶忘記了。金蝶是一輪筆試加一輪視頻面試。 值得吐槽的是,金蝶的面試總共不到10分鍾,除了一個問題“你對運維有多少了解”之后,一半的時間是面試官在講金蝶很牛逼,一半的時間是我在問問題。 后來就沒有后來了。 着實讓人無語。

總結

總結下,BAT這種大廠的面試還是很享受的,整個面試過程面試官是在不斷挖掘你的閃光點,即使一開始你並不知道問題的最優解,但他也會一步步引導你,拓展你的思路。 而且大廠並不要求你有多豐富的項目經驗,而是看你能挖掘出多大潛力,因為這些大廠還是很願意培養人才的。而對於其他的一些小公司,看中的可能更是項目經驗和 實習經歷了。畢竟這些公司資金有限,他們所需要的人希望一出來就能接手項目來產生價值的,而且這些公司員工流動較大,花大價錢培養出人了沒兩天就跳走了,不如 直接就招聘項目經驗豐富的能直接上手的人才。

另歸納下常考的知識點:

C/C++方向:

  • 指針與引用的區別
  • const 關鍵字與static關鍵字
  • malloc 與 new區別
  • 堆與棧區別
  • 多態,虛指針,虛函數表。
  • 析構函數為什么是虛函數。
  • STL中容器

網絡方向:

  • TCP UDP區別
  • TCP三次握手四次揮手
  • TCP流量控制擁塞控制

操作系統方向:

  • 進程調度算法
  • 進程線程區別
  • 進程IPC方式
  • 進程同步與互斥
  • 頁面調度算法

數據結構與算法方向:

  • 排序算法
  • 查找算法
  • 字符串,矩陣算法
  • 哈希表
  • 堆結構
  • 海量數據處理
  • 這塊可以參考牛客網左神視頻

最后再強行植入一波廣告,課程專屬優惠購課鏈接:http://www.nowcoder.com/courses/1?coupon=AhIXhIx

反正我是覺得很值,而且通過優惠碼也賺了不少~~

最后祝願大家都能找到心儀的Offer

【轉自】https://www.nowcoder.com/discuss/14022


免責聲明!

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



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