我可能是在同齡人中做面試官經驗比較豐富的,在某乎實習的時候就參與了Java的技術面試。後來在阿裡以及另一家公司也面試過不少候選人,校招、社招、外包都有面試過。這裡以一個面試官的角度來給大家談談在面試的時候怎麼能給面試官留下更好的印象,更容易拿到大廠的Offer。為了不造成任何面試題洩露,這裡我不會涉及到任何具體的面試題。
1、社招和校招的面試重點
社招其實和校招的面試重點有一些差別,以Java為例,社招更看重對Java技術體系的深入了解,以及解決問題的能力。比如對JVM、分布式、TCP/IP協定這些個關鍵字等方面問題。為了避免洩題嫌疑這裡就不舉具體例子,具體大家可以自行搜尋一下。
社招的通常履歷中會有很多項目經曆,面試官也會挑一兩個項目問的比較深入,是以寫在履歷上的項目一定要自己有比較深的了解,不然面試的時候深入問一下答不上來就會非常不好。
相對的,校招更看重的其實是基本功和學習能力(或者說是潛力)。Java知識更多會考一些基礎,架構的原理方面不會問的很深,資料結構和算法、網絡協定等會問的比較多,如果有靠譜的項目/比賽經曆也會是考察重點。
還有比較敏感的學曆問題,坦白說,如果一個HR/面試官要從成百上千的履歷中初步篩選,是沒有精力一個個認真看的,學曆作為一個重要名額這個時候非常值得參考。而實際情況也是高學曆的候選人大部分時候會明顯強于低學曆的候選人,即使一些人的履歷看起來非常華麗。
關于社招今天剛好有此機會,經過半年多的時間我整理一份架構圖譜,主要是針對2-5年左右的Java開發程式員提升的,不管是傳統行業還是網際網路行業,掌握這些技術都能對自己有一個質的飛躍。

2、大廠的面試流程
一般阿裡騰訊這樣的大公司,校招面試的流程是一輪統一筆試+三輪技術面試+一輪HR面試,如果對候選人的水準有争議,技術面試有可能會增加一輪,以2019年春招(實習生招聘)為例:
- 統一的筆試。
- 技術初面,一般這一輪都是由你将來同一個團隊的比較資深的同僚來面試
- 技術二面,一般是由你的未來主管面試
- 技術交叉面,一般是其他事業部的主管面試
- HR終面,非技術問題
對應屆生來說,大廠統一校招前,如果你想進哪一個,一定要關注一下他們的内推資訊。内推一般都不用筆試,可以直接參加面試。而且一般内推和統一招聘是分開的,也就是内推挂了依然可以參加統一招聘,多一次機會。當然内推具體會不會影響統招,還是要讓内推人确認下。這裡說一下實習生的春招和秋招,春招和秋招都是招第二年畢業的學生,差別是春招簽的是實習Offer,秋招會簽正式Offer,是以差別大家應該懂得(春招不一定能轉正)。
社招一般也是三/四輪技術面+一輪HR面,不過社招很多時候會有一輪是級别比較高的人(總監級)人來面試。
3、面試前準備
首先在面試前一定要花一些時間進行準備,特别是常見的比較典型的面試題要準備一下,避免由于長時間沒有接觸某一類知識而在面試的時候發揮失常,比如計算機網絡、常見的算法等。
大部分面試問題都能在網上找到相同類型的,但是想全部找到原題一邊不太現實,很多面試官都會有自己準備的題目。比如我在每一次大規模招聘開始的時候,都會花一些時間自己準備幾個題目。
然後就是履歷一定要認真寫,重點突出,最好一頁就能寫完。三四頁的長篇大論一般我都不會認真看。履歷中寫上去的東西,一定要誠實,不懂得别亂寫。
技術面試至少有一輪面試官會對着你的履歷來問的,如果寫的精通實際卻解釋不清楚,會給面試官非常差的印象,降低整個人的信用。是以履歷中寫道的項目,如果是很久以前的最好自己再回憶整理一下。
既然履歷不能寫的太長,那麼哪些東西寫上去會讓面試官特别感興趣呢?
- 大型比賽獲獎
- 靠譜的項目/實習經曆
- 開源項目經曆
相對的,有一類履歷寫法會讓人比較反感,就是把各種技術名詞羅列出來寫成一長列,全是
熟悉/精通xxxx
。不是不能這麼寫,而是不能寫的特别多。沒有哪個人是能全部都精通的,如果你這麼寫了,面試官随便挑兩個問一問結果答得不好,那麼會覺得你精通的都這個水準,其他肯定更不怎麼樣。
4、面試的時候的一些建議
面試官和候選人從來不是對立關系,作為面試官非常希望候選人特别優秀,最好面一個人就能直接通過,沒有人想在低品質的候選人身上不斷浪費時間。是以面試的時候一定要心态放好,不是去被刁難,而是平等的交流。這裡說幾個我認為比較重要的點:
- 誠實,确實完全不懂的就直接說不知道,不要裝也不要編,面試官的水準一般遠高于你,很多時候你以為忽悠過去了,其實面試官隻是懶得跟你解釋太多而已。
- 主動發問,如果解決一個問題的時候有一些疑問或者不懂的地方,可以主動問面試官,一般都會給你一些提示。甚至有的題目專門會留一個模棱兩可的條件就是希望你能問出來的。發現并提出問題的能力也很重要
- 不怕錯誤,不要放棄,即使上一個題目完全錯的離譜下一題也要認真對待
- 不要刻意套近乎,我就很反感上來一口一個“哥”,甚至打聽面試官私人問題的
作為面試官,絕大多數人一般都是非常友好的。很多時候一些比較難的問題,都會先抛出一個相對簡單的,候選人解決完之後會提出下一個要求,比如限制條件再解決這個問題,或者指出你的實作方式存在的問題然後問你怎麼解決。好的面試題通常不是一上來就特别難,而是看起來不算太難,但是随着面試官逐漸引導追問會變得越來越難。
很多時候一個複雜的問題在面試的時候本來就很難用一兩句話描述清楚,這個時候面試官很可能會故意隻進行粗略的描述,希望候選人在讀題的時候能自己發現問題并提出來。如果你感覺一個面試題有模棱兩可的地方,一定要主動提出來,能給面試官留下很好的印象。
面試的時候不要因為某個題目犯了嚴重錯誤就自暴自棄,後面不專心答題了。一個題目結束後調整好心态進行下一題。沒有哪一個面試官會因為某一個題目而一票否決候選人,都是面試結束後根據候選人的綜合表現來評價的。是以心态放好,即使個别題目錯誤的離譜,整體評價依然可以做到比較好。
5、面試結束的時候應該問點什麼
一般面試快結束的時候,面試官都會問你有沒有什麼問題想問他的?很多人在這個時候手足無措不知道問些什麼好。其實很多問題都可以問,比如:
- 團隊的一些技術棧和所承擔的業務
- 如果通過了未來的工作主要是做什麼?
- 有師兄師姐帶我麼?公司有沒有一些系統的教育訓練?
- 甚至可以問一些學習的方法
但是切記有一個問題不要問,就是“我能通過這次面試麼”,這個問題非常不适合在這裡問,不通過的一般也不好當面說,能通過這一輪面試的一般也會其他候選人綜合對比,或者有下一輪。
6、面試結果?
面試結束後,如果通過了,正常都會在一周内有回複的,如果等了一周也沒有見到回複,那麼最好問一下面試你的人,雖然八成是沒戲了。如果沒有通過面試也不要太灰心,可以加一下面試官的微信,或者讓他幫你拉群。很多團隊自己為了以後方面搶人,都會有一些招聘群,加進去友善下一次有機會的時候能獲得第一手資訊。
7、面試官面試的時候在幹嘛
這個比較有意思,其實技術面試官都是比較資深的員工,大家平時都很忙的,很多時候面試其實是額外的任務。是以面試的時候,除了和候選人溝通之外,面試官有可能還在同時做自己的事。比如線上程式設計環節,溝通完題目要求之後,如果候選人埋頭寫題目不說話,我有時候就會去幹别的事,15分鐘後才回來看。是以即使寫代碼的時候最好和面試官保持溝通,說說自己的思路,不懂的地方提出來。不然面試官無聊了可能就去幹别的去了。
還有很多面試官在開頭會讓候選人自我介紹,其實這個時候你隻要保持鎮定簡單說下就好,他八成沒聽你說的話,正在抓緊時間看你的履歷呢。是以我從來不會讓人自我介紹,我會在面試開始前先花兩分鐘看完履歷,标記重點要問的問題。甚至個别自己記不清的還要google一下。
最後說一句,無論多少人在說工作難找,優秀的人才總是每個公司都要搶的。
針對技術這一塊,我自己除了整理了一份架構圖譜,還找朋友錄了一些視訊,和自己收集了一些視訊,講解的都是一線大牛,裡面包括了一些Java分布式、微服務架構、源碼分析、性能優化、并發程式設計等技術視訊,這段時間面試跳槽的朋友比較多,還有一套BAT面試題合集,我都分享在網盤裡了,分為四個階段學習,歡迎前來下載下傳。
第一階段
第一階段主要從 svn/git 版本控制、Java高并發、JVM虛拟機、RPC架構實戰、Redis、Hadoop、高并發分布式項目實戰、Nginx、Tomcat負載均衡和調優的角度來學習。
第二階段
第二階段主要從架構設計、分布式、Niginx負載均衡、ActiveMQ叢集、高可用MySQL、Storm流、Mycat分布式架構、分布式系統案例實戰等方面來學習。
第三階段
第三階段主要注重架構實踐:從高并發進階群分布式、高可用可擴充、Java高并發系統架構執行個體、高并發資料庫設計、MySQL主從複制和高可用叢集、海量資料庫架構設計等方面學習。
第四階段
第四階段主要從網際網路高并發解決方案、Java進階架構師、大資料、大資料底層算法、分布式資料庫架構詳解、等方面來學習。
最新Java面試題
珍藏多年的最全面的Java面試解答視訊,今天忍痛割愛分享出來。