但經常參加面試的同學肯定有過這種感覺,即使面試過程非常順暢,即使你本身是一個面霸,甚至god like,也經常有失手的時候。所以很多同學把面試歸結為一門“玄學”。那么算法工程師的面試真的是一門玄學嗎?有什么方法能讓你在玄之又玄的面試中逆天改命嗎?我來嘗試給大家一個解答。
一個前提
首先這里有一個前提,敢稱面試為玄學的人必然是一個技能面積廣闊的人。你室友面了五家公司,有一家沒有給offer,那可能是玄學導致的,你面了五家公司,一家都沒給offer,那是你的實力太弱,請回家繼續苦練本事,擴大你的技能雷達圖。
三個原因
在你實力足夠的前提下,通常是三個方面的原因導致你無法得到offer,這里面有主觀的原因,也有客觀的原因,甚至有不可抵抗力的因素,看看大家能不能找到屬于你的那一條。
玄學之一:你可能不是面試官想一起工作的人。
站在面試官的角度,我經常把面試官給candidate通過的根本原因歸結為一句話“找到了一個技術合格且愿意一起工作的人”。
所以面試通過要滿足兩個基本要求,一是“技術合格”,二是“愿意一起工作”二者缺一不可。所以在你技能合格的前提下,面試官愿不愿意與你一起工作就成了一個關鍵且略主觀的問題。
但這看似草菅人命的標準其實是有背后的深刻邏輯的。往俗了說叫做看看candidate投不投緣,往大了說叫做符不符合公司文化,往實在了說,是要check你是不是能夠順利的與同事交流協作,得出合理的技術解決方案。
再進一步說,從工作和學習的區別的角度看,工作中知識的重要性其實是逐漸在降低的,軟素質的要求逐漸在升高,你很有實力,但你傳播實力的能力同樣重要,就像Facebook總在強調的impact,Hulu在晉升senior時要考察的跨組合作,其實都在考察你的溝通能力。如果你在面試中連你未來的同事都聊不來,那你如何去跟別的組的同事協調呢?你甚至會跨office跟別的城市甚至別的國家的團隊溝通,你又怎么能在復雜情況下一起解決問題?所以跟你的面試官聊得來是第一步。
為了驗證你未來會不會是一個合適的同事,面試官通常會用拋出一些開放性的問題與你討論,這個問題可能來自一些業界通用的問題,比如請你設計一個“千人千面”的電商主頁商品類別排序模型;也許會來自一些生活中的算法,比如請你設計一個微信隨機搶紅包時生成紅包金額的算法或機制;還有可能就來自面試官的工作實踐,比如我在構建CTR模型的時候,遇到了嚴重的數據bias的問題,有沒有什么辦法解決。
這類題的特點很明顯,非常開放和發散,開放到題目本身并不清楚。正是因為不清楚,所以面試官想要的效果是請你去主動提問題,我們一起去設計一個模型或系統來解決這個問題。在這樣的前提下,有下面兩類candidate可能會被我無情的拒掉:
1.面試過于被動,被面試官生硬的推著走。比如針對“微信搶紅包”這個問題,有的面試者就一句話,“每次用一個隨機數生成器生成一個紅包金額不就行了”。如果是這樣的話,你作為工程師的嚴謹性就蕩然無存了。面試官為了讓你繼續下去,還要向你提問,比如你考慮過沒有紅包金額的總體分布問題?等等。而面試官期待的是這個問題被你推動著走下去。比如在問題不太清楚的前提下你應該反問面試官,每個紅包的金額有沒有上限和下限?需不需要考慮計算效率問題?我能否在紅包產生時就預算好所有紅包的金額等等。
2.思路受限,沒有嚴謹性、開放性和創新性。在實際的工程問題中,解決一個問題不可能只有一個solution,解決一個問題的solution也不可能是一句話能說清楚的。比如我想跟你討論一下如何設計一個電商主頁商品類別排序模型。看到這個問題,很多人會直接說我想用DNN建一個CTR prediction模型來排序。這當然可以,但最好請你拋出這個解決方案的時候嚴謹地系統地想一想這個問題,順著工程實現的思路去跟面試官討論下去,比如
都能得到哪些數據和feature;
數據量有多大,數據延遲有多大;
objective如何制定;
結合具體業務,我能不能把商品類別當作一個item來對待,或者把類別內部的商品當作一個item來對待;
我能否使用learning to rank /ctr prediction/多分類模型來解決這個問題;
采用什么模型架構更適合這個問題。等等。。。在實際面試中,你可能無法想的這么細,但請體會這個意思,作為算法工程師,你應該足夠嚴謹、開放、活躍、創新。
玄學之二:你的技能樹無法精確滿足當前position的要求
這個問題在社招的情況下尤為突出。很多資深的工程師說感覺面試表現不錯,算法題最優解,設計題聊半天,面試官全程微笑,就是不發offer。。這樣的情況絕大可能就是你的經驗不能精確符合職位要求。
大家要注意“精確”二字。在有些情況下公司對面試者的工作經驗的要求是精確到系統模塊級別的。同樣是計算廣告算法工程師,我們團隊可能就想招一個做yield optimization或者“預算控制”算法的,你說你搞CTR搞得風生水起,發了無數篇頂會,但你沒搞過這個方向,不能即插即用,那只能對不起,作為同行為你點個贊,但offer沒有。
前段時間還跟facebook一位前同事聊天,說他們就想招一個搞大規模并行機器學習平臺的人。那你說你是做ranking的,你用tensorflow或者mxnet用的飛起,但沒實現或者修改過源碼,沒自己搭建過parameter server,那也只能對不起,點贊奉上,offer沒有。
針對這類問題有沒有解決之道?其實是有幾點大家可以注意的,在找工作之前還是要盡可能的多讀幾遍JD,找到那些跟一般JD有區別的,或者JD上明確寫的“最好有XXX經驗”,看與自己的經驗是否匹配;有條件的candidate可以多跟獵頭或者對方hr溝通一下,甚至能夠找到內推渠道的同學可以找團隊的成員了解一下內幕消息,都是很有必要的。
玄學之三:不可抵抗力
上篇文章作者說到參加過十幾場面試,但還是有兩個公司沒有給offer,一個是eBay美國總部,一個是百度某算法部門。eBay掛掉的原因是當時英語實在太差了,設計題和開放題答得很差,沒有跟面試官更有效的互動;百度的原因就是不可抵抗力,大約記得是15年底的時候,已經拿到口頭offer了,但突然因為某事件全baidu的校招和社招offer都暫時停止了,這就屬于不可抵抗力因素了。雖然后來跟baidu又有聯系,但錯過了那個時間節點,也就不考慮了。
可能不可抵抗力的因素在北京這個“寒冷”的冬天會更多一些,有沒有解決之法?也是有的,大家沒事多去北京西郊臥佛寺拜一拜可能會逆天改命。
-
算法工程師
+關注
關注
2文章
30瀏覽量
6093
發布評論請先 登錄
相關推薦
評論