20 萬、50 萬、100 萬年薪的演算法工程師在能力素質模型上有哪些差距?
演算法領域職位這兩年大熱,魚目混珠的筒子不少,一直很困惑於如何甄別的問題。
1. 在回答時,盡量不要用一些似是而非的諸如「項目經驗豐富」、「工作年頭長」、「在大平台工作」、「背景好」、「聰明」、「學習能力強」等看似有理,其實在操作中全無用處的維度來回答;
2. 盡量使用定量,或者至少是定性的要素來界定,比如「主導過什麼性質什麼級別的項目」,「在演算法建模或演算法優化中的具體表現和指標」,「處理的數據量級和複雜非標程度」,「為實際的業務帶來怎樣的增長和價值提升」等等;
3. 從我接觸的為數不算多的演算法領域人才的經驗,能夠解決什麼樣的問題可能是一個甄別的要點,這裡最好能夠詳細闡述能夠解決的問題的性質、範圍、落地模式、複雜程度等等維度;
4. 個人運氣和機緣確實會在一定時間區間內對一個演算法工程師的收入產生較大的影響,但從長期來看,這樣的因素又會趨於弱化,所以不要用運氣的成分來概括一個演算法工程師的市場價值表現,那是沒有誠意的;
5. 演算法團隊的 Leader 也可以談談你們在給演算法候選人定薪的時候都會參照什麼樣的標準和因素,但如果是「他之前 30 萬,所以我給他 40 萬」之類的回答就算了;
6. 如果能夠順便說說一個演算法工程師如何可以從 20 萬進階到 50 萬乃至 100 萬的高度,那就更加完美了。
在此敬謝。
公元七世紀,在車遲國國家氣象局組織的一次求雨活動中,虎力、鹿力、羊力三位大仙成功地祈下甘霖,於水火中救了黎民。老國王雖然不明就裡,卻從此尊他們為國師,奉道教為圭臬。
本世紀,演算法工程師們的境遇也差不多:早些年,信奉糙快猛主義的大佬們覺得他們飽食終日、無所用心,沒工作只好在學校混博士,靠數據上的障眼法裝神弄鬼。可是,隨著去年AlphaGo大破李世石,大佬們在心底喊出「我操」的同時,慌不擇路地把各種搞劫持、送外賣的生意包裝成人工智慧,並紛紛請來幾位懂演算法的國師加持。雖然他們對國師們所做的事智商上並不理解,卻虔誠地希望他們快點兒求下雨來。
於是,演算法工程師的身價也水漲船高了。各門派工程師不論過去練的是java、php還是excel,都放棄了最好語言的爭論,抄起了深度學習,發誓重新修鍊成演算法工程師。
因此,看到題主這樣充滿銅臭味兒的問題,我十分欣慰。雖說在北京,20萬已經基本不可能招到靠譜兒的演算法工程師了,還是姑且用上面的數字做個參照,談談演算法工程師的三個層次吧。(這裡說的演算法,並不是計算機系本科課程《演算法與數據結構》里那個演算法。那門課里講的,是排序、查找這類"確定性演算法";而這裡我們說的,是用統計方法對數據進行建模的"概率性演算法"。)下文中會提到一些演算法和模型,但不過是為了舉例說明概念,無需深究,有興趣鑽研的朋友可以自己查閱資料。
第一層次"Operating":會使用工具
這個層次的工程師,對常用的模型比較熟悉,來了數據以後,好歹能挑個合適的跑一下。
達到這個層次,其實門檻不高。早些年,您只要掌握了什麼叫LDA、哪叫SVM,再玩過幾次libnear、mahout等開源工具,就可以拿到數據後跑個結果出來。到了深度學習時代,這件事兒似乎就更簡單了:管它什麼問題,不都是拿神經網路往上堆嘛!最近,經常會遇到一些工程師,成功地跑通了Tensorflow的demo後,興高采烈地歡呼:我學會深度學習了,我明天就統治人類了!
這事要真這麼簡單,我是茄子。任憑你十八般開源工具用的再熟,也不可能搞出個戰勝柯潔的機器人來。這裡要給大家狠狠澆上一盆冷水:進入這個領域的人,都要先了解一個「沒有免費的午餐定理」,這個定理的數學表達過於晦澀,我們把它翻譯成並不太準確的文藝語言:
如果有兩個模型搞一次多回合的比武,每個回合用的數據集不同,而且數據集沒什麼偏向性,那麼最後的結果,十有八九是雙方打平。
管你是普通模型、文藝模型還是2B模型,誰也別瞧不起誰。考慮一種極端情況:有一個參賽模型是「隨機猜測」,也就是無根據地胡亂給個答案,結果如何呢?對,還是打平!所以,請再也不要問「聚類用什麼演算法效果好」這樣的傻問題了。
這就很尷尬了!因為掌握了一堆模型並且會跑,其實並沒有什麼卵用。當然,實際問題的數據分布,總是有一定特點的,比方說人臉識別,圖中間怎麼說都得有個大圓餅。因此,問「人臉識別用什麼模型好」這樣的問題,就有意義了。而演算法工程師的真正價值,就是洞察問題的數據先驗特點,把他們表達在模型中,而這個,就需要下一個層次的能力了。
會使用工具,在演算法工程師中僅僅是入門水平,靠這兩把刷子解決問題,就好比殺過兩隻雞就想做腹腔手術一樣,不靠譜兒程度相當高。如果不是在薪酬膨脹嚴重的互聯網界,我覺得20萬是個比較合理的價格。
第二層次"Optimization":能改造模型
這個層次的工程師,能夠根據具體問題的數據特點對模型進行改造,並採用相應合適的最優化演算法,以追求最好的效果。
不論前人的模型怎麼美妙,都是基於當時觀察到的數據先驗特點設計的。比如說LDA,就是在語料質量不高的情況下,在PLSA基礎上引入貝葉斯估計,以獲得更加穩健的主題。雖說用LDA不會大錯,但是要在你的具體問題上跑出最好的效果,根據數據特點做模型上的精準改造,是不可避免的。
互聯網數據這一現象更加明顯,因為沒有哪兩家公司擁有的數據是相似的。百度的點擊率模型,有數十億的特徵,大規模的定製計算集群,獨特的深度神經網路結構,你能抄么?抄過來也沒用。用教科書上的模型不變應萬變,結果只能是刻舟求劍。
改造模型的能力,就不是用幾個開源工具那麼簡單了,這需要有兩方面的素養:
一、深入了解機器學習的原理和組件。機器學習領域,有很多看似不那麼直接有用的基礎原理和組件。比方說,正則化怎麼做?什麼時候應該選擇什麼樣的基本分布?(如下表) 貝葉斯先驗該怎麼設?兩個概率分布的距離怎麼算?當你看到前輩高人把這些材料烹調在一起,變成LDA、CNN這些成品菜肴端上來的時候,也要想想如果自己下廚,是否了解食材,會不會選擇和搭配。僅僅會吃幾個菜,說出什麼味道,離好廚師差的還遠著呢。
二、熟練掌握最優化方法。機器學習從業者不懂最優化,相當於武術家只會耍套路。這就跟雷公太極和閆芳大師一樣,實戰起來一定是鼻青臉腫。管你設計了一個多牛逼的模型,如果無法在有限的計算資源下找出最優解,那麼不過是個花瓶罷了。
最優化,是機器學習最、最、最重要的基礎。你要知道,在目標函數及其導數的各種情形下,應該如何選擇優化方法;各種方法的時間空間複雜度、收斂性如何;還要知道怎樣構造目標函數,才便於用凸優化或其他框架來求解。而這些方面的訓練,要比機器學習的模型還要紮實才行。
拿大家以為"以不變應萬變"的深度學習舉個例子。用神經網路處理語音識別、自然語言處理這種時間序列數據的建模,RNN(見上圖)是個自然的選擇。不過在實踐中,大家發現由於「梯度消失」現象的存在,RNN很難對長程的上下文依賴建模。而在自然語言中,例如決定下面的be動詞是「is」還是「are」這樣的問題,有可能往前翻好多詞才能找到起決定作用的主語。怎麼辦呢?天才的J. Schmidhuber設計了帶有門結構的LSTM模型(見下圖),讓數據自行決定哪些信息要保留,那些要忘掉。如此以來,自然語言的建模效果,就大大提高了。大家初看下面兩張RNN與LSTM的結構對比,面對憑空多出來的幾個門結構可能一頭霧水,唯有洞徹其中的方法論,並且有紮實的機器學習和最優化基礎,才能逐漸理解和學習這種思路。
當然,LSTM這個模型是神來之筆,我等對此可望不可及。不過,在這個例子里展現出來的關鍵能力:根據問題特點調整模型,並解決優化上的障礙,是一名合格的演算法工程師應該追求的能力。年薪50萬能找到這樣的人,是物有所值的。
第三層次"Objective":擅定義問題
這個層次的工程師(哦,似乎叫工程師不太合適了),扔給他一個新的實際問題,可以給出量化的目標函數。
當年,福特公司請人檢修電機,斯坦門茨在電機外殼畫了一條線,讓工作人員在此處打開電機迅速排除了故障。結賬時,斯坦門茨要1萬美元,還開了個清單:畫一條線,1美元;知道在哪兒畫線,9999美元。
同樣的道理,在演算法領域,最難的也是知道在哪裡畫線,這就是對一個新問題構建目標函數的過程。而有明確的量化目標函數,正是科學方法區別於玄學方法、神學方法的重要標誌。
目標函數,有時能用一個解析形式(Analytical form)寫出來,有時則不能。比方說網頁搜索這個問題,有兩種目標函數:一種是nDCG,這是一個在標註好的數據集上可以明確計算出來的指標;另一種則是人工看badcase的比例,顯然這個沒法用公式計算,但是其結果也是定量的,也可以作為目標函數。
定義目標函數,初聽起來並沒有那麼困難,不就是制定個KPI么?其實不然,要做好這件事,在意識和技術上都有很高的門檻。
一、要建立「萬般皆下品、唯有目標高」的意識。一個團隊也好、一個項目也好,只要確立了正確的、可衡量的目標,那麼達到這個目標就只是時間和成本的問題。假設nDCG是搜索的正確目標函數,那麼微軟也好、Yahoo!也好,遲早也能追上Google,遺憾的是,nDCG這個目標是有點兒問題的,所以後來這兩家被越拉越遠。
所謂「本立而道生」:一個項目開始時,總是應該先做兩件事:一是討論定義清楚量化的目標函數;二是搭建一個能夠對目標函數做線上A/B測試的實驗框架。而收集什麼數據、採用什麼模型,倒都在其次了。
二、能夠構造準確(信)、可解(達)、優雅(雅)的目標函數。目標函數要儘可能反應實際業務目標,同時又有可行的優化方法。一般來說,優化目標與評測目標是有所不同的。比如說在語音識別中,評測目標是「詞錯誤率」,但這個不可導所以沒法直接優化;因此,我們還要找一個「代理目標」,比如似然值或者後驗概率,用於求解模型參數。評測目標的定義往往比較直覺,但是要把它轉化成一個高度相關,又便於求解的優化目標,是需要相當的經驗與功力的。在語音建模里,即便是計算似然值,也需要涉及Baum-Welch等比較複雜的演算法,要定義清楚不是簡單的事兒。
優雅,是個更高層次的要求;可是在遇到重大問題時,優雅卻往往是不二法門。因為,往往只有漂亮的框架才更接近問題的本質。關於這點,必須要提一下近年來最讓人醍醐灌頂的大作——生成對抗網路(GAN)。
GAN要解決的,是讓機器根據數據學會畫畫、寫文章等創作性問題。機器畫畫的目標函數怎麼定?聽起來是一頭霧水。我們早年做類似的語音合成問題時,也沒什麼好辦法,只能找人一句句聽來打分。令人拍案叫絕的是,Ian GoodFellow在定義這個問題時,採取了下圖的巧妙框架:
既然靠人打分費時費力,又不客觀,那就乾脆讓機器打分把!好在讓機器認一幅特定語義的圖畫,比如說人臉,在深度學習中已經基本解決了。好,假設我們已經有一個能打分的機器D,現在要訓練一個能畫畫的機器G,那就讓G不斷地畫,D不斷地打分,什麼時候G的作品在D那裡得分高了,就算是學成了。同時,D在此過程中也因為大量接觸仿品而提升了鑒賞能力,可以把G訓練得更好。有了這樣定性的思考還不夠,這樣一個巧妙設計的二人零和博弈過程,還可以表示成下面的數學問題:
這樣一個目標,優雅得象個哲學問題,卻又實實在在可以追尋。當我看到這個式子時,頓時覺得教會機器畫畫是個不太遠的時間問題了。如果你也能對這樣的問題描述感到心曠神怡,就能體會為什麼這才是最難的一步。
一個團隊的定海神針,就是能把問題轉化成目標函數的那個人——哪怕他連開源工具都不會用。100萬找到這樣的人,可真是撿了個大便宜。
在機器學習領域,演算法工程師腳下的進階之路是清晰的:當你掌握了工具、會改造模型,進而可以駕馭新問題的建模,就能成長為最優秀的人才。沿著這條路踏踏實實走下去,100萬並不是什麼問題。什麼?您說還有300萬的呢?這個不用眼熱,人家只不過把你寫代碼的時間都用來跳槽了而已。
[我是@北冥乘海生,想吸收更多負能量,請大家關注我的公眾號「計算廣告」(Comp_Ad)和知乎專欄「計算廣告」!]
1. 20萬。
北京的一線二線互聯網公司給應屆生的白菜價格:科班出身,演算法相關方向的碩士生基本都能拿到;優秀的本科生(ACM銅獎之上或有一定深度的項目經驗)無演算法相關經歷有一些也能拿到,公司願意培養你;博士生,研究經歷一般的能拿到。其實這裡波動範圍很大,有些公司會直接開出30萬到40萬的應屆生offer,應屆生是公司的未來,優秀的應屆值這個錢。演算法工程師不要說和學歷無關,恰恰行業內都重視學歷,重視你是否是科班出身,碩士期間做過機器學習,模式識別工作的明顯和普通候選者有差別。一般情況下,本科生基本不會被招聘到演算法崗位,研究生一般都經過研究鍛煉,演算法工程師需要該能力。這不是歧視本科生,行業現狀如此。2. 50萬。
應屆就進入一線和二線互聯網公司做演算法,一般BAT工作兩到三年出來的優秀者(在相關方向有熟練的把握,具備一定深度,例如廣告演算法涉及的各個環節,相關做法以及能帶來多少效果)能拿到該數目甚至更多;二線公司出來的可能只能到30至40萬;優秀博士生應屆畢業(深入研究方向,有多項成功的研究經歷)就能到該數字甚至更多。想表達的是大家都注重出身經歷。當然我說的是大致情況,我有一個師弟,碩士就是搞模式識別相關,在國企搞一年解決了戶口,去了阿里給了p6,40萬。我有一個同屆同學,在創業公司搞了3年半,然後去了騰訊,T3.1,給了60萬。運氣占很大成分,例如對方缺人,急需,這時薪資一般都不是問題。3. 100萬。
阿里P7或p8,百度T7以上,騰訊T3.2之上,二線公司的高級技術經理/總監(非普通級別技術經理),融到很多錢的創業公司的演算法專家,能達到這個數目。一般是那些在演算法方向工作五六年之上,在本方向積累很深,並了解其他相關方向,對行業進展了如指掌的人。100萬有一定難度,但對於有些人來說很簡單,這也和崗位匹配有關,例如一些重視數據演算法的公司願意砸錢招人你很容易到這個數,一些不重視數據演算法的公司也許你花很多年也到不了。我還沒到100萬,可能沒法有過多的陳述。認識一個師兄,騰訊呆到6年的時候,100萬,級別3.3。一個同學,碩士畢業工作五年,知名ai公司,近期要跳槽,人家給出120萬。樓主說的『』你現在工資多少,我給你加多少『』,儘管聽上去很粗暴,但是行業內恰巧如此。只要你的級別夠了,達到了薪資範圍空間,例如百度T7能夠上100萬,hr就會以你當前工資為基準,去和你談,別想著當前30萬,人家給你100萬,你當前70到80萬才有一定機會。當前的工資決定了你下一次跳槽會漲多少,我們需要正視這種現象。演算法行業很火爆,工資高,但門檻也高,現在有很多人去參加培訓或者自學,想轉到演算法行業,大家都努力這是好事,但是你不得不面對一個殘酷的現實:在用人單位眼裡,大部分培訓或自學要比科班出身低一截。你工作兩三年,然後去參加培訓、去應聘,你將可能是去和應屆生競爭,如果你沒有學紮實,並且有較深入的實踐,超出大部分人的水平,用人單位更願意招科班出身的應屆生。因此,請更努力,不要浮於表面,我面試的時候遇到太多這種候選者了,甚至為他們感覺可惜,大多人被耽誤了。
不談虛的能力,只談現在國內的行情。
一. 20W(我覺得改為25W-35W較好,實際上現在20W招不到合格的演算法工程師了)
相關方向的應屆本科/碩士,能拿到BAT offer的那種。這個門檻其實很低,有不錯的代碼能力,對機器學習有一些很基本的掌握就行。
BAT演算法工程師的面試,一方面是要能寫代碼,其實挺多也就是leetcode中等題的水平,ACM銅牌以上就無壓力了,沒搞過ACM的多刷刷leetcode這方面也不成問題;一方面是能跟面試官扯一些機器學習的東西。
理論基礎其實面試官也好不到哪去,你隨便問BAT那些在職的演算法工程師一些偏理論的機器學習問題,也能把他們問懵逼。所以面試機器學習,理論基礎你只要好好上過課就沒問題了。項目經驗,只要做過實驗室的相關項目,或者有對應的實習經歷,或者有相應的競賽經歷(kaggle,阿里天池等等)也沒問題了。
二. 50W
有名實驗室的優秀碩士/勉強能畢業的博士。 和幾個清華、港中文、港科大的同學聊過,普遍表示他們實驗室能畢業的博士offer沒有低於50W的。很簡單的道理,大部分知名實驗室對博士的畢業標準就是三篇一作頂級會議;現在AI的行情,有三篇一作頂會在手,50W的offer是不難拿到的。
在那些實驗室沒達到這個標準,是沒法博士畢業的。當然也有部分碩士畢業的時候就有三篇一作頂會,這種屬於很優秀的了,拿50W年薪也是可以的。至於那種本科畢業就有三篇一作頂會的,應該是大神了,基本會去美帝top學校讀PhD,一般不會直接去工作的。
三. 100W
100W及以上的演算法工程師,基本屬於科學家了,大多數在這個領域的知名公司擔任leader的角色。
知乎這樣的人其實挺多的,保護別人的隱私,我也不一個個艾特出來。
這些人大多是名校博士,導師在業界非常有名。博士期間發表了很多頂會論文,拿過Google PhD fellow/Microsoft Fellow,或者做出了非常有影響力的工作。
知乎上有一個問題 知乎 - 知乎
最高贊的回答列舉了許多知乎上的演算法大神。目測這個回答裡面列的幾乎所有演算法方向在工業界工作的人,都屬於100W及以上的級別。
當然他列的人也是存在檔次差距的,有些已經在業界算是功成名就,遠不止百萬年薪了。另外他也列的不全,據我觀察知乎上還有不少100W級的大神。
總而言之,什麼樣的人能成為一個演算法團隊的leader ?
要麼讀博士期間師從領域內大牛,並且有很好的論文,是這個領域的專家;要麼在工業界做出了成果,有相當的資歷;要麼就是那種天賦異稟的大神,姚班的IOI金牌,這種本科直接年薪百萬也不是問題,比如今年姚班的陳立傑和范浩強。
眾所周知,學術是一個圈,而且還是一個挺小的圈;往往一個方向最好的幾家實驗室,還彼此認識,關係不錯。工業界雖然是誰行誰上,但演算法方向畢竟偏學術,特點非常接近學術界,帶有圈子屬性。現在演算法人才不僅貴,而且難招。大公司跟名校建立合作關係,請學術大佬來當首席科學家,他的博士也全都打包過來;創業公司利用自身的人脈關係,比如face++能招到不少清華優秀學子(創始人清華姚班),商湯科技招了很多香港中文大學的博士(創始人香港中文大學教授)等等。
如果你能進入高端的學術圈,跟著一個大牛導師讀PhD絕對是磨刀不誤砍柴工的。這可以給你帶來異常強大的業界人脈,和大佬們談笑風生甚至一起合作的機會。你會發現業界那些牛逼閃閃,名氣響亮的人,可能就是你的師父//師叔/師祖/師兄/師姐。找實習找工作都不按流程走,打個招呼就過去了。
當然了,火熱的行情也讓申請變得很難。機器學習方向,知名實驗室知名導師的PhD申請,比以前競爭激烈了很多。看知乎的這個問題 知乎 - 知乎,你就知道現在這個方向的申請有多難了
這個問題自我從5月6日提出,不到2周的時間,獲得了超過25萬的瀏覽,以及2000多人的關注,應該說,作為一類偏專業的問題,熱度和關注度還是可以的。其間,也有不少朋友給出了不錯的回答,在此一併表示感謝!
但坦率地講,所有回答的質量是有點差強人意的。泛化的回答多,具象的回答少,模糊的回答多,清晰的回答少,帶有誤導性主觀性的回答多,客觀且帶有啟迪作用的回答少,天馬行空的回答多,邏輯嚴謹的少。
至於那些帶有實證數據支撐,案例解讀的,更是少之又少。
我不知道有多少有志於演算法的同學可以從這些答案中得到有效的養分,並可以身體力行。
至於說要從中提煉出演算法人才的知識圖譜和成長路徑,更是緣木求魚。
某些所謂的大咖,這樣看來也不過如此吧。
我不知道他們真的是肚裡有貨倒不出來,還是本來肚子裡面就沒什麼過硬的貨色。
anyway,還是期待更多精彩的回答!
我要是說我自己干,自己找項目做,一個月十來萬,給別人干,人家一個月給一萬,然後嫌我是個自學的,還在項目結尾款之前急忙把我開了,所以區別主要是得自己干而不是給別人干,你肯定要說我裝逼。
主要區別是學歷,你本科生自學的,能做事,有項目經驗,自己能拉完一個項目,老闆數據都不看,亂提數據假設,然後你把他的假設和你的假設各建立模型,倆準確率拿給他看,他還會說是你中間寫錯了,本科生自學的不可能比博士生(就算不是做這個的)數學更好。而且還會因為你個本科自學的敢不聽話,肯定是個刺頭,對你有意見。
而如果你學歷高點,啥項目經驗沒有,別人也會覺得高學歷肯定厲害,不做事也是個吉祥物。高薪+股份求著你去。
所以學歷才是最重要的。 (????д????)
那如果你和我一樣是個本科畢業,非相關專業自學的失敗者,學歷這塊沒救了,又想上升咋整?
把你現在的工作辭了,多去見不同的人,想想如何項目拿下來自己干。反正談生意,項目管理,項目分解,分解後如何拆分,分配給不同的人你都會,以及不同的人脈資源你都有。自己操作個半年,市場需求大得很,很快就可以月十來萬。幹嘛非得讓那些目光短淺只看得到學歷的勢利眼壓榨你呢?最近看書,有感而發,搶答下。
首先,個人覺得薪水反應不了演算法工程師的真正水平。我曾經給一個創業的朋友聊過這個話題,他說小公司有時候為了吸引人才,同樣的水平,開的薪水可能比大公司高。因此我不聊薪水,我也聊下演算法工程師的級別。
吳軍老師在自己的書中按照物理學家的朗道的觀點,劃分了工程師的「朗道級別」。我先引用吳軍老師的話,解釋下「朗道級別」。
按照朗道的理論,物理學家可以分為五個等級,第一級最高,第五級最低。每一級之間能力和貢獻相差十倍。
在第一級當中朗道列出了當時十幾個世界級的大師包括波爾、狄拉克等人。
在第二級中全世界也只有幾十位,朗道將自己列入了2.5級,在獲得了諾貝爾獎後,將自己提升到了1.5級。
在所有的物理學家中朗道給出了一個零級的物理大師那就是愛因斯坦。
朗道等級最核心的思想是,人和人的差距,能力和能力的差距是數量級的差別而不是通常人們想像的差一點點。
仿照朗道的方法,吳軍老師也將工程師分為了五個等級。對於其專業的人士也可以依次分類,分類的原則大致如下,
第五級:能獨立解決問題,完成工程工作。
第四級:能指導和帶領其他人一同完成更有影響力的工作。
第三級:能獨立設計和實現產品並且在市場上獲得成功。
第二級:能設計和實現別人不能做出的產品,也就是說他的作用很難取代。
第一級:開創一個產業。
個人覺得,按照這個級別,我不說演算法工程師,我叫演算法從業者吧,其實也可以分為五級,我說下自己對頭兩個級別的理解:
第一級: Yann LeCun、Yoshua Bengio和Geoffrey Hinton 等,開創了深度學習時代;
第二級: 能實現一個類似Caffe的框架
講真,剩下的三級,我覺得比較難總結,就不寫了
下面吳軍老師的文章鏈接
工程師的五個等級 - Inspire - 博客頻道 - CSDN.NET世界正在起變化。
我不是cs專業的,而是在最苦逼行業之一:電子。為什麼說苦逼呢?學科難度很高,卻只能拿cs行業60%左右的錢。
當然,比物理和數學專業,還是幸福一些的。
為什麼說正在起變化?因為即使是偏傳統硬體的電子行業,其演算法工程師的地位和收入也在行業內逐漸升高。
究其原因,是因為硬體平台已經逐漸完善,市場被巨頭們瓜分殆盡。intel、arm、高通統治全世界,三星、台積電打下手,其餘如華為、諾西等統統為以上巨頭當牛做馬。
而演算法的革命才剛剛開始。
作為一個電子行業的演算法狗,算是不幸中的萬幸。從招聘的角度來說,就北京大部分互聯網公司為範圍。
20W:現在校招的演算法工程師薪水都比這個高了,要求你不一定有很多實習經驗,但是你的數據結構基礎一定要很紮實,演算法原理要很清楚,能舉一反三,那麼你是個可以拿到20W+的應屆生;所以拿到這樣薪水的演算法工程師可謂是非常普通打著擦邊球的演算法工程師了。
50W:工作3年左右的工程師。首先是對自己做的事情有一定的見解能說清楚原理和採用該模型的優勢,基本能獨擋一個業務;其次是你的學習能力要很強,代碼風格也是加分項,最後需要的是你足夠踏實與聰明。
100W:工作7年左右的工程師。在演算法界也算老臘肉了,要有很好的產品 sense ,技術面廣,能夠有效地進行技術決策和產品決策。
看知乎,感覺全中國碼農都生活在貧困線以下
本人從事數據相關行業10來年,經歷過各種崗位的磨練與挑戰,薪資這幾個階段都經歷過,現在每天也在幫助企業招聘大數據人才,對20萬、50萬、100萬,甚至更高級別的人才要求有一定的見解,下面我就從幾個角度解構下這幾類人的能力素質模型,這些也是我在日常招聘過程中對人才的基本要求,說得不對的地方歡迎大家拍磚:
技術能力:
20萬級別的演算法工程師,0年-3年,需要在無導師指導情況下,獨立完成一個演算法模型,演算法種類有很多,你只需要熟悉某一類演算法模型,比如預測評分模型、分類模型、關聯推薦模型、文本分析等,僅僅只需要懂一類,程度上能獨立工作就好,哪怕做出的模型還不夠老練。
50萬級別的演算法工程師,3年-5年,需要掌握起碼三類以上的演算法模型,熟悉每一類演算法模型中有哪些典型的演算法,並且對各典型演算法適用的場景瞭然於胸,舉個例子,做分類的演算法有決策樹、邏輯回歸、SVM模型等,需要知道怎樣的數據形態適用哪種演算法,每種演算法的優缺點在哪裡,適用於什麼業務場景,如何進行模型的演進與優化。同時,要掌握模型實施的整個環節,從樣本定義、特徵值分析、演算法選型、模型評估、模型部署、模型監控等。
100萬級別的演算法工程師,5年-10年以上,需要完全具備50萬級別的演算法能力外,這個級別的工程師是公司中的靈魂人物,需要不僅僅掌握模型演算法的能力,也需要熟悉相關周邊技術,比如大數據生態圈相關的技術,還要求具備公司在技術領域戰略方向的確定選擇和實施落地步驟的把控,比如,在金融信貸風控領域,需要做出授信額度模型、風險定價模型、反欺詐識別模型、客戶需求意向度模型等等,需要這位帶頭大哥非常清晰各個模型的內在聯繫,落地步驟怎樣哪些該優先去做哪些往後,哪些做哪些不做,等等。
業務能力:
20萬級別的演算法工程師,對業務經驗沒有太多要求,更多要求是技術上的能力,但如果懂業務,具備公司所在的行業業務經驗,則加分也非常明顯,如果是多個人同時競爭一個崗位,那麼,原來是這一行業的最容易勝出。
50萬級別的演算法工程師,需要具備至少1年以上的同行業的業務經驗,技術是會有瓶頸的,到了這個級別的工程師,一定要注意選定行業作為自己的職業,跳槽要慎重選擇,不能頻繁換行業,需要積累行業業務經驗,這是重中之重。
100萬級別的演算法工程師,他是公司的專家、科學家,要做技術專家的同時,也要是一個業務專家。所有的技術最終是為業務服務的,只懂技術、只會搭積木是遠遠不夠的。技術如果沒帶來收益,所有的投入都是沒有產出的。作為公司的靈魂人物,所有技術戰略方向、業務戰略方向都與你有關,你為公司的營收業績負責,不會因為你只是負責管理技術而對業務營收沒有要求。
團隊協同:
20萬級別的演算法工程師,要求不高,在團隊成員中能夠進行良好的溝通,到達一定技術水平時候,可以幫忙帶領實習生工作。這個級別人員,我個人要求具備一個分享精神,分享才能讓自己技術學習更快更牢固,分享幫助自己的同時更重要的是幫助自己。團隊的學習氛圍怎樣,就是看這個級別的員工,團隊成員有進步,團隊才會更加牢固。
50萬級別的演算法工程師,leader級別,需要具備一定的管理能力,跨團隊溝通協同能力,項目驅動能力。作為骨幹人員,需要帶領好自己的團隊成員,對團隊的高效產出負責。要會培養成員,能夠做他們的導師。
100萬級別的演算法工程師,管理上,應該都是部門經理、總監以上的了,管理能力的要求比較高,要能夠確定業務方向、公司戰略方向等,決策失誤,會浪費大量的資源,甚至會給公司帶來災難性後果。舉個例子,重大演算法模型的研究是一個充滿風險的事情,需要投入大量的資源,但結果往往難以預料,這時候,就非常需要這位帶頭大哥對業務、行業、市場、對手等等有充分的了解,才能做出正確的抉擇。
以上是我在日常招聘和管理中的拙見, 歡迎大家拍磚指正,歡迎大家關注我的知乎專欄「大數據實踐與職業生涯」並留言,專欄會陸續的推出過往十多年的大數據工作經驗總結和我的一些研究實踐成果。如果你是大數據新人,或者想轉行進入大數據領域,或者職業生涯上存在一些疑惑,都歡迎關注我的知乎live分享「大數據人的職業生涯規劃」 、 「數據分析師-從零入門到精通」、「大數據人的數據科學家之路」。
假設準備給一個團隊的100萬年薪總額,那就招5個20萬足夠了。
假設是500萬,那就1-2個是50萬的,剩下招20萬的假設1000萬,那就1個100萬,3-4和50萬,剩下20萬。。在不同層級的任務面前,演算法工程師的能力也不一樣,超過50萬年薪的人除了極個別逆天,都屬於技術管理都到位的人才,所謂一定要給足夠的資源,時間,人員才能發揮作用。。
團隊需要有苦力,創造力,領導力。公司能接觸到20萬和50萬的,100萬接觸不到。
直觀上來看,50萬的經驗更豐富。
具體來看,20萬的是應屆生,知識儲備量不少,尤其是公司的演算法主要是做自然語言處理與圖像處理,對於50萬和20萬來說,都是新的領域(用DL方法解決大部分問題)。50萬在nlp與cv方面基本上也是新手。50萬的編程能力跟20萬幾乎沒差,50萬可能要更差一些。
至於為什麼造成了50萬與20萬的差異,基本上談工資的能力差別非常大,還有就是經驗加成,大部分公司招人還是看經驗的,同時,50萬的相比較20萬,更樂意從宏觀的角度看待問題,並且對項目規劃、流程要更熟悉一些。
如果20萬的比較聰明,解決問題的方式靈活,升到50萬並不難(公司一個20萬的跳槽出去也有40萬了)。
20 能夠被動接受安排幹活
50 能夠解決問題
100 能夠爭取到資源
我把年薪看成年齡了
真正年薪過百萬的會有空來這裡回答一些無聊的問題嗎?多實踐積累自己的經驗去吧。
都無法在二級市場賺到錢…………
吹牛逼的能力強弱吧 很多兢兢業業的工程師有實際能力但是沒有推銷自己的能力。。對於老闆來說會個鐵。。看你吹得好聽感人就覺得你很牛逼工資隨便開了。。
同一級別的。差距其實很小。拿20萬還是100萬主要看運氣好不好和膽子大不大。
大家說的都沒什麼乾貨。 事實上,以我們中國公司目前的情況來看,幾乎都用不到什麼演算法之類的,估計華為會用到吧。 招聘簡章上的要求很高,只是那麼要求「會演算法」,其實壓根用不到。。。
本人本科自學了很多東西,如何找到項目來賺錢呢
都回答了區別,有沒有人回答下具體方法啊!差距誰都知道,關鍵是怎麼提高?
推薦閱讀:
※女性的教育回報率是高於男性嗎?如果是,為什麼?
※最先會被機器人代替的幾個職業將會是什麼?
※有哪些證據可以反駁「亞裔學生錄取率低不是因為歧視而是因為『高分低能』」?
※為什麼一些職業收入低,一些職業收入高,根本原因是什麼?
※法國是全球數一數二愛罷工的國家嗎?為什麼?哪些因素保證了他們罷工行動的安全?