【已oc】Momenta C++日常實習 1/2面面經(jīng)
紀念一下今年開局的兩面,就oc的經(jīng)歷吧。
可能沒啥參考價值。
總體流程
- 2022.6.22 投遞簡歷(實習s)
- 2022.6.23 hr第一次電話,詢問我的情況(能實習多久,啥時候到崗),沒有約面
- 2022.6.24 hr約面,一面約到周一(2022.6.27)下午3點;
- 最后因為一年沒面試,有點慫,覺得沒準備好,就推了一天(事實上真不需要,真沒想到面試這么簡單?。?
- 2022.6.28 15:00 一面
- 2022.6.29 15:00 hr打電話約二面,我問能不能約到周五,hr問周四不行嗎,周四是有啥事情(看起來是很著急要我的樣子)?我說那就周四吧,二面約到周四(2022.6.30)下午2點半
- 當時以為一面這么輕松,是不是二面開始放大招,就有點害怕,結(jié)果還是我想多了
- 2022.6.30 14:30 二面
- 2022.7.1 18:30 oc
一面(60min)
面試官態(tài)度還是不錯的,語氣很和藹,面試跟聊天一樣,但是不露臉啊
自我介紹
項目/八股(20min)
- 介紹下項目
- 我問介紹哪一個,面試官說就webserver吧
- 有限狀態(tài)機實現(xiàn)思路
- http在哪個模塊實現(xiàn)的?有調(diào)庫嗎?(然后翻了我github代碼,慌的一批,我以為只有騰訊面試官會這樣干)
- 沒有,是自己實現(xiàn)的
- 為什么要使用線程池/連接池
- 線程池怎么實現(xiàn)的,有用分配器嗎(這是個啥)?
- 沒有
- 請求隊列,多個線程搶
- 數(shù)據(jù)庫事務(wù)的四大特性?
- 老八股文了,背了一遍
- RPC的同步和異步調(diào)用的實現(xiàn)?
- 多線程模擬的異步調(diào)用
- 為什么使用protobuf?有什么好處?
- 線程間怎么通信?
- 互斥鎖、條件變量、信號量
- C++中
lock_guard
和普通的mutex
的區(qū)別?lock_guard
類似智能指針,自動加鎖解鎖
- (看了代碼之后問的)我看你一個顯式加了鎖,一個用了lock_guard。有什么特殊意圖嗎?
- 兩個項目實現(xiàn)的時間點了,當時做webserver只學習了POSIX的pthread api,所以直接封裝了類
- 當時還沒有學習C++的多線程
- 一個用makefile,一個用cmake,也是一步一步學習的嗎?
- 是的
- 什么時候開始學C++的?
- 大一開始,大四到研一深入學
算法題(20min)
平臺是showmebug,核心代碼模式
給了4個,關(guān)于dfs/bfs的,寫了這兩個:
- 找到到達目標點的所需的步數(shù)(bfs/層序遍歷)
- 找到到達目標點的所需的序列(dfs/回溯)
差不多是說思路,寫偽代碼,沒讓跑,面試官看了差不多就行
聊天/反問(20min)
- 面試官介紹公司情況,部門工作等內(nèi)容,還問了實習時長等內(nèi)容
- 用了什么技術(shù)棧
- 怎么培養(yǎng)實習生
總結(jié)
問題較常規(guī),只要項目是自己做的就能回答
今年的第一次練習,其實面完之后覺得穩(wěn)過了,但是存在的問題是:
反問環(huán)節(jié),感覺沒表現(xiàn)出太強烈的意愿,這是要改的,無論是否感興趣/想去
二面(30min)
面試官態(tài)度仍然不錯,答不上來的問題也覺得沒關(guān)系,但是也不露臉
不過想不到的是沒有自我介紹,很爽啊
自我介紹(無)
直接對著簡歷問了,沒讓自我介紹,不自我介紹真的輕松很多
并且說已經(jīng)看了我的github(再次慌的一批)
項目/八股(10min)
- 是計算機專業(yè)的啊,從什么時候開始學C++的?
- 又問了一遍
- 介紹RPC的概念,為什么要用RPC,RPC實現(xiàn)的關(guān)鍵點
- RPC常見八股文
- 關(guān)于為什么要用RPC,扯了一下軟件架構(gòu)的演進
- 居然說我說的很流暢
- 為什么要做RPC這樣的項目?
- 公司都在用,想了解原理
- 實驗室的研究方向?
- 為什么使用protobuf?有什么好處?
- 又問了一遍,感覺是個常問的問題了
- 看你提到了多線程。那問你一個問題。線程a加了互斥鎖,讀寫了同一個變量;線程b不加鎖,也訪問同一個變量,會訪問成功嗎?
- 這個問題引人深思啊,從來沒思考過這個問題,脫口而出就是不會訪問成功
- 經(jīng)提示后想到,可能不在同一段代碼(臨界區(qū))中被訪問,就說了可能會
- 得下來看看互斥鎖的原理了,麻了
- 看你說熟悉常見數(shù)據(jù)結(jié)構(gòu)和算法(這不是簡歷標配嗎),平時刷過LeetCode嗎?
- 害怕,還以為要問我hard題
- 我就說,平時有刷過,不過不同知識點掌握程度不同
- 不知道這個問題,應該回答刷過,還是沒刷過好呢?總之有點尷尬
算法題(10min)
平臺是showmebug,核心代碼模式
二分查找(查找第一個小于等于x的數(shù)),套模板吧
后來讓我描述思路,描述二分查找的使用場景
聊天/反問(10min)
- 一般會讓剛來的實習生做什么工作
- 想去傳統(tǒng)互聯(lián)網(wǎng)公司,還是專注做自動駕駛
- 這個問題見仁見智,如果真的想去,或者以后真的想專注于做自動駕駛,回答后者比較好
總結(jié)
同樣大部分都是常規(guī)問題,不過這次暴露了一些問題:
- 對于算法的思考度不夠,知道模板怎么寫,但是沒完全講透徹(比如說這個模板為什么要+1(向上取整是因為避免
left
和right
相鄰時,無限循環(huán)了),我直接略過了)。即使是再平常不過的二分查找,也是這樣。之后得復習一下常見算法的思路描述,復雜度分析 - 對于多線程的某些問題,思考不夠細致,也就是說一旦項目被深挖,人就沒了
- 后悔沒在反問環(huán)節(jié)問剛剛那道多線程問題的答案
后記
沒想到這面試這么輕松就過了,并且是今年的第一次面試(沒準給我放水了,所以說沒啥參考價值),之前一直覺得自己口齒不清,表達不暢,經(jīng)??诔?。
其實這兩次面試,總體來說,我覺得我的表達還算流暢,關(guān)鍵點幾乎沒有卡殼(可能也是因為面試官語氣比較和藹,不會給人帶來緊張感?并且oc的時候也說對我的表現(xiàn)表示很滿意)。而且面試跟聊天一樣(沒有坐牢的感覺),如果能進面,也不要求你有自動駕駛/高精度地圖相關(guān)的經(jīng)歷。也很感謝第一次有公司對我的表達能力表示認可。
想了很久,真的很遺憾,最終還是沒接offer,在其他公司0 offer的情況下沒給自己留后路,原因如下:
- 因為其他公司還沒面試,但是給我決定的時間太少了,入職時間節(jié)點卡的也有點緊了(感覺部門應該挺缺人哈哈,嘗試拖延入職時間,等我面了其他公司,給我多點養(yǎng)魚時間也失敗了);
- 且對工作內(nèi)容興趣不大,我這個人的特點是做任何事情都必須有強烈的興趣驅(qū)動才行,如果興趣不大可能進去了也很痛苦,而且這還是第一次面,看看有沒有更好/更適合我的機會吧。(我準備的方向偏web后端,但是崗位是關(guān)于高精度地圖生成的,我會考慮入局自動駕駛,但是不確定今后是否all in自動駕駛;之前投的另一個崗更感興趣些,也看到了這個崗,就是看jd興趣不大就沒投,看我C++技術(shù)棧,給我調(diào)到了這個)
- 如果以后真的想all in自動駕駛,其實這個機會還是很寶貴的