- 賽事資訊
- 職教新聞
- 新聞專題
- 汽修專業(yè)
- 數(shù)控專業(yè)
- 電子專業(yè)
- 加工制造
- 機(jī)電專業(yè)
- 模具專業(yè)
- 電氣信息
- 旅游管理
- 建筑專業(yè)
- 信息技術(shù)
- 化工專業(yè)
- 機(jī)械制造
- 財經(jīng)專業(yè)
- 餐飲專業(yè)
- 酒店專業(yè)
- 商貿(mào)專業(yè)
- 醫(yī)藥衛(wèi)生
- 地質(zhì)勘察
- 交通土建
- 財經(jīng)商貿(mào)
- 鐵道工程
- 服裝設(shè)計
- 基礎(chǔ)課程
- 美容美發(fā)
- 農(nóng)林牧漁
- 包裝印刷
- 材料能源
- 法學(xué)專業(yè)
- 公共事業(yè)
- 生物工程
- 市場營銷
- 資源環(huán)境
- 機(jī)器人
- 無人機(jī)
- 通用性技能知識
- 綜合
當(dāng)前位置:首頁 > 文章資訊 > 信息技術(shù) > 掌握這些技能,你就離一個優(yōu)秀的算法工程師不遠(yuǎn)了!
掌握這些技能,你就離一個優(yōu)秀的算法工程師不遠(yuǎn)了!
算法工程師是個非常熱門的崗位,要想過五關(guān)斬六將獲得心儀的 offer,一份面試指南必不可少。作者聊了聊算法工程師的面試技能雷達(dá)圖,為了提高你的面試通過率,注重日常積累,不斷擴(kuò)大你各方面技能的深度和廣度是必要的。
然而,經(jīng)常參加面試的同學(xué)肯定有過這種感覺,即使面試過程非常順暢,即使你本身是一個面霸,甚至 god like,也經(jīng)常有失手的時候。所以很多同學(xué)把面試歸結(jié)為一門“玄學(xué)”。那么算法工程師的面試真的是一門玄學(xué)嗎?
今年是我作為算法工程師工作的第七個年頭,期間拿到過 hulu,阿里巴巴,騰訊,美團(tuán)以及一些 startup 的算法工程師 offer,也作為面試官面試過清北,海外,北郵,以及一些二本學(xué)校等不同背景的百余位 candidates,作為面試者和面試官的經(jīng)驗還比較豐富。所以希望自己的經(jīng)驗?zāi)軐δ阌兴鶐椭?,也非常歡迎其他面試官能夠多留言探討自己的面試經(jīng)驗。
那我們直入主題,到底什么技能才是一名合格的算法工程師應(yīng)該具備的技能呢?面試官又會如何驗證你的這些技能呢?
算法工程師面試技能雷達(dá)圖
雖然每個一個崗位都有 JD,但拋開具體的崗位要求,從稍高的角度角度看待這個問題,一名算法工程師的技術(shù)素質(zhì)基本可以拆解成下面四個方面:知識、工具、邏輯、業(yè)務(wù)。當(dāng)然廣義來講,這四項素質(zhì)也適用于所有 IT 工程師。
我非常喜歡用雷達(dá)圖來表示一個人的能力范圍,可能小時候看圣斗士看多了,當(dāng)時研究官方出的黃金圣斗士能力雷達(dá)圖研究了半天,現(xiàn)在也沒好到哪去,只不過變成了喜歡研究候選人的能力雷達(dá)圖了。。下面畫出了大數(shù)據(jù)行業(yè)幾個相關(guān)職位的能力雷達(dá)圖,大家可以初步體會一下。
簡單來說,任何工程師都應(yīng)該滿足四項技能的最小要求,比如我曾經(jīng)面試過一位計算廣告算法工程師 candidate,這位同學(xué)發(fā)過一些計算廣告相關(guān)的 paper 和專利,從 research 的角度是不錯的人選,但當(dāng)我想稍微驗證一下他 coding 的能力時,他明確告訴我說他不愿意寫代碼。這就是不滿足“工具”這項技能的最小要求,自然是不能通過面試的。
在最小要求的基礎(chǔ)上,算法工程師的能力要求是相對全面的。其實所謂算法工程師,就是因為你不僅應(yīng)該是一位合格的“工程師”,還應(yīng)該再次基礎(chǔ)上有算法的改進(jìn)和實現(xiàn)的能力。除此之外,大數(shù)據(jù)工程師更注重大數(shù)據(jù)工具和平臺的改進(jìn),研究員則在知識和邏輯層面相對突出。有些臨時抱佛腳的同學(xué)喜歡惡補(bǔ)知識,不注重理解業(yè)務(wù)和模型本身的內(nèi)在邏輯,是我經(jīng)常見到的面試“悲劇”情況。
當(dāng)然,只用四個詞描述四個方面的能力還是過于形而上了,這里我們用一些具體的內(nèi)容來描述一下算法工程師的四個技能點:
- 知識:主要是指你對 machine learning 相關(guān)知識和理論的儲備
- 工具:將你的 machine learning 知識應(yīng)用于實際業(yè)務(wù)的工具
- 邏輯:你的舉一反三的能力,你解決問題的條理性,你發(fā)散思維的能力,你的聰明程度
- 業(yè)務(wù):深入理解所在行業(yè)的商業(yè)模式,從業(yè)務(wù)中發(fā)現(xiàn) motivation 并進(jìn)而改進(jìn)模型算法的能力
也許還不夠具體,那我們再從一個實際例子中體會一下,比如我去面試“計算廣告算法工程師”的職位,上面四項對應(yīng)著哪些具體的能力呢?
- 知識:主流 CTR 模型以及預(yù)算控制,流量預(yù)估,bidding 策略等模型算法的原理和技術(shù)細(xì)節(jié)
- 工具:coding 能力,spark、flink、tensorflow、ps-lite 等模型訓(xùn)練、serving 相關(guān)工具
- 邏輯:算法題,模型之間的演化關(guān)系
- 業(yè)務(wù):展示廣告和搜索廣告在構(gòu)建模型時的區(qū)別聯(lián)系,如何根據(jù)公司的 business model 制定模型的 objective
當(dāng)然,上面只是讓大家體會一下什么是這四項素質(zhì),真實的計算廣告算法工程師面試中,你不一定要都掌握,也不一定局限于這些內(nèi)容。如果你遇到一位資深的面試官,他不會預(yù)設(shè)一個框架往面試者身上套,而會從面試者簡歷出發(fā)檢驗面試者能不能達(dá)到這四項素質(zhì)的標(biāo)準(zhǔn)。
那么問題又來了,面試官會如何在 " 限定的時間內(nèi) " 檢驗?zāi)氵@四項素質(zhì)能不能達(dá)到 " 技術(shù)合格 " 的標(biāo)準(zhǔn)呢?
既然是限定的時間,面試官就不可能拿出一本西瓜書,從頭問到尾,也不可能拿出一本葫蘆書,從 100 道面試題中抽出 50 道給你來個馬拉松問答。面試官要做的是在 1 個小時的時間內(nèi)確認(rèn)你能力的 **“深度 " 和 " 廣度”。 所以在這里面試官就像一個采樣算法 **,要從你腦子里采幾個點,把你的能力雷達(dá)圖描繪出來。
重點再重復(fù)一邊,面試官會從“深度”和“廣度”兩個維度構(gòu)建你的能力雷達(dá)圖。
對于“深度”方面,有經(jīng)驗的面試官會從你已經(jīng)做過的項目中挑出你最擅長的部分做層次式的遞進(jìn)。一位面試同學(xué)介紹自己實習(xí)時候用過 XGBoost 預(yù)測股票漲跌,那面試官可能會由淺入深依次考察下列問題:
- GBDT 的原理(知識)
- 決策樹節(jié)點分裂時是如何選擇特征的?(知識)
- 寫出 Gini Index 和 Information Gain 的公式并舉例說明(知識)
- 分類樹和回歸樹的區(qū)別是什么?(知識)
- 與 Random Forest 作比較,并以此介紹什么是模型的 Bias 和 Variance(知識)
- XGBoost 的參數(shù)調(diào)優(yōu)有哪些經(jīng)驗(工具)
- XGBoost 的正則化是如何實現(xiàn)的(工具)
- XGBoost 的并行化部分是如何實現(xiàn)的(工具)
- 為什么預(yù)測股票漲跌一般都會出現(xiàn)嚴(yán)重的過擬合現(xiàn)象(業(yè)務(wù))
- 如果選用一種其他的模型替代 XGBoost 或者改進(jìn) XGBoost 你會怎么做,為什么?(業(yè)務(wù) + 邏輯 + 知識)
這是一條由簡歷出發(fā),由“知識”為切入點,不僅考察了“知識”的深度,而且還考察了“工具”、“業(yè)務(wù)”、“邏輯”深度的面試路徑。
當(dāng)然,如果你介紹的項目是實現(xiàn)了一種類似阿里 DIN 的 CTR 預(yù)估模型。那么問題路徑可能是這樣的:
- softmax 函數(shù)的定義是什么?(知識)
- 神經(jīng)網(wǎng)絡(luò)為什么會產(chǎn)生梯度消失現(xiàn)象?(知識)
- 常見的激活函數(shù)有哪些?都有什么特點?(知識)
- 挑一種激活函數(shù)推導(dǎo)梯度下降的過程。(知識 + 邏輯)
- Attention 機(jī)制什么?(知識)
- 阿里是如何將 attention 機(jī)制引入推薦模型的?(知識 + 業(yè)務(wù))
- DIN 是基于什么業(yè)務(wù)邏輯引入 attention 機(jī)制的?(業(yè)務(wù))
- DIN 中將用戶和商品進(jìn)行了 embedding,請講清楚兩項你知道的 embedding 方法。(知識)
- 你如何 serving 類似 DIN 這樣的深度學(xué)習(xí)模型 **(工具 + 業(yè)務(wù))**
這條路徑側(cè)重于考查“知識”深度的路徑。為了彌補(bǔ)其他方向考察的不足,面試官肯定還會問一個從工具或者業(yè)務(wù)出發(fā)的問題來確定你其他方面的深度。
因為面試官選擇的是你最熟悉的領(lǐng)域深入下去,我們可以假設(shè),如果一位面試者在最擅長的項目中都答不上一些細(xì)節(jié)性的問題,那幾乎可以肯定你在任何其他領(lǐng)域的鉆研都不夠深入,你的技能雷達(dá)圖的面積肯定是一個很小的面積。也有像我之前所提到的一些臨時抱佛腳的面試者,也許知識方面達(dá)到了要求,但經(jīng)不起面試官對“工具”和“邏輯”的考察,這也毫無疑問會“悲劇”。
如果面試者的能力深度達(dá)到了最低的要求,下一步面試官會確定你能力的廣度,對于任何算法工程師,我都會隨機(jī) check 以下幾個知識點:
- NN,RNN,個別聚類算法,模型評估等知識的理解程度
- spark 的調(diào)優(yōu)經(jīng)驗,model serving 的主要方法,parameter server 的原理
- GAN,LSTM,online learning 的基本理解
- embedding 方法,attention 機(jī)制,multi task,reinforcement learning,online learning 的基本理解
對于廣度的檢查是比較隨意的,個別答不上來無傷大雅,但如果超過一半以上的知識點都 miss 了,可能有點說不過去。因為我要知道你是一個關(guān)注前沿,喜歡學(xué)習(xí)的人,試想除了你自己做過的項目,其他知識了了,那我可以肯定你不是一個對技術(shù)有熱情的人。很多面試官很看重“熱情”這個屬性,因為正是對技術(shù)的熱情支撐你今后的學(xué)習(xí),有些問題你可能不知道,你也要盡量用自己的理解去推導(dǎo),去討論。
好了,關(guān)于算法工程師面試中的能力雷達(dá)圖講完了,如果你嫌我太啰嗦,沒關(guān)系,甩給你一張思維框圖,你發(fā)給任何沒看過這篇文章的人,也都會對我說的內(nèi)容一目了然。
面試是一門玄學(xué),如何逆天改命?
但經(jīng)常參加面試的同學(xué)肯定有過這種感覺,即使面試過程非常順暢,即使你本身是一個面霸,甚至 god like,也經(jīng)常有失手的時候。所以很多同學(xué)把面試歸結(jié)為一門“玄學(xué)”。面試是一門玄學(xué),這句話有沒有道理?面試到底“玄”在哪里?為什么“強(qiáng)”如作者(臉皮太厚了)參加了 10 余場大中小公司面試,也有兩場沒拿到 offer,原因是什么,是因為玄學(xué)嗎?有什么方法能讓你在玄之又玄的面試中逆天改命嗎?我來嘗試給大家一個解答。
一個前提
首先這里有一個前提,敢稱面試為玄學(xué)的人必然是一個技能面積廣闊的人。你室友面了五家公司,有一家沒有給 offer,那可能是玄學(xué)導(dǎo)致的,你面了五家公司,一家都沒給 offer,那是你的實力太弱,請回家繼續(xù)苦練本事,擴(kuò)大你的技能雷達(dá)圖。
三個原因
在你實力足夠的前提下,通常是三個方面的原因?qū)е履銦o法得到 offer,這里面有主觀的原因,也有客觀的原因,甚至有不可抵抗力的因素,看看大家能不能找到屬于你的那一條。
玄學(xué)之一:你可能不是面試官想一起工作的人。
站在面試官的角度,我經(jīng)常把面試官給 candidate 通過的根本原因歸結(jié)為一句話“找到了一個技術(shù)合格且愿意一起工作的人”。
所以面試通過要滿足兩個基本要求,一是 **“技術(shù)合格”,二是“愿意一起工作”** 二者缺一不可。所以在你技能合格的前提下,面試官愿不愿意與你一起工作就成了一個關(guān)鍵且略主觀的問題。
但這看似草菅人命的標(biāo)準(zhǔn)其實是有背后的深刻邏輯的。往俗了說叫做看看 candidate 投不投緣,往大了說叫做符不符合公司文化,往實在了說,是要 check 你是不是能夠順利的與同事交流協(xié)作,得出合理的技術(shù)解決方案。
再進(jìn)一步說,從工作和學(xué)習(xí)的區(qū)別的角度看,工作中知識的重要性其實是逐漸在降低的,軟素質(zhì)的要求逐漸在升高,你很有實力,但你傳播實力的能力同樣重要,就像 Facebook 總在強(qiáng)調(diào)的 impact,Hulu 在晉升 senior 時要考察的跨組合作,其實都在考察你的溝通能力。如果你在面試中連你未來的同事都聊不來,那你如何去跟別的組的同事協(xié)調(diào)呢?你甚至?xí)?office 跟別的城市甚至別的國家的團(tuán)隊溝通,你又怎么能在復(fù)雜情況下一起解決問題?所以跟你的面試官聊得來是第一步。
為了驗證你未來會不會是一個合適的同事,面試官通常會用拋出一些開放性的問題與你討論,這個問題可能來自一些業(yè)界通用的問題,比如請你設(shè)計一個“千人千面”的電商主頁商品類別排序模型;也許會來自一些生活中的算法,比如請你設(shè)計一個微信隨機(jī)搶紅包時生成紅包金額的算法或機(jī)制;還有可能就來自面試官的工作實踐,比如我在構(gòu)建 CTR 模型的時候,遇到了嚴(yán)重的數(shù)據(jù) bias 的問題,有沒有什么辦法解決。
這類題的特點很明顯,非常開放和發(fā)散,開放到題目本身并不清楚。正是因為不清楚,所以面試官想要的效果是請你去主動提問題,我們一起去設(shè)計一個模型或系統(tǒng)來解決這個問題。在這樣的前提下,有下面兩類 candidate 可能會被我無情的拒掉:
- 面試過于被動,被面試官生硬的推著走。比如針對“微信搶紅包”這個問題,有的面試者就一句話,“每次用一個隨機(jī)數(shù)生成器生成一個紅包金額不就行了”。如果是這樣的話,你作為工程師的嚴(yán)謹(jǐn)性就蕩然無存了。面試官為了讓你繼續(xù)下去,還要向你提問,比如你考慮過沒有紅包金額的總體分布問題?等等。而面試官期待的是這個問題被你推動著走下去。比如在問題不太清楚的前提下你應(yīng)該反問面試官,每個紅包的金額有沒有上限和下限?需不需要考慮計算效率問題?我能否在紅包產(chǎn)生時就預(yù)算好所有紅包的金額等等。
- 思路受限,沒有嚴(yán)謹(jǐn)性、開放性和創(chuàng)新性。在實際的工程問題中,解決一個問題不可能只有一個 solution,解決一個問題的 solution 也不可能是一句話能說清楚的。比如我想跟你討論一下如何設(shè)計一個電商主頁商品類別排序模型??吹竭@個問題,很多人會直接說我想用 DNN 建一個 CTR prediction 模型來排序。這當(dāng)然可以,但最好請你拋出這個解決方案的時候嚴(yán)謹(jǐn)?shù)叵到y(tǒng)地想一想這個問題,順著工程實現(xiàn)的思路去跟面試官討論下去,比如 1、都能得到哪些數(shù)據(jù)和 feature;2、數(shù)據(jù)量有多大,數(shù)據(jù)延遲有多大;3、objective 如何制定;4、結(jié)合具體業(yè)務(wù),我能不能把商品類別當(dāng)作一個 item 來對待,或者把類別內(nèi)部的商品當(dāng)作一個 item 來對待;5、我能否使用 learning to rank /ctr prediction/ 多分類模型來解決這個問題;6、采用什么模型架構(gòu)更適合這個問題等等。在實際面試中,你可能無法想的這么細(xì),但請體會這個意思,作為算法工程師,你應(yīng)該足夠嚴(yán)謹(jǐn)、開放、活躍、創(chuàng)新。
玄學(xué)之二:你的技能樹無法精確滿足當(dāng)前 position 的要求
這個問題在社招的情況下尤為突出。很多資深的工程師說感覺面試表現(xiàn)不錯,算法題最優(yōu)解,設(shè)計題聊半天,面試官全程微笑,就是不發(fā) offer。這樣的情況絕大可能就是你的經(jīng)驗不能精確符合職位要求。
大家要注意“精確”二字。在有些情況下公司對面試者的工作經(jīng)驗的要求是精確到系統(tǒng)模塊級別的。同樣是計算廣告算法工程師,我們團(tuán)隊可能就想招一個做 yield optimization 或者“預(yù)算控制”算法的,你說你搞 CTR 搞得風(fēng)生水起,發(fā)了無數(shù)篇頂會,但你沒搞過這個方向,不能即插即用,那只能對不起,作為同行為你點個贊,但 offer 沒有。
前段時間還跟 facebook 一位前同事聊天,說他們就想招一個搞大規(guī)模并行機(jī)器學(xué)習(xí)平臺的人。那你說你是做 ranking 的,你用 tensorflow 或者 mxnet 用的飛起,但沒實現(xiàn)或者修改過源碼,沒自己搭建過 parameter server,那也只能對不起,點贊奉上,offer 沒有。
針對這類問題有沒有解決之道?其實是有幾點大家可以注意的,在找工作之前還是要盡可能的多讀幾遍 JD,找到那些跟一般 JD 有區(qū)別的,或者 JD 上明確寫的“最好有 XXX 經(jīng)驗”,看與自己的經(jīng)驗是否匹配;有條件的 candidate 可以多跟獵頭或者對方 hr 溝通一下,甚至能夠找到內(nèi)推渠道的同學(xué)可以找團(tuán)隊的成員了解一下內(nèi)幕消息,都是很有必要的。
玄學(xué)之三:不可抵抗力
上篇文章作者說到參加過十幾場面試,但還是有兩個公司沒有給 offer,一個是 eBay 美國總部,一個是百度某算法部門。eBay 掛掉的原因是當(dāng)時英語實在太差了,設(shè)計題和開放題答得很差,沒有跟面試官更有效的互動;百度的原因就是不可抵抗力,大約記得是 15 年底的時候,已經(jīng)拿到口頭 offer 了,但突然因為某事件全 baidu 的校招和社招 offer 都暫時停止了,這就屬于不可抵抗力因素了。雖然后來跟 baidu 又有聯(lián)系,但錯過了那個時間節(jié)點,也就不考慮了。
可能不可抵抗力的因素在北京這個“寒冷”的冬天會更多一些,有沒有解決之法?也是有的,大家沒事多去北京西郊臥佛寺拜一拜可能會逆天改命。
現(xiàn)在可以把算法工程師面試的技能框圖全部補(bǔ)全了。
在文章結(jié)束前給身在寒冬的同學(xué)幾點建議:
- 寒冬就應(yīng)該廣積糧,緩稱王,猛攻自己的技能弱點,讓自己更有實力迎接春天;
- 中高端職位永遠(yuǎn)不缺,真正合格的算法工程師永遠(yuǎn)是稀有物種,努力做金字塔中上部的那塊磚;
- 好的 offer 永遠(yuǎn)是為平時注重積累的人準(zhǔn)備的,突擊準(zhǔn)備也許會增加你的知識廣度,但增加各方面技能的深度需要你無時無刻的積累和鉆研,遇到問題多問為什么,多注重問題的細(xì)節(jié)。
- 最后祝看過這篇文章的同學(xué)都能認(rèn)真準(zhǔn)備,拿到滿意的 offer。
以上就是100唯爾(100vr.com)小編為您介紹的關(guān)于算法工程師的知識技巧了,學(xué)習(xí)以上的掌握這些技能,你就離一個優(yōu)秀的算法工程師不遠(yuǎn)了!知識,對于算法工程師的幫助都是非常大的,這也是新手學(xué)習(xí)信息技術(shù)所需要注意的地方。如果使用100唯爾還有什么問題可以點擊右側(cè)人工服務(wù),我們會有專業(yè)的人士來為您解答。
本站在轉(zhuǎn)載文章時均注明來源出處,轉(zhuǎn)載目的在于傳遞更多信息,未用于商業(yè)用途。如因本站的文章、圖片等在內(nèi)容、版權(quán)或其它方面存在問題或異議,請與本站聯(lián)系(電話:0592-5551325,郵箱:help@onesoft.com.cn),本站將作妥善處理。
算法工程師課程推薦
信息技術(shù)熱門資料
信息技術(shù)技術(shù)文檔
- 1?呼和浩特工務(wù)段卓資東高鐵實訓(xùn)場建設(shè)項目議價采購二次公告
- 2鐵小微帶你看:大南鐵國家高鐵實訓(xùn)基地,超牛!
- 3尚義職教中心首屆高鐵專業(yè)學(xué)生赴北京實習(xí)實訓(xùn)
- 4技能展示 | 高鐵專業(yè)實訓(xùn)技能展示
- 5磨礪青春、出彩中職——高鐵專業(yè)實訓(xùn)風(fēng)采
- 6陜西長城鐵路技師學(xué)院,一所把高鐵實訓(xùn)搬進(jìn)課堂的高等院校
- 7喜訊!喜訊!1:1仿真高鐵實訓(xùn)設(shè)備進(jìn)入梧州電子科技學(xué)校
- 8云南工程職業(yè)學(xué)院高鐵實訓(xùn)基地建成啟用
- 9高鐵實訓(xùn)課走進(jìn)無錫東站!
- 10職教標(biāo)準(zhǔn)I高等職業(yè)學(xué)校城市軌道交通通信信號技術(shù)教學(xué)標(biāo)準(zhǔn)