360面試-C++後端(實習)

牛客網發表於2018-04-19

線上遠端視訊面試

一面:

自我介紹。

知道哪幾種排序演算法,各演算法的時間複雜度。

解決hash衝突的幾種方式。

有哪些方法清除cache中舊的資料。不太清楚,我扯到了作業系統中缺頁中斷的頁面置換原理上,什麼FIFO、最近最少使用、加權重等等。

程式和執行緒的區別。

多程式和多執行緒的使用場景。多程式答了一個分散式系統,多執行緒沒答上來,後來問了才知道期望I/O密集型和CPU密集型這種答案。

死鎖,如何解決死鎖。解決死鎖忘了,我扯到執行緒同步上來。

瞭解哪些設計模式,裝飾器模式是什麼。

如何保證單例模式只有唯一例項,有哪些方法。

資料庫設計三大正規化。僅答了知道一、二、三正規化,詳細的沒答。

SQL優化,有哪些優化方法。僅答了查詢優化加索引。

OSI七層模型和TCP/IP四層模型,每層列舉2個協議。

TCP的三次握手和四次揮手。

C++中類成員的訪問許可權和繼承許可權問題。

C++中static關鍵字的作用。

智力題,足球隊問題。時間原因加沒啥思路,把能想到的都說了。

線上寫程式碼,題1快速排序,題2位運算相關的題。

提問。主要問了面試時篩選應聘者的標準。

面完後讓線上等,若15分鐘內沒接到二面通知,代表面試掛了。

二面:

自我介紹。

工作經歷的簡單介紹。沒細問,我以前在傳統軟體行業幹過一段時間,可能網際網路行業和傳統軟體行業的業務差別很大,面試官不怎麼在意。

線上寫程式碼,反轉連結串列。最好一邊寫,一邊和麵試官交流你怎麼想的。

丟擲一個與實際業務相關的問題,探討解決方案。感覺應該是360業務中的一個簡化版需求,要你回答如何實現。這種問題給不出標準答案,把能想到的都說出來,後來我倆變成了交流探討,我順著他的思路反問了幾個問題,他才發現不對,說這是我在面試,應該我來回答這些問題,根據回答層層深入,後來涉及到效率優化、資料庫分表、大資料排序、紅黑樹、map底層實現、ConcurrentMap等。這種問題看自己怎麼把握,如果面試官願意和你探討,儘量往自己熟悉的東西上引,如果面試官佔據主動,層層逼問,祈禱自己的技術積累足夠深厚吧。

提問。問了應聘崗位的工作職責,360後臺開發用到的技術棧,應聘的那個分散式系統的一些效能指標,請求併發量、平均響應時間等。

線上面試結束,等通知。

總結:

總耗時100min左右,一面基礎,二面能力吧,當然,兩輪面試中寫程式碼都是考察重點。基礎沒啥說的,多看多積累,主要幾塊就是資料庫、作業系統、網路和程式語言。至於二面,其實我覺得面試運氣很重要,很玄學,面試官人好,不刁難你,過的可能性就大點,當然也說不準,像前幾天面騰訊,聊得還可以,下來就掛了,哎,不斷充實自己,不變應萬變吧。

最後想和大家聊一下,一面的時候我問了面試官篩選應聘者的標準,他的回答是基礎+溝通+聰明+寫程式碼:

1)基礎,應該包括程式語言掌握度+作業系統+資料庫+網路,從上面的問題就能看出來,問題廣度很大,沒辦法,多積累。碰到答不上的,儘量往靠邊的扯,實在不知道的,就誠懇的回答現在思緒有點亂想不起來。

2)溝通,主要就是和麵試官的交流,有不清楚或是不懂的地方,一定要反覆追問面試官,儘量少沉默,也不要直接說不知道,更多的追問交流至少給面試官一種你在主動詢問、積極思考的印象。

3)聰明,一般考查智力題,我的理解就是思維敏捷度,這種問題很難在短時間給出答案,給出一個大概的思路或是你怎麼想的,不要說不知道,想到什麼都說出來,儘量回答。

4)寫程式碼,這個是重點,能不能過佔了很大比重,考查的東西很多,編碼風格、變數命名、功能完成度、錯誤處理等等,這個壓力真心大,線上寫程式碼,你每敲一個字母,面試官都看得清清楚楚,心態平和+多練多看。

據我估計,這4部分佔比:基礎35% + 溝通15% + 聰明10% + 寫程式碼40%,想拿offer,多寫程式碼多看書吧。


作者:道道道DAO

本文來源於牛客網

——————————

牛客網(www.nowcoder.com)

- 網際網路名企筆試真題

- 校招求職筆經&面經

- 程式設計師求職實習資訊

- 程式設計師學習交流社群

相關文章