1. 程式人生 > >數據科學行業已被擠爆?4點建議獻給準備入行的小白

數據科學行業已被擠爆?4點建議獻給準備入行的小白

運行 代碼 大量 今天 自己 通用 wire 都沒有 發展

數據科學家被稱為“21世紀最性感的職業”,也被認為是最容易找工作的職業,但如今,真實情況如何呢?

數據科學剛剛度過了它的黃金五年。
自2012年以來,這個行業發展迅速。它幾乎完整經歷了Gartner技術成熟度曲線的每個階段。

度過了初期使用階段、有關AI和偏見的負面新聞、Facebook等公司的第二三輪風投。現在的數據科學正處於高增長使用階段:即使是銀行、醫療保健公司和落後市場五年的其他100強企業,也在招聘機器學習中的數據科學崗位。

但現實正在發生巨大的變化。

來自captech基金的資深數據科學家Vicki Boykis發布了一篇《數據科學不一樣了》的文章,引起了廣泛討論。五年前被譽為“最性感“職業的數據科學家,正在進入一個新的階段。

我們該如何應對?一起看看。

大數據(還記得Hadoop和Pig嗎?)已經出局,R語言的采用率急劇上升,Python在《經濟學人》雜誌中被表揚多次,“雲”已經再次改變了一切。

不幸的是,大眾媒體在數據科學領域的炒作始終沒有改變。

直到今天,在各類不負責任的媒體口中,數據科學家依然是“21世紀最性感最容易找工作的職業”。而事實上,希望進入這個行業的初級數據科學家已經供過於求,他們一旦獲得夢寐的“數據科學家”稱號後,實際展現出來的能力並不能達到預期的那樣。對大數據以及人工智能概念都是模糊不清的,該按照什麽線路去學習,學完往哪方面發展,想深入了解,想學習的同學歡迎加入大數據學習qq群:458345782,有大量幹貨(零基礎以及進階的經典實戰)分享給大家,並且有清華大學畢業的資深大數據講師給大家免費授課,給大家分享目前國內最完整的大數據高端實戰實用學習流程體系 。

01 新數據科學家的供過於求

首先,我們來談談初級數據科學家的供過於求。

圍繞數據科學的持續媒體炒作極大地提高了過去五年市場上的初級人才數量。

這純粹是傳聞,你大可不必相信。但是,基於我參與篩選簡歷、做剛入門的數據科學家的導師、做采訪者和受訪者以及與處於類似職位的朋友和同事們的對話的經歷,可以初步感受到,每個數據科學職位而言,特別是入門級的職位,候選人都已經從20個增加到100個或更多。

我最近和一個朋友談話,他的一個開放職位收到了500份簡歷。

這並不奇怪。更多的傳聞是來自像機器學習教父吳恩達的職位空缺,他的AI創業公司每周要求70-80小時的工作時間。

即便如此,他依然收到了很多人試圖免費為他誌願工作。截止到目前,據他所說,他的辦公室已經全部坐滿。

正確估計市場供需當然不容易,但Wired的一篇文章可以提供一些線索:

對2018年4月份招聘廣告的研究發現,美國有超過10000個職位空缺,面向有人工智能或機器學習技能的人。

文章繼續表明:

超過10萬人開始學習Fast.ai提供的深度學習課程,Fast.ai是一家專註於擴大人工智能應用的創業公司。

讓我們做一道簡單的數學題。

假設MOOC(慕課)的平均完成率約為7%,那意味著,這一年會有7000人可以填補這10000個工作崗位。這一年如此,但明年又如何呢?我們是否假設數據科學的就業率穩定?如果是這樣,數據科學的就業市場看起來就會縮小很多。

我們再來看一項更廣泛的研究,LinkedIn表示市場上缺少151717個具有數據科學技能的人才。雖然目前還不清楚這是指數據科學家還是僅具有部分技能的人,但我們假設是前者。那樣的話,該國數據科學家有150000個職位空缺。

鑒於有100000人已經開始了數據科學課程,我們假設其中有7000人能完成課程。

但是,這些數字還都沒有考慮到所有創造新的數據科學候選人的計劃和途徑:有像Coursera這樣的Fast.ai之外的MOOC,有超過10個像Metis和GA(General Assembly)這樣的每季度25人參加的全國性訓練營,還有像加州大學洛杉磯分校等地的遠程學位——分析和數據科學的學士學位,YouTube等,還有大量無法在極其緊張的就業市場找到工作、正從學術界轉向數據科學的博士們。

這裏有第三個確鑿證據,來自PWC,它指出2015年數據科學家有4萬個職位空缺。它還從總體上估計,認為分析技能的市場供應(再次說明,它比數據科學範圍更大,但也是一個比較點)到2018年將會使市場過度擁擠。

將此與數百個數據科學課程的訓練營相結合,如果有人要進入某個行業,你將看到一場大風暴。

根據我在業內工作並與100多名同事交談的直覺,這兩條推特最終使我確信數據科學行業存在供應泡沫。對大數據以及人工智能概念都是模糊不清的,該按照什麽線路去學習,學完往哪方面發展,想深入了解,想學習的同學歡迎加入大數據學習qq群:458345782,有大量幹貨(零基礎以及進階的經典實戰)分享給大家,並且有清華大學畢業的資深大數據講師給大家免費授課,給大家分享目前國內最完整的大數據高端實戰實用學習流程體系 。

首先,是這個有關入門數據科學課程的推特:

Cal的入門數據科學課程是Data 8,這門課很受歡迎,位於澤勒巴赫教室。開課時間是2018年秋季學期第一天。

和UVA開設數據科學學院的消息:

▲UVA很自豪地宣布計劃中的數據科學學院成立,它將滿足社會增長最快的需求之一

由於在適應工業界的新趨勢上,學術界通常是滯後的,因此這個趨勢真的該引起初級數據科學家們的重視,所有人都希望找一個數據科學的職位。考慮到他們在市場上的競爭者數量,剛獲得數據科學學位的人很難找到真的入行。

在三、四年前情況還並非如此,然而現在數據科學已經從一個流行詞匯轉變為矽谷泡沫外更大的公司招聘的職位,相關的職位不僅更加正式化,而且有著更嚴格的準入要求(即傾向於曾經具備數據科學工作經驗的人)。數據科學職位的面試仍然難以把握,並且與工作完全不匹配。

正如許多博客文章指出的那樣,你未必在第一次嘗試時就能找到理想工作。因此,就業市場相當艱難,對於大量入門者來說更加困難重重。

Hinton對於機器學習領域現狀的想法:

我們應該采取全新的想法。我們都知道從長遠來看,一個全新的想法將比一個個微小的改進更有效。當我們這個群體只有一些資深人士和一大批青少年時,這就是缺點。

02 數據科學存在有誤導性的工作需求

第二個問題是,一旦這些初學者進入市場,他們會對數據科學的工作模式產生不切實際的期望。每個人都認為他們將進行機器學習、深度學習和貝葉斯模擬。

這並不是他們的錯,這正是一些數據科學課程和技術媒體們一直以來強調的內容。自從很久之前我第一次過分樂觀地瀏覽Hacker News 上邏輯回歸的帖子以來,情況並沒有發生多大變化。

現實情況是,“數據科學”從未像機器學習那樣關註數據清洗、數據轉換以及將數據從一個地方移動到另一個地方。

我最近進行的極其非科學的調查問卷證實了這一點:

作者2019年1月在推特上做的調查問卷:

近一段時間以來對此非常好奇,所以我決定創建一個調查問卷:

“作為2019年被稱為‘數據科學家‘的人,我花了大部分時間在(60%以上):”

選擇了(“其他”)也歡迎在回復中添加。

調查結果:

6% 選擇特性/模型

67% 清理數據/移動數據

4% 在產品中部署模型

23% 分析/呈現數據

許多行業專家發送的推文也是如此:

在我最近的幾個機器學習項目中,復雜的地方不再是建模或培訓裏;二是在在輸入預處理中。我發現自己耗盡的是CPU而不是GPU,並且在一個項目中我真的不確定如何進一步優化python(我也正在考慮c ++)。

——mat kelcey

我在初級ML/ CV工程師身上看到的最失敗的一面是對構建數據集完全缺乏興趣。雖然這是一項無聊的工作,但我認為在整理數據集時能夠學習到很多東西。這就像是問題的一半。

——Katherine Scott

伴隨著數據清洗,當炒作周期繼續發揮著它的效應時,更加清晰的是,數據工具和將模型投入生產變得比在一臺機器上從頭開始構建ML算法更加重要,特別是隨著雲資源可用性的爆炸式增長。

顯而易見的是,在炒作周期的後期階段,數據科學將逐漸接近工程學,而數據科學家需要的技能不再主要基於可視化和統計學,而是更符合傳統的計算機科學課程:像單元測試和持續集成這樣的概念,很快就成了術語,並被用作數據科學家和從事ML工程的數值科學家常用的工具集。

這也導致了幾件事的發生:首先是“機器學習工程師”這個頭銜的崛起,在過去的3-4年裏,它帶來了更多的聲望和更高的收入潛力。

其次,它導致了數據科學家職稱的嚴重縮水。由於數據科學家職稱的聲望,像Lyft這樣的公司會招聘這類職位,但要求擁有數據分析師的技能,這就造成了別扭的情況——數據科學的職位究竟需要做什麽,又有多少職位提供給新入職的工作者。

我們作為資深從業者、記者、經理、行業會議發言人、撰寫工作要求的人力資源經理,仍然不能很好地解決這個重要的難題。

03 給新數據科學家的建議

因此,本著繼續為初學者提供建議的精神,我將給任何在2019年向我咨詢如何進入數據科學領域的人發送這封郵件。

這是一個兩步計劃:

不要一味追求數據科學的工作

為成為數據科學家做好準備,而不是單單為了數據科學。調整你的技能組合。

這些聽起來真是令人沮喪!但是,讓我來詳細說明這兩個問題,希望它們看起來不那麽黯淡。

  1. 謹慎選擇數據科學

鑒於每個初級崗位有50或100或200個人投簡歷,因此不要與那些人競爭。不必攻讀數據科學學位,不必參加訓練營(邊註:我見過的大多數訓練營都是效率低下的,他們在很短的時間內讓求職者處理太多的信息,使得求職者無法有效地對數據科學有所了解,在這裏我就不細說了)。

不要做別人正在做的事情,因為這樣不能使你脫穎而出。你是在和一個堆積如山、過度飽和的行業競爭,這只會讓事情變得更困難。在我之前提到的那份PWC報告中,數據科學職位的數量估計為5萬。數據工程職位的數量為50萬。而數據分析師的數量是12.5萬。

通過“後門”進入數據科學和技術的職位要容易得多,比如從做初級開發人員開始,或者從DevOps、項目管理開始,以及從事最相關的數據分析師、信息管理員等類似職位,而不是直接申請其他人也同時競爭的5個崗位。這將花費更長的時間,但是在你從事數據科學工作的同時,也在學習對你的整個職業生涯至關重要的IT技能。

  1. 了解當今數據科學所需的技能

下面是一些你在數據空間中實際需要處理的問題:

創建Python包

將R語句投入實際生產

優化Spark工作,使其更有效地運行

版本控制數據

使模型和數據可復制

版本控制SQL

在數據湖中建立和維護幹凈的數據

大規模時間序列預測工具

擴展Jupyter筆記本的共享

考慮清洗數據的系統

大量的JSON

雖然在數據科學中有許多有趣的統計問題需要考慮,但這些博客鏈接都沒有解決它們。盡管調整模型、可視化和分析占據了你作為數據科學家的部分時間,但數據科學一直主要的工作是如何得到可以直接使用的幹凈數據。

所有這些博客文章有什麽共同之處?那就是良好的數據背景下的各個工程技能。

你該如何準備解決這些問題,並為工作做好準備?學習以下三種技能,它們都是基礎技能,並且相互之間有關聯,從入門到精通。

所有這些技能的真正關鍵之處在於,它們對於數據科學之外的軟件開發也是基礎和重要的,這意味著如果你找不到數據科學相關的工作,也可以快速地過渡到軟件開發或devops。我認為這種靈活性與針對特定數據相關任務的培訓同樣重要。

(1)學習SQL

首先,我建議無論目標是成為數據工程師、ML專家還是AI 專家,每個人都需要學習SQL。

SQL並不吸引人,它也不是我剛才列出的問題的解決方案。但實際上,為了理解如何訪問數據,你極有可能在某個地方遇到需要編寫一些SQL查詢並獲得答案的數據庫。

SQL非常強大且受歡迎,以至於NoSQL和鍵值存儲解決方案也在復現它。只需查看Presto、Athena,它們由Presto、BigQuery、KSQL、Pandas和Spark等等提供支持。如果你發現自己被大量的數據工具所淹沒,那麽很可能有SQL是適合你的。而且,一旦你理解了SQL範式,就能更容易理解其他查詢語言,從而開辟一個全新的領域。

在學好SQL之後,下一步是了解數據庫如何工作以及為什這樣就可以學習優化查詢。你不會成為數據庫開發人員,但是許多概念將延續到你的其他編程生活中。

(2)學好編程語言、學習編程概念

前文我們談論過如何學習SQL的問題,當你使用SQL的時候,你會有這樣一個疑問,這樣的數據庫處理軟件,它是不是一個編程語言呢?答案是肯定的,不過它屬於聲明式編程。你可以指定所需要的輸出(就是你想從數據表中把哪幾列提取出來),但沒法控制它用什麽方式把結果反饋。SQL抽象出大量發生在數據庫內的信息。

與之相對的,如果你需要一種可以指定數據從哪裏、用什麽方式被選取出來。像Java、Python、Scala、R、Go等等這些都是現在流行的面向對象的過程化語言。

大家現在對用哪種語言去做數據科學依舊有很多爭論,當然也不會在這裏指定一種語言是最合適的。但我想說的是,在我的日常工作中,Python對我的幫助真的很大。作為一個初學者來說,Python很容易上手,而且也是數據領域裏最流行的編程語言。

為什麽這麽說呢,因為它可以處理很多數據問題,如構建一個模型放入到scikitlearn裏、訪問AWS API雲平臺服務接口、制作網頁服務應用、清洗數據、創建深度學習模型等等。而在統計領域裏,R還是更為廣泛使用。

但同樣的,我還是建議不用去深究統計領域,Python基本可以滿足編程需求了。

當然Python在大規模應用、打包依賴關系、一些特定數字處理、特別是時間序列和R那樣開包即用(Python不像R有很多成型的功能包、更細致的統計功能模型) 等等問題上也不是很適用。

如果你不選擇Python,那也沒什麽問題。但你應該選擇一門語言讓你在數據科學之外的領域,一樣可以大展拳腳。舉個例子來說,如果你的第一份工作是數據分析師、質量保障員、初級的軟件開發人員或者其他崗位,這都將是作為你進入這個行業的敲門磚。

如果說一旦你選擇掌握某種編程語言,就會開始學習它的範式,研究它與整個計算機生態系統的關系。

在開始研究之後,你就會面對這樣一系列問題。如何用你掌握的編程語言進行面向對象編程(OOP)?什麽是面向對象編程?如何讓你的代碼更簡化?你使用的語言是通過什麽樣依賴關系工作的?對你寫好的代碼如何打包,怎樣進行版本控制、持續集成、模型部署?到哪裏去找這種語言社區去交流學習,他們什麽時候進行交流研討會?

然後你需要做的就是不斷地了解這門語言,知道它的優缺點,然後用這門語言做些有趣的編程,找到其中的樂趣。

然後就像武俠小說裏練就奇功一樣,當你打通任通二脈,這種編程語言能力成為你身體的一部分,然後你就去學習第二種編程語言,它將會教給你更多關於語言設計、算法和模式的內容,了解這個更豐富有趣的語言世界。

(3)學會如何在雲平臺進行操作

現在你知道如何進行編程,那下一步要做的就是把這些能力和理論推廣到雲平臺上,跟其他編程者進行共享。

現在雲服務無處不在,很有可能你的下一份工作就是需要在雲平臺上完成的。有了雲技術,如果能夠搶先一步,就越容易走到前列,就比如現在有越來越多的機器學習範例轉移到了雲服務供應商(如亞馬遜的SageMaker、谷歌的Cloud AI、微軟的Azure Machine Learning),那上面會有更多現成的模板來實現你想要的算法、也有更多的公司數據會存儲在雲上。

當然你也有機會跟AWS行業領導者合作,但越來越多的地方開始使用Google Cloud雲服務,還有一些較為保守的傳統企業也開始用Microsoft Azure雲服務。我的建議是對這上文提到的三家雲服務公司做一個用戶調查,然後選擇一個更適合你們的。

雲設計範式是通用的,所以你應該更關心如何將服務連接在一起、如何將你使用的部分與雲上其他應用做邏輯隔離,以及如何解析處理大量的JSON。

一個很酷的事情是,現在三家雲服務供應商都開始提供他們的產品認證。我通常不太相信認證是知識獲取的標誌,但是你可以通過認證學到雲平臺很重要的工作原理,這也是工程裏另一個組成部分——網絡。

所以在你找到下一份工作之前,可以有時間充分學習一下這三家的證書,並且在雲平臺上自由發揮一下,也是不錯的選擇。

還有一大部分我們沒有講到,就是“軟技能”(知道如何構建、知道如何在工作環境下交流、知道其他人的需求)。這種能力與技術能力同樣重要,也有很多博客專門提到這種能力。

(4)最後一步

現在深呼吸,我知道你已經做好準備了。

如果說上面說的內容已經足夠打動你,說明在2019年,你已經做好成為一名數據科學家、或機器學習工程師、或雲專家、AI法師的準備了。

請記住,遵循這些建議的最終目標是打敗那些具有數據科學學位、通過訓練營和通過教程的工作人員。

你想進入這個行業,得到一個數據相關職位,朝你期待的工作而努力,並且盡可能多的了解整個科技行業的發展。

我的最後一點誠懇建議和鼓勵是:這些東西對任何一個人來說都相當困難,而且看起來你需要了解成百上千的事情,永遠不要失去信心。(不忘初心)

對大數據以及人工智能概念都是模糊不清的,該按照什麽線路去學習,學完往哪方面發展,想深入了解,想學習的同學歡迎加入大數據學習qq群:458345782,有大量幹貨(零基礎以及進階的經典實戰)分享給大家,並且有清華大學畢業的資深大數據講師給大家免費授課,給大家分享目前國內最完整的大數據高端實戰實用學習流程體系 。

數據科學行業已被擠爆?4點建議獻給準備入行的小白