美團點評2017校招研發offer面經,2017屆的校招早早就結束了,抽出時間做個記錄。
職位:後台開發工程師
崗位職責:
如果你熱愛編程,這裡給你平台用代碼改變世界;
如果你樂於挑戰,這裡有用戶和商家五花八門的需求和苛刻的系統運行環境在等待著你;
在這裡,你可以參與後端模塊、數據平台、基礎服務和雲計算功能的開發工作;
在這裡,你還將參與需求定義,確定設計方案並負責最終實現;
你需要對代碼質量負責,確保代碼正確無誤,高效工作,無QA,你的代碼你做主!
工作要求:
1. 一句話,會寫代碼。你可以是本科及以上計算機相關專業的科班出身,也可以是自學成才的技術達人;
2. 至少學習並實踐過一門以上的開發語言(比如:JAVA、C、C++、Python、Ruby等);
3. 讀過Thinking in Java,Effective Java等Java名著;
4. 熟悉基礎數據結構,如鏈表,二叉樹等;
5. 對新技術有強烈的求知精神,能深入代碼研究,能通過英文論文等第一手資料了解業界新技術;
6. 優秀的邏輯思維能力,善於從復雜系統表象中分析問題,對解決復雜問題充滿激情。
第一面:業務技術面
算法,數據結構
1、熱身題:手寫個二分查找,因為一直用的主要語言是Java,也閱讀過 Java 的二分查找 API 源碼,就按照這個寫的
2、動態規劃的算法題:機器人尋路問題
3、簡歷裡也提到使用過Python,包括實習工作中的某項目也是Python寫的,就讓用Python寫了個字符串逆序
學習、工作經歷
主要是在校開設課程的詢問,論文的情況,然後就是實習的過程,對工作裡的項目進行描述,需求,參與,計劃,核心功能,業務等,讓畫出流程圖,設計的架構
設計題
1、開放性設計問題,比如問到了高可用的系統設計思路,負載均衡,線程池,緩存設計等,如接觸過Netty,Redis,Memcached的話,再如果研究過它們的原理和源碼,那麼一些關於緩存,數據存取,高性能服務器的問題就會有思路。
2、讓實現一個HashMap,時間有限,沒讓全寫,就寫了一個put方法
語言
因為主要語言是 Java,問到了 NIO(結合項目裡的Netty),GC機制和算法
計算機網絡
1、TCP 三次連接,四次揮手以及寫出報文序列 + 畫狀態圖(這裡問的很細致,連接中途斷開,選擇重傳,流量控制,丟失報文等場景)
2、如何讓UDP實現可靠傳輸
3、網絡 I/O 模型等等
數據庫
就讓寫了 SQL 語句,面試官提出問題,涉及到多表連接,索引使用,數據的計算和查詢
第二面:技術面復試
學習、工作經歷
主要也是按照簡歷上項目經歷來問,只要寫到的關鍵字,都會問到,因為實習過,問了很多實習的經歷,包括個人感想,什麼體驗,什麼收獲等
操作系統
1、為什麼要有線程
2、進程和線程區別
3、進程間的通信機制
3、Linux常用命令,需要手寫出來
語言
1、問了Java的一些特性,比如HashMap和HashTable的區別,主要講實現上的區別
2、ConcurrentHashMap的原理
設計模式
1、手寫單例模式(線程安全+懶加載,還有使用枚舉實現的)
2、結合責任鏈模式和工廠模式,還有反射機制,談了談MVC模式的攔截器設計
計算機網絡
1、還是問到了TCP握手
2、Http的請求響應報文格式,一些常見狀態碼,請求報文裡的一些k-v參數的意義
3、長連接和短連接
4、cookie和session
算法、數據結構
寫了一個 O(1) 時間的最大值的棧的pop,push等操作
第三面:綜合技術面
部門主管的綜合面,感覺是壓力面,因為問的很深,問的非常廣,類似HR面+技術面的綜合
概率和數理統計
1、具體題目忘了,一個概率+邏輯推理的題目
2、接著是一個網頁打開的響應速度概論曲線,讓畫出來分析
操作系統
問了一些底層的東西,比如什麼是DMA,磁盤 I/O 的原理,CPU的cache,緩存算法等等,非常廣,非常雜……問到不會為止,看深度和廣度
計算機網絡
1、打開一個URL,網絡層面發生了什麼,需要盡可能的說詳細,說到位(期間會打分,然後會打斷,每說到一個點(如果哪個點沒說,會反問為什麼沒有說),或者每到一個步驟就打斷,問問題,考察深度
2、附加的問了SEO的東西,比如301重定向怎麼做的,權重,如何推廣你的網站
算法和數據結構
主要結合網絡的那個題目,考了下字典樹及其應用
綜合素質
1、做個即興演講:題目意思大概是“你的求學,實習工作之路中,令你激動,或者高興,且收獲最大的一件事,可以是技術攻關,學習成果,社團活動等等”。
2、詢問了有沒有參加過社團活動,學生期間有沒有當過班干部,你是怎麼做活動和參與活動的,你認為演講的要素是什麼,如何設計一個演講比賽
3、問學習成績,英語什麼等級,閱讀能力怎麼樣?看過什麼書?為什麼考研,如何學習,如何看待工作的難題,實習如何看待工作壓力……很多,很雜。面試之中壓力比較大……
HR面
1、家鄉是哪裡的,學校的情況,能不能提前實習
2、對我們公司怎麼看,給你offer你會來麼
3、手裡有沒有其他公司的offer,分別的待遇
4、談了待遇和定級
最後人品爆發,拿到了Python後端研發的sp。