如果我是推薦演算法面試官,我會問哪些問題?

2022-01-10 20:41:26 字數 1714 閱讀 8068

無論是我之前作為面試官進行的面試,還是以後我將要進行的面試,我個人的面試流程主要分成三個部分。分別是演算法題、機器學習基礎以及理解題。實際上也不只是我,業內很多面試官基本上也都是這個流程。

演算法題指的是演算法資料結構這一塊內容,這塊能考察的東西非常多,即使排除掉競賽當中的內容,也可以玩出花樣來。業內的面試官在這個部分一般有兩種風格,第一種是樸素風,也就是問的都是基礎當中比較難的內容。比如讓你手寫歸併排序、快速排序。

歸併排序和快速排序雖然都是本科演算法課當中有的東西,但難度還是比較大的,有能力在面試的時候用白板寫出來並且基本上沒有bug的都是牛人。如果此人還沒有acm之類的演算法競賽的背景的話,那麼可以肯定他的基礎一定非常紮實,或者是進行了充分的面試準備。

第二種風格是思維題,比如選擇一道leetcode或者是codeforces當中的問題進行考察。一般面試官喜歡解法多樣,既存在簡單樸素方法,又存在需要縝密思考才能得到高階解法的問題。候選人能答出什麼樣的解法,就說明了他處在什麼樣的檔次。這種問題的解法一般也都是一些基礎演算法,比如two pointers或者是遞迴,你想不到一定不是因為你不知道這個演算法,而是你理解不夠深刻,或者是思維能力不夠。

基礎題主要指的是機器學習方面的基礎,這一塊問問題的風格也很多。有些人會喜歡由淺入深,你每回答出來乙個問題,就繼續追問你乙個更深入的問題,直到你全部回答出來或者是回答不上來為止。還有些人會直接問你某乙個領域的細節檢視你的理解情況。

我個人喜歡兩種方法聯合起來使用,比如我可能會問你在機器學習領域你比較熟悉的模型有哪些。當候選人回答之後,我會讓他自己選擇乙個他拿手的模型進行介紹。比如之前有乙個哥們選了kmeans,他把kmeans說出來的時候就在我心裡已經扣了點分了。說明他對於他當時提到的其他模型一定都不是非常自信,不然為啥選擇最簡單的kmeans?

接著,他介紹kmeans的原理倒是沒有太多的問題,但是當我問他如何解決kmeans效率較低的問題,有沒有想法的時候,他直接告訴我沒有想法。這說明了什麼?說明他對於這些模型的原理只是淺嘗輒止而已,並沒有深入其中思考。就連最簡單的kmeans尚且如此,其他的模型更加就不用說了。

如果這一環節他答得不錯的話,我可能會選擇一些比較有挑戰的問題追問一下。比如追問一下gbdt或者是xgboost模型的原理或者是一些細節。如果追問的內容也可以答出來,那麼機器學習基礎這一關就算是過了。

一般來說不會問太多深度學習相關的內容,可能會挑一些比較基礎的問。比如解釋一下神經網路梯度**的原因以及解決的辦法,以及候選人在這個領域做過的模型和事情等等。如果候選人之前沒做過相關領域的話,問不出太多的東西來。比如如果他之前做的是nlp或者是cv,那麼基本上沒有相關性,可能只能挑一些有些感興趣或者了解的問問了。

這一塊屬於開放性問題,相對比較機動,在面試當中的重要性佔比也比較低,基本上可以理解成加分項。如果對方實在沒什麼想法或者是沒什麼經驗的話,也可以不問,或者是問一些對方簡歷當中的內容來替代。

關於候選人簡歷當中的內容,如果比較相關的可能會多問一些,如果不怎麼相關可能就大概了解一下,或者就不問了也可能。比如他之前有做過哪塊內容比較讓我感興趣,或者是我們剛好做過或者即將要做,都會深入聊聊看。一方面了解一下對方的想法以及做法,一方面也可以從側面看得出這個人的品質以及能力。

我是面試官系列 關於溝通

題目 設計一套程式,模擬兩個人的交流過程 子題目 1.設計乙個類,主體是人,包含與另乙個交流過程中需要的方法 2.設計一套類,能夠描述兩個人針對乙個task,達成乙個共識 3.如果乙個人很懂溝通,另乙個人不懂溝通,程式的執行結果是什麼 4.如果兩個人都不會溝通,程式的執行結果是什麼 5.如果兩個人都...

「簡歷造假,面試坦白」如果你是面試官給過嗎?

最近公司想招一名做c c linux服務端開發的開發。要求是 1.3年以上linux後台開發相關經驗。2.精通tcp ip協議棧。對os和體系結構由深刻理解。3.熟悉linux核心及各基礎模組,有提交核心patch優先。4.有開源專案貢獻經驗優先,對技術新動向有敏銳的嗅覺。5.會分布式 高併發優先。...

浪裡淘沙,沙裡淘金 我是面試官

公司校園招聘下手有點晚,加上我們是一家小公司,在招聘資源的競爭當中處於劣勢。所以,我們要 浪裡淘沙,沙裡淘金 努力發掘被大公司遺忘的寶貝,這樣還是可以花小錢辦大事。什麼樣的人,是我們眼中的寶貝 1 我們考察乙個應屆畢業生的首要指標是綜合能力。其中包括 1 表達能力,能夠清楚表達自己的想法。2 溝通能...