面試時究竟在問些什麼 (完)
想當初還在學校的時候,參加面試,往往表現緊張,事前會背常見問題的面經,反覆想自我介紹怎麼說,卻摸不上頭腦一些問題到底想聽到什麼答案。
現如今也算是做了 3 年多的面試官,初入職場已經是14年初時候的事了,後來到了騰訊,再以後的面試幾乎都是從未做過準備,臨場發揮了,卻幾乎沒有失敗過(或許能把幾乎去掉)。
現在再經歷面試,卻全都是坐在了面試官的角度,面對面前又或是電話那頭的面試者反覆提問,但往往遇到的面試者卻鮮有能表現得好的。偶爾有一些我覺得潛力不錯,再三給機會的,卻依然沒能 GET 到點上。
寫下這篇,也是希望大家去參加面試的時候,或者準備面試時,知道對方究竟在問什麼,希望聽到什麼,自己又該說什麼。
自我介紹
會邀請做自我介紹,往往是為了這麼幾點
- 緩解一下開始的冷場
- 沒有仔細看過你的簡歷,讓面試者一邊介紹自己,一邊也方便自己再看一遍簡歷
- 簡歷上沒有看到足夠的亮點,希望自我介紹能展示更多的東西
那麼其實在這裡,需要的就是能比較清晰地講明白自己是誰,最近幾年的工作經驗,工作內容。作為開場,之後的問題環節也會從這裡切入。
問題環節
問問題的時候,通常有這麼幾塊
- 計算機基礎
- 崗位技術基礎
- 簡歷中提到的各種工作內容相關問題
- 進階性的一些問題,比如優化和重構,比較高階的崗位,那麼會上升到方法論,架構
- 自己的學習進步方式
計算機基礎
其實不外乎 “作業系統”,“演算法”,“資料結構”,“計算機網路” 這種 CS 專業的大學課程,具體的問題像是:
- 多程序
- 多執行緒
- TCP / UDP 區別
- HTTP2 / HTTP 區別
- 新協議的瞭解比如 QUIC
- 一些基本資料結構的實現比如 HashMap、LinkedList 的實現方式
- 常見演算法的實現比如快排、最大堆等
考驗的是個人在計算機上的素養,實際如果在日常工作中有自己的思考,業務上有一定深度,其實都是會有涉及的。
針對技術問題,通常用的提問套路就是逐漸深入,比如多執行緒問題,那我會從執行緒排程開始,聊到執行緒的記憶體區域,常見的執行緒記憶體閃退場景,應用內的執行緒管理方法,常見的執行緒池型別,進階一點到實踐的,會問到優化中什麼時候用多執行緒,什麼時候不用多執行緒,以及實際因為使用多執行緒導致效能下降的場景,又或是因為多執行緒導致的死鎖例子。
崗位技術基礎
也就是面試的崗位實際使用的技術的基礎。比如面試 Android 客戶端崗位,那可能會問:
-
Android 中如何儲存資料
- 有哪幾種方式?
- SP 的實現原理和效能問題。
- 如果想實現跨應用之間的資料操作,怎麼實現
- 如果需要跨程序讀寫呢?
-
廣播有哪些型別?
- 本地廣播的實現原理
- EventBus 類的廣播的實現
- 描述下 Looper, Handler, HandlerThread
- 什麼是ANR,如何避免?
- 記憶體洩漏通常是怎麼發生的?講講自己碰到過的記憶體洩漏和如何解決。
- Android 效能調優的幾種手段?
- Android 應用下的類 ClassLoader 是哪個?什麼時候初始化?
- 開源專案的瞭解以及原始碼、原理認識?尤其是在自己實踐中用到過的開源庫,比如 LeakCanary 是如何檢測記憶體洩漏的?
- Android 中什麼情況下 app 會需要用到多程序?多程序模式下開發需要注意的點?程序間怎麼實現隔離的?
比如前端崗位,那可能會問:
- CSS 彈層居中的方案
- 對於 viewport 的理解程度,1px 實現的幾種方法,對於移動端瀏覽器H5網頁寬度生成機制的瞭解(如果有實際踩到一些時機的坑會更好)
- 箭頭函式和匿名函式的區別
- currentTarget 和 target的區別
- 怎麼優化頁面滾動時候的效能,是否瞭解 Chrome 對頁面滾動的行為有過什麼改進
- JS 實現模組的方式
其中每個問題也會做逐漸深入的討論,如果你覺得問題都答上來了,卻沒有通過面試,不妨想一想自己真的回答到了點上了嗎?往往一些答歪了的,會讓對方喪失進一步討論的興趣。
工作內容
簡歷上的工作內容可以說是最重要的一部分了,可以快速幫助面試官瞭解你的過往經歷和與職位的匹配程度,以及做針對性的提問。
這裡不妨看一下你的簡歷中,工作內容是否能描述清楚你的工作亮點或突破性的業務貢獻,而不只是一些對能力的描述。另外,如果寫了什麼,那務必要確定自己瞭解清楚,而不要一問就被問倒了,或者只是知道一些皮毛,畢竟面試官是有耐性的,只會挑選一些內容來問,每一個點務必要確定自己真的做過,對內部原理深刻理解。
學習方式
如果前面的環節,讓面試官覺得你雖然能力和崗位期望的有一些偏差,但是還是有一點潛力的,那這裡可能會問一下你日常工作外的學習方式,來考察你的主動性。所以大家平時如果工作外還有閒暇時間,不放想想除了工作上交給你的內容,自己還有什麼進步空間,無論是深度還是廣度上。
你有什麼問題
面對這個問題,一方面是給面試者一個機會來對自己對面試崗位提出疑問,另一方面,更重要的則是表現自己對崗位的興趣,其中可能會考察是否對公司業務有足夠了解,以及對這個崗位有多感興趣。而如果直接回答說沒什麼問題,那直接體現出來的就是是否根本不知道自己面試的是什麼職位,究竟想不想入職。
對這個 section,大家其實在面試前,仔細瞭解清楚崗位內容就可以了,自然會有自己對崗位的疑問,另外也可以試想如果自己可以拿到 offer,那對自己是否入職,有什麼需要考慮的,不妨也在這裡提出。