藍Luckyclover
算法工程師并不是一個吃青春飯的職業(yè)。
在大家傳統(tǒng)的思想觀念中,一直認為IT行業(yè)都是吃青春飯的,什么大量裁員、中年危機等,都無一不與IT界相關(guān)。實際上,算法工程師并不是一個吃青春飯的職業(yè),反而隨著經(jīng)驗的累積變得越老越吃香。
但是不管什么時候,算法工程師始終要保持高度的敏感性,具備一定的創(chuàng)新性,有很強的想象力和推理能力,還需要具備較強的危機意識,從而不斷吸取新的知識技能,畢竟生產(chǎn)在進步,科技在創(chuàng)新。
算法工程師的發(fā)展前景
總體來說,算法工程師就業(yè)前景依舊不錯。目前,算法工程師仍是一個高端又緊俏的崗位,薪資高,就業(yè)形勢好。
雖然隨著行業(yè)的不斷發(fā)展,算法工程師的競爭壓力會不斷增加,但只要自己保持足夠的能力,注重自己編程實踐能力的提升,不斷跟隨著時代一起進步,就能不斷得到發(fā)展,提升自己的就業(yè)競爭力。
z未成年
這周面試了一個候選人,面CV/DL/AI的TechLead。簡歷很牛逼,做過很多CV的工業(yè)項目,涵蓋detection, OCR, face recognition, fire/smoke detection等好多項目. 給我們講了45分鐘做得項目,講得很自信。我挑了一個大項目,我說你在這個項目中的貢獻是什么?他說整個項目的所有算法部分都是他實現(xiàn)的。OK,我開始進行深度學(xué)習(xí)的技術(shù)面。我先問了兩個深度學(xué)習(xí)的中等難度的問題,他都說不知道。有點冷場,那我趕緊問點簡單的吧。我說,深度學(xué)習(xí)網(wǎng)絡(luò),進行分類時有哪些loss?他猶豫了一下,回答: relu.瞬間把見過大場面的我還有同事都震住了。面試另外一個人,我說目前我們檢測主要用yolo,他反問了一句,怎么不用tensorflow?......算法工程師的目標(biāo)既不是精通各種框架,會調(diào)各種包,也不是會發(fā)paper就是成功,而是有能力解決實實在在被提出的算法問題。這里的問題可能來源于業(yè)務(wù),也可能來源于長遠的戰(zhàn)略部署,甚至可能來源于一次大領(lǐng)導(dǎo)的拍腦袋。不管怎么說,個人覺得能獨立分析,拆解,建模和解決算法問題的算法工程師就是勝任的,否則再怎么花里胡哨都是差勁的。從反面回答一下,我碰到什么樣的算法工程師會認為他/她是優(yōu)秀甚至是卓越的大佬,并選擇緊緊抱住大腿不松手。本文很多觀點也是來源于不同公司的前輩們討論過這個問題,這里也感謝大家的指點??偟脕碚f,以下幾個特點是我特別留意的,如果碰到了我就會認為這位很厲害:基礎(chǔ)非常扎實。問他/她一些比較經(jīng)典的算法,能夠很清晰地說出算法的特點、適用的場景、坑點、里面的細節(jié)等等。工程能力很強。我是一位“工程狗”,自己的工程能力很菜,但對工程能力強的同學(xué)非常崇拜 Orz 如果碰到一位算法工程師的工程能力很強,僅憑這一點,我就認為他/她基本上一定是大佬Orz重視代碼的測試。算法崗的工作并不完全就是調(diào)參煉丹,往往也是需要去寫一些代碼的,例如寫些spark/sql代碼獲得特征,寫模型等等。既然是寫代碼,就可以而且應(yīng)該在其中加上測試。實際上,根據(jù)我的經(jīng)驗,如果碰到某個其他地方好用的模型在自己的場景下效果很差(不reasonable得差),那很可能是數(shù)據(jù)、特征的處理代碼有問題,或者模型的代碼有問題。這種問題可以用單元測試(斷言等)來提前發(fā)現(xiàn),也可以用一些sanity check來發(fā)現(xiàn)。對場景業(yè)務(wù)的認識很深刻。軟件工程沒有銀彈, 機器學(xué)習(xí)也沒有銀彈。 用什么樣的特征、什么樣的預(yù)估目標(biāo)、什么樣的評價指標(biāo)、甚至什么樣的模型,這些東西都是要與場景業(yè)務(wù)結(jié)合的。換言之,工業(yè)屆里,業(yè)務(wù)先于技術(shù)。很多大神在這個方面做得尤其出色。在實際場景中,注重先把整個pipeline搭建起來。個人認為,這一點在實際應(yīng)用中往往應(yīng)該是最優(yōu)先的。搭建起來之后,機器學(xué)習(xí)系統(tǒng)的上下游也都可以工作,也可以更好地判斷系統(tǒng)的瓶頸所在,把好剛用在刀刃上。這其實就與做開發(fā)的程序設(shè)計一樣,較早地抽象出比較好的接口、搭建一個系統(tǒng)原型是很重要的。能夠持續(xù)學(xué)習(xí)新的知識,跟蹤最新的成果,對各種模型的motivation有自己的理解,有自己的insight與vision。這里舉幾個我自己學(xué)習(xí)過程中碰到的例子來說明一下這點。例如,推薦系統(tǒng)中,在Youtube 16年的推薦paper中,為何step1和step2的優(yōu)化目標(biāo)是不一樣的?人臉檢測中,MTCNN為何要分為多階段?landmark檢測中,3000FPS為何要分為兩個階段?(這些是設(shè)計相關(guān)的motivation)Google的wide&deep為何在Google store的場景下效果好,而在其他的場景下效果不一定好(這是對場景的motivation理解)?文字檢測中,PixelLink為何要引入link?OCR中,CRNN為何要引入一個RNN?機器學(xué)習(xí)系統(tǒng)中,LightGBM是如何針對xgboost存在的哪些缺點進行改進的?(這些是對改進的motivation理解)我認識的一些大佬們會主動結(jié)合文章思考這些問題,有的時候會有與paper所claim的不同的理解(畢竟寫paper的story很多時候也不一定靠譜,大家都懂),甚至還會做實驗驗證自己的理解。然后拿這些問題來考我,在我思考不出來后再告訴我他們的理解與實驗結(jié)果Orz做多數(shù)實驗之前有自己的假設(shè),根據(jù)實驗結(jié)果會根據(jù)實驗結(jié)果做進一步實驗,或修正假設(shè)、或進一步探究。自己參與的項目,對其中與自己比較相關(guān)的內(nèi)容的細節(jié)比較清楚,自己負責(zé)的部分能夠了如指掌。能系統(tǒng)性地分析出機器學(xué)習(xí)整個系統(tǒng)的瓶頸所在,并提出相應(yīng)的解決方案。當(dāng)系統(tǒng)效果不好的時候,知道如何去debug,找到問題所在,改進系統(tǒng)的性能
女王Z大人
從體力和經(jīng)歷來說算是,算法工程師屬于高體力和腦力的勞動,如果到了一定的年齡,會有跟不上的時候,就算是一段時間的工作經(jīng)歷,不過以后可以有其他的發(fā)展方向。
算法工程師是做數(shù)據(jù)模型進行推薦、分類、識別、預(yù)測等工作的建模型算法工程師,通常JD上也寫成數(shù)據(jù)挖掘工程師、深度學(xué)習(xí)工程師等。這類大體的工作就是結(jié)合業(yè)務(wù)場景,選擇合適的算法模型,將數(shù)據(jù)進行處理后使用模型獲得結(jié)果,也被戲稱為“調(diào)參工程師”。
算法工程師可以考慮轉(zhuǎn)行自由職業(yè),很多國家成熟的IT環(huán)境讓程序員成為IT自由職業(yè)者似乎并沒有那么難,方式主要可以分為線上和線下兩種。
在大數(shù)據(jù)行業(yè)內(nèi)生存的時間越久,算法工程師其經(jīng)驗也會越得到肯定,這也是大多數(shù)資深I(lǐng)T人士定義大數(shù)據(jù)或?qū)?0、60歲的“老”專家的原因,很多IT從業(yè)者試圖向大數(shù)據(jù)轉(zhuǎn)型。
louisbellen
在大家傳統(tǒng)的思想觀念中,一直認為IT行業(yè)都是吃青春飯的,什么大量裁員、中年危機等,都無一不與IT界相關(guān)。實際上,算法工程師并不是一個吃青春飯的職業(yè),反而隨著經(jīng)驗的累積變得越老越吃香。但是不管什么時候,算法工程師始終要保持高度的敏感性,具備一定的創(chuàng)新性,有很強的想象力和推理能力,還需要具備較強的危機意識,從而不斷吸取新的知識技能,畢竟生產(chǎn)在進步,科技在創(chuàng)新。
算法工程師年輕的時候薪酬都很高,并且十分搶手,實在不行還可以轉(zhuǎn)崗,在IT行業(yè)里,可以說所有的職位吃的都是青春飯,這是國人的印象,但事實也確實如此,不過大家可以不必擔(dān)心,雖然吃的是青春飯,但是到了40+這個年齡,還是可以轉(zhuǎn)崗,或者進入管理層的,大可不必擔(dān)心。
優(yōu)質(zhì)工程師考試問答知識庫