前兩天的時候有一個同學在評論裡問我,如果你是面試官,你會問什麼問題呢?
不得不說這是一個很好的問題,一千個人眼裡有一千個哈姆雷特,同樣,一千個面試官裡面也有一千個面試標準和麵試風格。首先說明,本文的內容只代表我個人的觀點,大家辯證吸收。
無論是我之前作為面試官進行的面試,還是以後我將要進行的面試,我個人的面試流程主要分成三個部分。分別是演算法題、機器學習基礎以及理解題。實際上也不只是我,業內很多面試官基本上也都是這個流程。
演算法題
演算法題指的是演算法資料結構這一塊內容,這塊能考察的東西非常多,即使排除掉競賽當中的內容,也可以玩出花樣來。業內的面試官在這個部分一般有兩種風格,第一種是樸素風,也就是問的都是基礎當中比較難的內容。比如讓你手寫歸併排序、快速排序。
歸併排序和快速排序雖然都是本科演算法課當中有的東西,但難度還是比較大的,有能力在面試的時候用白板寫出來並且基本上沒有bug的都是牛人。如果此人還沒有acm之類的演算法競賽的背景的話,那麼可以肯定他的基礎一定非常紮實,或者是進行了充分的面試準備。
第二種風格是思維題,比如選擇一道LeetCode或者是codeforces當中的問題進行考察。一般面試官喜歡解法多樣,既存在簡單樸素方法,又存在需要縝密思考才能得到進階解法的問題。候選人能答出什麼樣的解法,就說明了他處在什麼樣的檔次。這種問題的解法一般也都是一些基礎演算法,比如two pointers或者是遞迴,你想不到一定不是因為你不知道這個演算法,而是你理解不夠深刻,或者是思維能力不夠。
我個人在面試的時候一般會從易到難準備三道問題,根據最簡單問題的回答情況來判斷是否要給出最難的問題。比如一道裸題,一道基礎題,和一道思維題。有時候為了防止候選人押題,我也會準備一道原創題。因為經常會遇到面試的時候候選人偷偷百度的情況。
機器學習基礎
基礎題主要指的是機器學習方面的基礎,這一塊問問題的風格也很多。有些人會喜歡由淺入深,你每回答出來一個問題,就繼續追問你一個更深入的問題,直到你全部回答出來或者是回答不上來為止。還有些人會直接問你某一個領域的細節檢視你的理解情況。
我個人喜歡兩種方法聯合起來使用,比如我可能會問你在機器學習領域你比較熟悉的模型有哪些。當候選人回答之後,我會讓他自己選擇一個他拿手的模型進行介紹。比如之前有一個哥們選了Kmeans,他把Kmeans說出來的時候就在我心裡已經扣了點分了。說明他對於他當時提到的其他模型一定都不是非常自信,不然為啥選擇最簡單的Kmeans?
接著,他介紹Kmeans的原理倒是沒有太多的問題,但是當我問他如何解決Kmeans效率較低的問題,有沒有想法的時候,他直接告訴我沒有想法。這說明了什麼?說明他對於這些模型的原理只是淺嘗輒止而已,並沒有深入其中思考。就連最簡單的Kmeans尚且如此,其他的模型更加就不用說了。
如果這一環節他答得不錯的話,我可能會選擇一些比較有挑戰的問題追問一下。比如追問一下GBDT或者是XGboost模型的原理或者是一些細節。如果追問的內容也可以答出來,那麼機器學習基礎這一關就算是過了。
一般來說不會問太多深度學習相關的內容,可能會挑一些比較基礎的問。比如解釋一下神經網路梯度爆炸的原因以及解決的辦法,以及候選人在這個領域做過的模型和事情等等。如果候選人之前沒做過相關領域的話,問不出太多的東西來。比如如果他之前做的是NLP或者是CV,那麼基本上沒有相關性,可能只能挑一些有些感興趣或者瞭解的問問了。
理解題
理解題問的理解是對行業或者是場景的理解,比如既然是推薦演算法,那麼肯定會問一問對方對推薦的理解。推薦演算法究竟解決了什麼問題,推薦演算法的痛點是什麼?我們怎麼樣來設計特徵,線上學習怎麼做?這一塊內容更多地是交流而不是提問,聽聽對方的想法,看看他的理解有多深刻,有沒有一些好的點子。
這一塊屬於開放性問題,相對比較機動,在面試當中的重要性佔比也比較低,基本上可以理解成加分項。如果對方實在沒什麼想法或者是沒什麼經驗的話,也可以不問,或者是問一些對方簡歷當中的內容來替代。
關於候選人簡歷當中的內容,如果比較相關的可能會多問一些,如果不怎麼相關可能就大概瞭解一下,或者就不問了也可能。比如他之前有做過哪塊內容比較讓我感興趣,或者是我們剛好做過或者即將要做,都會深入聊聊看。一方面瞭解一下對方的想法以及做法,一方面也可以從側面看得出這個人的品質以及能力。
最後再聊下我的標準,演算法題和機器學習這兩塊能夠達到60分,沒有其他扣分項的話,基本上我就會給過了。兩項都能80分,我就會給A,如果其中還有一項能超過90分的話,我就會給A+。當然這個是校招以及社招普通工程師的標準,因為我實力有限,也只面過這個標準,對於更高level的面試會問什麼,暫時瞭解還不多。如果有同學瞭解的話,歡迎在下方給我留言。
今天的文章就到這裡,衷心祝願大家每天都有所收穫。如果還喜歡今天的內容的話,請來一個三連支援吧~(點贊、關注、轉發)