當前位置:
首頁 > 科技 > 如何在技術面試中打動面試官?寫給校招的你

如何在技術面試中打動面試官?寫給校招的你

寫在前面

最近幾年參與了公司組織的校園招聘工作,每次去都會見到大量的學生,我喜歡和他們交流,觀察他們的一言一行。為了進一步考察他們的綜合能力和性格組成,我每次都會自己準備面試題,這些題目包括了編程基本概念、演算法編程題、操作系統、資料庫編程、開源代碼閱讀、垃圾回收機制、系統架構描述、實習期經歷回顧、人生過程中遇到過的挫折、對於工作氛圍的想法、未來的職業發展方向設定等。

這些問題中其實大多數都是開放式問題,一些是沒有固定的答案,另一些甚至於是完全開放式的,需要學生提出問題。我的這組題目中,可能只有編程基本概念這一條有固定的標準答案,演算法編程、資料庫編程都有多種回答方案,只不過每一種回答的運行效率不同,這些都屬於半開放式的技術問答。

操作系統、開源代碼閱讀、垃圾回收機制、系統架構描述,這些個問題則屬於是自己出題的題目,為什麼這麼說?因為我會根據你所了解的知識點一點點地深究下去,一點點往下問,所以這是完全開放式的技術問答。

實習期經歷回顧、人生過程中遇到過的挫折、對於工作氛圍的想法、未來的職業發展方向設定,這四個問題屬於非技術領域的完全開放問答,我之所以提出這些問題,是希望能夠更加接近學生的真實生活、內心想法,了解學生的過往經歷、三觀,以及周圍環境,這樣可以決定是否錄用,以及如何更好地發揮學生的能力。其實還有一道題,「你有什麼問題?」,這是最後一題,建議面試官一定不要忘記這道題,並且儘可能地完整回答學生的問題。

為什麼會出這些面試題?

所有的面試過程實質上是面試官和學生之間拉鋸戰,它就好像一個天平,只要標準統一、規則公平,那麼誰佔據優勢,天平就像誰這邊傾斜,自然這是公平的對決。前面說了,我的面試題包含好幾部分,我們逐一來談談。

編程基本概念

面試官:你面試的一名即將參加工作的工程師,他具備一定的面向對象、數據結構等非常基礎的知識能力,通過這些題目,你能夠很客觀地評價這名學生的基礎是否紮實,記住,你是替工作招募員工,不是去做好人,所以技術基礎不行的學生絕對不能收。我一般把這裡的題目設定為必會題。

學生:今年的題目是簡述面向過程編程、面向對象編程、面向行為編程、面向服務編程的各自特性、優點。學生們對面向過程編程、面向對象編程比較了解,這可以理解,因為基本都學過編程,不然也過不了筆試,但是對面向行為編程、面向服務編程了解的就不多了,這其實體現了學校老師的實踐水平,美國的一些頂級大學之所以偉大,因為它的老師群體很厲害,很多人一邊自己開公司、寫代碼、搞科技創新,一邊在學校教書,自身的實踐能力會影響學生對於工作的看待,自然而然也願意待在實驗室不斷提升實際編碼能力,而不是背書。

演算法編程題

面試官:由於我們招聘的對象是即將上崗的工程師,建議你將這道題目也設為必會題,挑選一道難度適中的題目,可以在面試過程中提示學生,讓他們寫出效率儘可能高的答案。筆試時由於是機器考試,容易藉助輔助工具幫助答題,所以我在面試階段增加了編程題,進一步考察學生的實際動手能力,並可以以此回答作為能力劃層的依據。

學生:今年的題目是在給定的一組數據中找出相加後等於目標值的兩個數據,並列印出他們在隊列中的下標。面試的學生確實還不錯,大多數人在經過思考後都能給出較好的演算法實現,少數學生可以快速地回答,證明大家平時還是都在老老實實刷題的。

資料庫編程

面試官:這一題是針對編程題的擴展知識考察,由於我面試的學生是應用軟體程序員崗位,所以我針對資料庫進行考察,希望他們能夠了解相對較為簡單的關係型資料庫的一些基礎知識,而不是能夠侃侃而談一大堆資料庫的特性,例如 left join、right join 的差別,但是卻不能寫出具有一定複雜度的 sql 語句。

學生:今年的題目是列出每個部門收入排名前三的員工信息,按照我的表設計,可以通過採用表自連接的方式查詢出數據,但是可惜幾乎沒有學生回答出來,很多人開始和我扯需要使用「group」、「order by」、「top」,甚至能不能用 oracle 的某些函數,卻忽視了 sql 的基礎。

操作系統、開源代碼閱讀、垃圾回收機制、系統架構描述

面試官:這些問題盡量不要限定回答問題、難度,最好能夠讓學生自己提出他懂些什麼知識點,然後快速地深入提問,可以是讓他們現場寫出答案,比如他說熟悉 Linux 的 sed 命令,那你可以讓他寫一個分析文本內容的簡單示例;如果他說看過 ConcurrentHashMap 的源代碼,你可以讓他寫出源代碼的核心部分,或者寫出它的演算法邏輯;如果他說了解 HashMap,你可以問他為什麼 HashMap 不是線程安全的,如果你來設計,怎麼可以讓它線程安全,順藤摸瓜地步步為營式提問。

我個人比較偏愛跳躍式提問,比如學生提到自己了解分散式通信協議,我會馬上問「什麼是 2PC」,他回答正確後立即問「ZooKeeper 裡面的 ZAB 的實現原理看過嗎?說說看」,回答後可以立即切換到相關的其他技術領域,只要概念類似,你都可以不斷地來回切換,考察他的技術基本功。這一欄你可以作為良好以上的考察項,先確保前三個問題類別回答得是否好,再來看這個類別的回答,畢竟系統架構層面的問題,除非有豐富實習經驗的研究生,否則一般都不太清楚。

學生:對於面試官的橫衝直撞,你一定不能亂,平時多了解新的技術,不要拘泥於導師的安排,多思考為什麼項目需要這麼來做,多給自己提為什麼,不要很容易滿足。Linux 已經發展這麼多年了,一般項目都會採用它,但是依然大多數學生會說,不了解 Linux,平時沒有用過。對於垃圾回收機制,幾乎所有學生都能說出一大堆的術語,並進一步描述它的原理,但是當我問一句,「你列印過 gc 日誌嗎?告訴我怎麼在 eclipse 這樣的 ide 工具裡面設置列印 gc 日誌到一個文件里?」,幾乎所有的學生都懵逼了,思考很久後說沒有列印過。那你怎麼學的???最終面試的學生只有一位回答了這道簡單的問題。

實習期經歷回顧、人生過程中遇到過的挫折、對於工作氛圍的想法、未來的職業發展方向設定

面試官:為什麼你需要提出這些問題?因為這些問題能夠引導學生說出他的經歷,讓我們能夠更加針對他們的初步回答進行深入地討論,你要能夠理解,公司招聘一名員工,除了他本身的技術基礎以外,是否容易管理、是否具有極端心理、是否認同公司問題、是否具有未來發展潛力,這些都屬於你的考察範圍,而不僅僅是技術能力。其實會針對這些情況進行深入了解的面試官本身自己就是很認真的人,對公司具有歸屬感,希望能夠真真切切地為公司招到可靠、穩定的員工。

學生:這類問題本身就是非常開放式的,怎麼回答取決於你自己。一位同學,面試過程中我問了「你想留在哪裡?」,「成都」,他幾乎沒有考慮就回答了,「為什麼呢?不想去大城市發展嗎」,「因為家裡條件不好,我想在能買得起房的地方就業,所以不考慮華為給的深圳 Offer,留在成都可以長久發展,也能給家裡一些幫助」。我深入和他聊了聊家庭情況,他是家裡老三,大姐已經出嫁,二姐初中輟學後打工,再回來上學,現在還在念大專,小弟還在家裡讀書,他自己初中開始住校,一路靠拼進了 985 大學。這類學生一般比較成熟,思維穩定,獨立性強,能吃得起苦,技術基礎也不錯,自然成了選擇之一。

每個人都不能決定自己的家庭出生,面試遇到了一位,在談及「人生挫折問題」時,他慢慢地說出了自己的一些故事,「出生 8 個月父母離婚,跟著母親單獨生活直到初中,忽然有一天父親來找他認親,雖然沒有感情,但是為了能夠繼續拿到生活費,即便出現父母分立校門左右兩處的場景,我也依然需要獨立面對」。我聽完後反問他,「這些事一般會和別人說嗎?」,「會和好朋友說說,面試官第一次說,因為你問的是生活中的挫折,不僅限於學習」,「那你希望未來的領導能像大哥一樣和你溝通吧?」,「是的」。這位學生內心存在較強的不安全感,他的這種不安全感會影響自己的認知和行為模式,內心的一些事情可能會像海浪一樣,無休止地拍打自己的心靈,所以,盡量安排成熟、穩重的導師、Leader 給他。

注意事項

作為面試官,我們需要注意以下幾個方面。

避免過於嚴苛

有些面試官對於學生的一言一行過於嚴格,私下交流時容易出現「這個問題他回答不上來就不要了」、「他回答不太願意加班就不要了」、「他本科不是 211 以上就不要了」等等。盡量不要出現這樣的思維和思考問題方式,每個人都是不同的,應該多給對方解釋的機會,採用引導式的方式,儘可能地在開放式環境下聽聽他們的想法,不要過於苛刻,自己給自己畫了圈之後,你首先要想想這個圈本身是否準確。這樣來看,面試官這份臨時性工作,本質是智商、情商、心理學的結合領域,盡量選擇合適的人來做面試官吧。

專業、極致、格局

無論是面試官,還是學生,是不是都需要能夠做到這些。對於面試官來說,你的敬業、仔細、耐心,對於學生來說都是很好的映像,進而產生對公司的好感,有誰會喜歡一個翹著二郎腿的面試官?對於學生來說,較好的行為舉止、準時、提前準備,都會對你很有幫助。我記得很多年前我去參加一家德國企業的面試,總經理是位中國人,50 來歲的老博士,他讓我談談對於公司情況的了解情況,其實我已經做足了功課,把他們網站上的英文背出來了,我一邊背,他一邊睜大了眼睛,扶了扶眼鏡,還糾正了對於創始人德文名字的發音錯誤,然後和我說:「你有什麼要求,現在就可以提」。

前面提到了格局,做人不要僅限於眼前利益,不要太實際,不要只考慮自己。推薦學生們擔任大公司的「校園大使」,這個工作一定要盡自己最大可能做好,積極配合 HR 小姐姐,其實過程中你也在被觀察。這次就遇到了三位截然不同的大使,第一位非常認真,兩天時間忙上忙下,布置會場、參與宣講會、電話聯繫學生、引導學生面試流程等等,還找了幾位好朋友過來幫忙,忙到自己沒有時間參加免於,雖然他存在不太擅長於溝通的弱點,但是我在晚上 9 點結束面試後,單獨給他留出了面試時間,並且和 HR 一起邀請他加入,他很感激地不停鞠躬。人如果能做到對幫助自己的人心懷感激,這人一定不會差。

第二位,面試當天他自己也坐下來面試了,技術一般,他自己介紹是校園大使,我正在猶豫時 HR 小姐姐和我聊起了他,「這個人責任心太差,請他幫忙招呼學生,他都懶得說話,自己管自己玩手機、吃飯,請他打電話聯繫沒有來的學生問問情況,他一臉不屑,好像很看不起我們公司」,「哦,知道了,既然他看不上我么,我們也不用給他機會了」,他就這麼錯過了一家很棒的公司。第三位,我們面試當天她給自己安排了一天的面試,露了個面後就消失了,等她的事情幹完了再跑來想面試,當然,我直接忽視了她。

正確地展現自己

每個人都有自己的興趣、愛好,也許你很喜歡旅行,我朋友的孩子明年研究生畢業,拿給我一本他自己做的簡歷,後面附帶了幾張自己攀爬雪山的照片,問我是否合適?我給他的答覆是,攀爬雪山本身是一件非常具有挑戰性的事情,你應該突出這件事的困難,以及你最終是如何打敗困難的,繼而成功登頂成功的過程、心理變化狀態等,這是面試官看重的,而不是你特別擅長旅遊。

這次面試遇到了一位女生,跟團騎行繞海南島一圈,我問了她一個問題,「騎行中如果出現分歧,你們怎麼處理?」,「大家會一起討論」,「討論過程中,你扮演什麼角色?」,「我一般不開始不發言,聽大家說,然後歸納大家的意見,做最後的陳述」,再參考他的技術能力(比較不錯)、實習經驗(京東,半年以上),並且已經拿到了京東 Offer、學校(本科、碩士均 985),綜合來看,她具有潛在的 Leader 氣質,我給了「Excellent」評價。

提前對自己的規劃

這次面試遇到了一位學生,先說結果吧,沒有錄用。我內心有點小感觸。他的簡歷看起來很正常,但是仔細一看,為什麼 25 歲還在念本科?「我先考上了北方的一所 985 大學,後來退學了,重考了」,我必須要弄清楚他為什麼退學,「總的來說還是不適應,第一次去報道,自己一個人去的,坐了兩天的火車,到了天寒地凍的城市,沒有學長接站,接著被分到了其他專業的寢室,只有 2 個同學一起住,讀到大二的時候,僅有的兩人中還有一人轉專業了,人徹底奔潰了」,「你家裡同意你退學?」,「父母當時已經失望了」。這段經歷成了雙刃劍,HR 擔心他的內心再次出現奔潰,成為團隊的炸彈,畢竟工作中的壓力不僅僅是天寒地凍、無人聊天,現場問題處理過程中的壓力之大是無法用語言描述的。希望他未來的人生可以走出自己的精彩。

另外還有一位女生,當我請她答題時,她托著腮幫子訴苦:「為什麼你們這些公司都要問這些問題?」,「因為這些是技術基礎,我們得確保你過來能幹活」,「好難啊,不能簡單點嗎?」,我問了她的興趣愛好,畢竟本科、碩士都是 985 的,應該能力很強才對。「我喜歡打遊戲,生活輕鬆一點才好」。我和她繼續聊了一會,建議她回家鄉考公務員,那樣應該不需要過多面對大城市生活的困難、責任,祝她成功。

為什麼大公司喜歡 985 的學生

因為那裡容易出優秀的人。為什麼喜歡優秀的人?有同學問我,是不是到了你們這個年紀就不用拼搏了,可以很舒服了?你錯了,越是優秀的人,對於自身的要求越高,他會認同努力是人生的一部分,無論物質上多麼優越,他都會持續努力,因為這是自身的定位,追求卓越,站得更高才能欣賞更美的風景,看看吳恩達大師的一周工作 70 小時就懂了。

寫在最後

前面洋洋洒洒說了一堆,最後說一句,仰望星空前需要做好腳踏實地,掌握好基礎技術、動手能力強、三觀正、具有較強的為人處事能力,這四點是一切可持續發展的基礎,致所有正在校招的面試官、學生。

作者簡介

周明耀,2004 年畢業於浙江大學,工學碩士。13 年軟體研發經驗,近 10 年技術團隊管理經驗,4 年分散式計算、大數據技術經驗。出版書籍包括《大話 Java 性能優化》、《深入理解 JVM&G1 GC》、《技術領導力 - 碼農如何才能帶團隊》。個人微信號 michael_tec,個人公眾號「麥克叔叔每晚 10 點說」。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 InfoQ 的精彩文章:

大數據篩選下的三十篇技術好文,送給太想進步的你!
Facebook認慫React專利,但問題依舊沒有解決?
Spring技術佈道師眼中的微服務:事件驅動型微服務詳解
這才是DevOps、雲原生乾貨內容的正確打開方式
三張通行證,為「高級工程師進階」加滿血量!

TAG:InfoQ |