分析1400家公司後發現:數據工程師比數據科學家更受歡迎

  • 2021 年 2 月 21 日
  • AI
作者 | Mihail Eric
編譯 | Don
Mihail Eric,亞馬遜Alexa AI機器學習科學家,斯坦福大學電腦科學碩士,曾擔任斯坦福大學自然語言處理(NLP)研究助理。
近些年來,我都在數據科學和機器學習人力市場的風口浪尖進行研究,我嘗試用我的研究回答一些問題,就是市場上到底需要什麼樣的數據科學相關人才。
通過分析Y-Combinator 發布的2012年來各家公司數據相關工作崗位的招聘資訊(大約1400家公司),我發現在各大公司的招聘需求中,數據工程師的需求量要遠遠大於數據科學家的需求量。
數據是人工智慧之本。數據源於生活,我們的舉手投足都能映射成一段段奇妙的樣本,它會隨著人們生活的繼續和感測器的採集而不斷增加。海量的數據讓機器越來越理解人類,認識萬物。在過去的5到10年間,數據的巨量增加讓這種現象愈發明顯,也正因為此,數據科學領域吸引了大量的科學家和小白投身其中,嘗試這種由海量數據帶來的”禁果”。
那就不禁讓我們好奇了,如今隨著大量科研和開發人員湧入數據科學應聘市場,數據科學相關崗位的招聘需求行情如何呢?
為了不耽誤各位童鞋寶貴的時間,我們簡練滴總結了最終的結論:
一句話總結:在各大公司的招聘中,數據工程領域的崗位需求比數據科學高出了70%!因此,各位童鞋和老師請注意,我們在教育或者成為下一代的數據科學相關從業者的漫漫長征路上,不要一味的追求學術成就,更要注重培養工程技能。
作為一名數據科學教育平台的開發者,我十分關注學員們的就業情況。同樣的,我也深刻思考了數據驅動相關領域(也就是數據科學和機器學習)的人力需求是如何演化的。
我曾經和數十位數據分析領域的從業者進行了深入交流,其中不乏世界頂尖院校的高材生。在交流的過程中我逐漸產生了一個巨大的疑惑,就是到底什麼技能才能給我們的從業者”鍍金”?哪些技能會讓我們的學員在愈來愈多的相關從業者中脫穎而出,從而為自己步入職場做好重要的準備。
那到底需要哪些職業數據科學相關的技能呢?我覺得只要和以下關鍵詞沾邊即可:機器學習建模,可視化,數據清洗和處理(即SQL爭用),工程和生產部署。
那作為一個初次接觸數據科學的小白同學來說,有什麼入門的學習課程和學習路徑推薦嗎?
數據勝於雄辯,講了半天的大道理可能都不如一篇樸實無華的數據分析更有說服力。所以我對Y-Combinator自2012年以來的每家公司招聘的數據科學相關招聘需求進行了分析和統計,力求回答如下的問題:
  • 大公司們聘用的數據科學相關從業者人員大多是去幹什麼的?
  • 我們經常談論的傳統數據科學家到底受不受市場歡迎呢?
  • 如今來說,那些開啟了數據科學革命的技能之間是否相關呢?
如果你對這些問題感興趣的話,請往下讀吧:
 

 1 

調研方法

YC投資組合公司是一家以數據為本的公司,他們號稱是”將數據作為公司的價值主張”,聽起來很靠譜,所以我選擇使用他們的統計數據作為數據支撐。
YC公司除了價值觀和旗號打的響,他們還額外提供了一個用起來很方便的搜索目錄,裡面都是他們收錄的公司數據,查找起來十分方便。
此外,YC還是一個特別具有前瞻性思維的孵化器,十多年來一直在為來自世界各地的公司提供跨領域的孵化資金,成功扶持了不少新興企業。我覺得他們能夠慧眼識珠,起碼不至於將一些外強中乾的皮包公司收錄其中。他們起碼能提供一個具有代表性的樣本集合來支撐我們的分析。
為了收集數據,我搜集了自2012年來的每家公司的YC網頁網址,目前統計了大概1400多家公司的數據。
有的同學可能會問,為啥是統計2012年來的數據呢?哈哈,因為2012年是AlexNet在ImageNet比賽中大放異彩的一年。自那之後無數的數據分析公司受到了AlexNet的啟發和感召,如雨後春筍一般瘋狂的成立。換句話說,2012年後,AlexNet催生了一些最早的數據科學大公司。
在這些最開始的大公司中,我使用關鍵詞過濾來減少那些無關的樣本干擾。主要來說,我只考慮那些用如下關鍵詞描述的公司:包括AI, CV, NLP, 自然語言處理,電腦視覺,人工智慧,機器,ML,數據。我也忽略了那些官網無法訪問的公司。
那肯定就有同學會懷疑了,這會不會讓我們的樣本集中包含大量的假陽樣本?答案是肯定的。但是現在來說我更想去關注數據集的召回率,因為我在初步確定樣本對象之後,會對每個網站的詳細數據進行更細緻的手動檢查。
有了這些精鍊的人才需求資料庫,我訪問了每一家公司的網站,找到他們官網上的人才招聘的網頁,關鍵詞通常是Carrer, Jobs, 或者甚至就是這個網頁鏈接的本身。然後我記錄下其中的崗位需求名稱,比如機器學習,NLP之類的,以及對應的數量。通過這樣的數據收集工作,我攢到了一個樣本量大約是70家不同公司的數據科學相關人才需求統計表。
當然了,有的公司的網站上資訊不全。通常是因為公司機密或者出於隱私保護的原因所致。所以我就只好把這些公司給略過了。還有一些公司沒有公布他們的招聘需求,而是要求應聘者自己發送郵件給他們的郵箱投遞簡歷。所以這些公司的崗位需求和數量我也無從知曉。
實在沒辦法了,這兩種公司的數據我實在是得不到,或者太費功夫了。所以他們並不在本文的分析對象之中。
哦對了,本文中的大部分研究都是在2020年最後的幾周中完成的,而很多公司在最近飛速發展,招聘的需求和招聘頁面也會發生變化。因此我們的數據可能不是那麼實時。但是即便如此,這也不會影響我們最終的結論。

 

 2 

數據從業者都是幹什麼的?

在深入研究結果之前,我們有必要花一些時間詳細說說數據科學從業者的職位通常是幹什麼的。以下是本文著重研究的四個典型的職位,我們將簡要的介紹他們的職責:
  • 數據科學家,數據科學家通常需要使用統計學和機器學習中的各種技術來處理和分析數據。他們通常負責構建模型,從而研究從某些數據集中能夠學到什麼。科學家嘛,通常做的都是比較前沿和原型的。因此這些工作通常都不是直接落地並應用到實際產品的。也就是說不是生產級別,面向用戶使用的。
  • 數據工程師,數據工程師通常需要開發出一套魯棒性高,擴展性強的數據處理工具或者平台。他們必須熟悉SQL,NoSQL資料庫的使用和ETL管道的部署和維護。
  • 機器學習ML工程師,機器學習工程師通常需要負責訓練模型和交付模型。他們需要熟悉一些高級的ML框架,比如Tensorflow, Pytorch, ScikitLearn之類的,並且能夠為模型構建伸縮性強的訓練工具,方便好用的推理和部署管道。
  • 機器學習科學家,機器學習科學家通常需要從事尖端的學術研究。他們需要負責產出可在學術會議上發表的新想法。他們可能比數據科學家更學術范兒一點兒,通常只需要在交付給機器學習工程師之前對模型粗粗的進行原型化驗證即可。


 3 

數據科學相關的職位都有哪些呢?

當我們將統計起來的各大公司的崗位招聘職位的頻率進行統計並畫出來的時候,大致結果如下:
從圖中,我們一眼就能發現,和傳統的數據科學家相比,數據工程師的需求多了很多。在圖中,數據工程師的應聘需求量比數據科學家多了大約55%,而機器學習工程師的數量與數據科學家的數量大概相同。
讓我們更深的剖析這個結果,如果你仔細研究每個崗位的名稱,你會發現其中有些重疊。
因此,如果我們”泛泛地”對職位進行歸類,而不是那麼精細地對崗位進行劃分的話,能得到另一個更直觀的結論。也就是如果我們合併同類項,將那些看似很相近的崗位作為一類的話,這種角度的分析可能給我們一個更為直觀和宏觀的數量對比及印象。
這種合併同類項的規則是:
  • NLP工程師≈CV工程師≈機器學習工程師≈深度學習工程師(也許上述職位的領域稍有不同,但是這些崗位職員的工作內容是大致相同的)
  • 機器學習科學家≈深度學習研究員≈機器學習實習(雖然是實習崗,但是我們會找那些實習要求中明確說明是研究相關實習的崗位)
  • 數據工程師≈數據架構師≈數據主管≈數據平台工程師
如果覺得上述的原始數據不夠直觀,喜歡看百分比的數據的話,請查閱下圖:
我們其實可以進一步把ML研究工程師歸類為ML科學家或者ML工程師,但考慮到這是一個混合角色,我還是保持原樣。
總體來說,合併同類項的操作使得差異更加明顯,也讓結果更加顯而易見。那就是:數據工程師的職位需求比數據科學家的職位需求多70%。此外,機器學習工程師的職位數量比數據科學家的職位數量多了大約40%。ML科學家的數量也只有數據科學家職位數量的30%。

 4 

結論

與其他數據驅動行業相比,大公司們對數據工程師的需求越來越多。從某種意義上來說,這代表了一種趨勢,也就是人們對於更泛在的ML領域的需求的增加,以及朝此方向的一種演變。
5-8年前的時候,但機器學習剛剛變得熱門,各大公司覺得他們需要能夠對數據進行分類的人。但是後來像Tensorflow和Pytorch這樣的高級框架變得十分強大和易用的時候,大公司便增加了該方面的人力投入,於是便增加了該方向的人才需求,這就讓深度學習和機器學習的需求開始增多。
這使得擁有數據建模能力的開發者逐漸成為香餑餑。
現如今,各大公司都手握海量數據,而如何利用好這些數據,從中挖掘出更多更有用的資訊則成為了公司未來發展的核心,也成為了招聘人才的主要驅動力。
如何解釋數據、如何處理和清理數據、怎麼把A項目的工程和經驗快速遷移到B項目中,這都是大公司關心的問題,即我們應該怎麼將這些瑣碎的工作儘快完成。
所有的這些問題都需要工程師擁有良好的工程能力。
這聽起來也許特別傻,特別沒勁,而且一點都不酷。但實際上大公司真正需要的就是這樣「老派」、「傳統」而樸實的軟體工程師。
多年以來,我們一直被數據領域所謂的專業人士的想法所迷惑和牽引,它們憑藉炫酷的PPT和媒體炒作為原始的數據注入了生機與活力。畢竟,你想想你最後一次看到TechCrunch關於ETL管道的文章是什麼時候?是不是好像根本沒有看到過?
我相信紮實的工程能力是必需的,這也是我們在數據科學工作培訓或者教育項目中所缺失的。我們除了需要學習如何調用線性回歸擬合函數來訓練模型之外,更要學習如何編寫單元測試程式碼。
那這是不是意味著你不應該學習數據科學了呢?答案是否定滴。
這其實意味著更加激烈的市場競爭。人才市場上有著大量新兵蛋子,它們一開始就接受了數據科學科班訓練,而這個領域人才越來越多,能夠提供給這個領域的職位則將會越來越少。
公司要的是務實,人們總是需要能夠有效分析數據、並且從數據中提取有效資訊的人。這些資訊不必是炫酷爛漫的,但必須是有效而且好用的。
如今世道變了,我們今會從Tensorflow官網上下載一個Iris數據集,然後利用已經訓練好的模型跑一遍數據,這種技能模型可能已經不足以完成如今的數據科學工作了。
但是很明顯,隨著ML工程師的大量空缺,公司通常需要一個混合數據從業者,也就是一個能夠構建和部署模型的傢伙。或者更簡潔的說,這個人既可以使用Tensorflow訓練模型,也能徒手用底層程式碼手擼模型。
這裡的另一個發現是,其實市場上並沒有那麼多的機器學習研究崗位需求。
機器學習的研究往往有點摻水,或者說華而不實。因為學術研究嘛,比較先鋒,這是所有所謂尖端的東西產生的地方,它們是否真正適用於商用還是有待商榷的。比如什麼AlphaGo和GPT-3之類的炫技操作。
但是對於很多公司來說,尤其是那些早期公司,這麼先鋒的技術可能不是真正需要的。對於他們,獲得一個90%成功但是可以擴展到1000多個用戶的模型通常更有價值。
但是這並不是說機器學習研究不重要,絕對不是。
因為你可能會在一些大型的研究所、實驗室中發現特別特別多的數據科學家的崗位需求。這些實驗室就是大公司或者研究所用來秀肌肉的,他們有能力長期投入大量的科研經費,保證他們能夠在該領域的曝光度和話語權。其實還有個重要的原因,就是尖端技術能產生意想不到的收益,因為一個看起來特別炫酷,別人短時間之內還難以追上的技術能夠產生一系列A股公司。
如果沒有其他問題的話,我覺得讓新來的童鞋們對數據領域有一個大致的了解,知道這個領域就業的需求和前景還是有必要的。我們必須承認,數據科學現在不同了。我希望這篇文章能對大家有所幫助。只有當我們知道我們在哪裡,我們才知道我們要去哪裡。

 5 

Reddit討論

@ManBearHybrid:
沒錯沒錯。我們公司剛剛招聘了一名研究生,在公司收到的簡歷情況上來看,數據科學家崗位的申請人數起碼是數據工程師的15倍!
公司的面試官們,你們在招聘研究生畢業的數據工程師時主要看中他們的什麼技能呀?
看過這篇文章,我覺得對於一個畢業生來說,能做到文中這些技能的積累著實有點困難。因為我們的教育都是跟著導師或者教學規划走的,沒有那麼多直接面向職位招聘的教育途徑和實踐機會。換句話說,我們都是導師項目的工程師,我們讀研讀博的目的並不是找工作。面試的時候,對於投簡歷的畢業生小白們,我希望它們能夠有一些編碼、電腦的工程背景。並且對數據工程感興趣。如果玩兒過AWS或者有類似技能的小盆友會有加分的,比如在線課堂等。哦對了,還有SQl技能也是有加分的哈。除了這些之外,其他需要關注的技能就要看投簡歷的童鞋所選擇的崗位需求了。 
對於那些更需要有經驗的老鳥工程師崗位來說,我希望看到應聘者能有一些大數據領域的經驗,比如有一些典型大數據平台或者框架的使用經驗,比如Hadoop/Spark/Hive之類的,然後資料庫的經驗等也是很重要的。
@sam_matt:
唉,不知道作者你們是在哪個國家,但是在我們這兒(澳大利亞),這些公司面試官都需要有經驗的人,他們很少會讓剛畢業的青瓜蛋子擔任數據科學家。所以對於像我這樣想從數據分析師過渡到數據科學家的人來說,應聘機會都沒有。我太難了。越不給機會我越沒有經驗,死循環無解無解。
在美國灣區,很多公司都會讓碩士或者博士擔任初級數據科學家。當然了,我還認識一些本科生,他們在5年前直接升職成為數據科學家。但我認為,在現在來說,那些沒有研究生學位和背景的本科生也能夠一躍成為數據科學家,這表明,各大公司正在調整它們所需的數據分析師的工作,也正在重塑以前被研究生所壟斷的數據分析師職位的品牌定位。
@good_rice:
我有點質疑文中關於領域歸併的統計合理性。因為我工作和研究的方向是電腦視覺,在此方向校友領域(在本科畢業之後,我曾經去做過全職的電腦視覺工程師,然後去卡內基梅隆大學CMU讀的碩士學位),但是就我而言,我雖然學的是電腦視覺,但好像從來沒有搞過任何跟「數據科學」相關的研究、工程。
數據科學和典型的機器學習崗位有什麼區別呢?文中在提及「數據工程師」時,是指開發運算元?基礎操作函數?還是機器學習系統工程?另外,請教有經驗的大佬們,上述這些技能或者工作是如何更廣泛地應用在電腦視覺和機器學習領域中的呢?
我曾經面試了一些更基礎的數據學習崗位,然後我目前正在學習更多的分散式系統/電腦體系結構方面的知識。從我的經驗和理解來看,電腦視覺或者機器學習的基礎工作崗位開發里,99%是和系統工程類似的,這些應聘者的技能包在其他機器學習相關崗位中也能適配,並且直接使用。但是,一個高水平的電腦視覺科學家是非常具體的,因為CV這個領域和傳統機器學習還是有些區別和壁壘的。我覺得CV和機器學習這兩個領域中間夾著的這個領域很奇怪,在這裡我可以研究一些高層的應用,比如異常檢測和姿態估計的問題,但是也可以下沉到研究C++相關的程式碼中。但是對於這兩個角色來說,這些技能在初創公司之外是否有價值?大公司們需要這些多棧工程師嗎?
@bbu3:
我覺得文章說的太真實了,很多東西真的取決於公司屬性和你要應聘的職位的需求。每個單一的定義都不能一概而論。
一般來說,數據科學比機器學習的範圍更廣泛。你會發現數據科學家們有時候做的活兒跟機器學習工程師一樣。但是有時我們又會發現,數據科學家也能去做知識表示或者統計學工作,這些工作有些只是為了給那些管理人員演示、提供可視化的展示。數據科學家和數據工程師這兩個崗位的定位同樣讓人困惑。因為我曾經見過有的數據工程師被「提拔」為數據科學家,但是這僅作為資歷老的一種形式化獎勵,實際上他們還是做著跟以往相同的工作。
依在下之見,這一切都是無中生有的,它就像早起的初創公司在招聘的福利標語一樣可笑「一個你選擇的未命名的C套件標題」。
@bubushikinator:
我在美國五大巨頭公司FAANG之一工作(FAANG=Facebook、Apple、Amazon、Netflix、Alphabet或者Google),在我們這,這幾個職位的報酬順序大致是:
數據工程師<軟體工程師=數據科學家<機器學習工程師
數據工程師的工作是讓數據集可用,軟體工程師做的是一些一般性的開發工作,數據科學家的職責是訓練Python模型,而機器學習工程師負責從模型中獲取權重和偏差,並在Scala中進行商業化部署,並和一些基礎的組件打交道(包括kafka和Spark等)。
我曾經是一名數據科學家,然後轉方向變成了一名軟體工程師,現在我準備專職到機器學習工程師。當然,我們也有薪水更高的應用科學家崗位,但面試官甚至從來不看我的簡歷,因為我沒有博士學位。
@RandomGaussian:
我的理解雖然有點刻薄,但是一針見血。數據科學家更像是一個業務專員,他們知道如何分析數據、需要哪些數據、如何組合和提取資訊等。而數據工程師是一個知道如何準備、清理、收集和分發數據工具的人。但用於數據管道他們就像一個開發人員和開發工具的混合體。我覺得是這樣的,數據科學家更接近機器學習領域,而數據工程師更像是程式設計師。
@grudev:
這篇文章和我的想法不謀而合。雖然我不是業內人士,但是我想補充點東西。數據科學家、數據工程師們在技能包上的重疊是意料之中的。他們的工作同質化十分嚴重。
@RandomGaussian:
是的,總會有重疊,因為最開始的時候人們對機器學習產生興趣,但隨後便發現真正的機器學習工作需要深厚的積累和一個博士學位,然後他們無可奈何地走上了一條更「輕量化」的數據科學道路,也就是做數據工程師。但隨後發現數據工程師這樣的「基礎工作」也開始有著較高較深的要求了。所以,很多數據工程師多多少少都會了解一些機器學習和數據科學領域的東西。
原文鏈接:
//www.mihaileric.com/posts/we-need-data-engineers-not-data-scientists/
//www.reddit.com/r/MachineLearning/comments/kx0j1v/d_we_need_more_data_engineers_not_data_scientists/



[贈書福利]

AI科技評論本次聯合【圖靈教育】為大家帶來12本《人工智慧簡史(第2版)》正版新書。

在「《人工智慧簡史》第二版重磅來襲!| 贈書」 (點擊超鏈接跳轉)文留言區留言(注意不是本文),歡迎大家暢所欲言,談一談你對人工智慧發展歷史上某件大事或某個人物的看法,或對人工智慧未來發展的看法。

AI 科技評論將會選出 12名讀者,每人送出《人工智慧簡史(第2版)》一本。

活動規則:

1. 在「《人工智慧簡史》第二版重磅來襲!| 贈書 (點擊超鏈接跳轉)一文留言區留言(注意不是本文!),在綜合留言品質(留言是敷衍還是走心)和留言點贊最高的讀者中選出12位讀者獲得贈書。獲得贈書的讀者請聯繫 AI 科技評論客服(aitechreview)。

2. 留言內容會有篩選,例如「選我上去」、「這書寫的很棒(僅僅幾個字)」等內容將不會被篩選,亦不會中獎。

3. 本活動時間為2021年2月12日 – 2020年2月19日(23:00),活動推送時間內僅允許贈書福利中獎一次。

由於微信公眾號試行亂序推送,您可能不再能準時收到AI科技評論的推送。為了第一時間收到AI科技評論的報道, 請將「AI科技評論」設為星標帳號,以及常點文末右下角的「在看」。