1. 程式人生 > >資料科學家最需要什麼技能? | 資訊

資料科學家最需要什麼技能? | 資訊

加關注2.png

頭圖3.gif

欄目標題_01.png

 

轉自:機器之心

作者:Jeff Hale

編譯:高璇、路

 

本文整理了多個求職網站的資訊,對僱主最希望資料科學傢俱備的技能進行了分析,並提供了一些建議。

 

資料科學家需要涉獵很多——機器學習、電腦科學、統計學、數學、資料視覺化、通訊和深度學習。這些領域中有幾十種語言、框架和技術可供資料科學家學習。那麼要想成為僱主需要的資料科學家,他們應該如何安排學習內容呢?

 

我搜索了招聘網站,想找到資料科學家最需要的技能。我分別研究了通用的資料科學技能和特定的語言、工具。2018 年 10 月 10 日,我在 LinkedIn、Indeed、SimplyHired、Monster 和 AngelList 上搜索了招聘資訊。下表展示了每個網站列出的資料科學家職位數量。

 

 

我讀了許多招聘要求和調查,以找到最常用的技能。像「管理」這樣的詞會在不同背景的招聘資訊中不斷提及,因此不列入比較範圍。

 

所有的搜尋都是以「資料科學家」「[關鍵字]」格式展開的。使用精確匹配搜尋雖然減少了搜尋結果的數量,但確保了結果與資料科學家的職位相關,且對所有搜尋關鍵詞產生類似的影響。

 

AngelList 提供的是具備資料科學家職位需求的公司數量,而不是職位數量。所以 AngelList 被排除在這兩種分析之外,因為它的搜尋演算法是一種「OR」的邏輯搜尋,無法變為「AND」。如果你搜索「資料科學家」「TensorFlow」這類只會在資料科學家職位上找到的詞,AngelList 表現得很好。但如果關鍵詞是「資料科學家」「react.js」,搜尋結果中會出現太多不具備資料科學家職位需求的公司。

 

Glassdoor 也不在分析範圍之內。該網站表示,在美國有 26263 個「資料科學家」職位,但它顯示的職位資料不超過 900 個。此外,Glassdoor 上的資料科學家職位數量也不太可能是任何其他主流平臺的三倍。

 

最終使用 LinkedIn 上的 400 多個職位資訊用於對通用技能的分析,200 多個職位資訊用於對特定技能的分析。當然有一些職位可能重複用於兩種分析。結果記錄在 Google 表格中(https://docs.google.com/spreadsheets/d/1df7QTgdAOItQJadLoMHlIZH3AsQ2j2_yoyvHOpsy9qU/edit?usp=sharing)。

 

我下載了 .csv 檔案並將它們匯入 JupyterLab。然後計算出事件發生的百分比,並針對招聘網站的數量進行平均運算。

 

我還將運算結果與 2017 年上半年 Glassdoor 對資料科學家職位要求的研究進行了比較。結合 KDNuggets 的調查資訊來看,有些技能變得越來越重要,有一些則變得無足輕重。我稍後會談到這些。

 

有關互動式圖表和其他分析,請參閱我的 Kaggle Kernel(https://www.kaggle.com/discdiver/the-most-in-demand-skills-for-data-scientists/)。我利用 Plotly 做了視覺化。截至本文寫作時,使用 Plotly 與 JupyterLab 會有些爭議,在 Kaggle Kernel 末尾和 Plotly 文件會有說明。

 

通用技能

 

以下是僱主最希望資料科學傢俱備的通用技能。

 

 

結果表明,分析和機器學習是資料科學家工作的核心。洞察資料是資料科學的一項基本功能。機器學習就是創造能夠預測效能的系統,這在現在是非常需要的。

 

資料科學需要統計和電腦科學技能。統計學、電腦科學和數學都是大學課程,這可能是這幾個詞出現頻率高的原因。

 

有趣的是,幾乎一半的職位要求中都提到了「溝通」。資料科學家需要具備與他人交流和合作的能力。

 

人工智慧和深度學習並不像其他詞出現地那麼頻繁,雖然它們是機器學習的子集。深度學習被用於越來越多的機器學習任務,取代了曾經的演算法。例如,現在針對大多數自然語言處理問題的最佳機器學習演算法是深度學習演算法。我預計未來人們將更明確地追尋深度學習技能,機器學習與深度學習的意義將更加接近。

 

僱主希望資料科學家使用哪些特定的軟體工具呢?下面我們來解決這個問題。

 

技術技能

 

下表是僱主希望資料科學家必備的前 20 種特定語言、庫和技術工具。

 

 

我們簡單看看最普遍的技術技能。

 

 

Python 是最受歡迎的語言。這個開源語言已經廣為流行了,它對初學者十分友好,有許多支援資源。絕大多數新的資料科學工具都與之相容。Python 是資料科學家的主要語言。

 

 

R 和 Python 很接近。它曾經是資料科學的主要語言,目前它的需求量仍然很大。這種開源語言的基礎是統計學,所以它仍然很受統計學家的歡迎。

 

對於每個資料科學家來說,Python 或 R 語言是必不可少的。

 

 

SQL 也很受歡迎。SQL 表示結構化查詢語言(Structured Query Language),是與關係資料庫互動的主要方式。在資料科學領域,SQL 有時會被低估,但如果你打算進入職場,這是一塊很有價值的「敲門磚」。

 

 

接下來是 Hadoop 和 Spark,這兩款開源工具都來自 Apache,面向大資料。

 

Apache Hadoop 是一個開源軟體平臺,利用商用硬體計算機叢集進行分散式儲存和分散式處理。

 

Apache Spark 是一個基於記憶體的快速資料處理引擎,具有簡明而富有表達性的開發 API,允許資料工作人員高效地執行流、機器學習或 SQL 工作,這些工作負載需要對資料集進行快速迭代訪問。

 

這些工具的教程和 Medium 網站文章遠遠低於其他工具。我認為具備這些技能的求職者比會 Python、R 和 SQL 的少得多。如果你具備使用 Hadoop 和 Spark 的經驗,那麼你在競爭中會獲得優勢。

 

 

然後是 Java 和 SAS。我很吃驚這些語言排名會這麼高。這兩種語言背後都有大公司支援,而且至少有一些免費產品。但在資料科學社群中,Java 和 SAS 通常很少受到關注。

 

 

接下來是 Tableau。這個分析平臺和視覺化工具功能強大、易於使用,並且越來越流行。它有一個免費的公開版本,但是如果想保證資料的隱私性,需要付費。

 

如果不熟悉 Tableau,那麼在線上教育網站上學習速成課程是很值得考慮的,比如 https://www.udemy.com/tableau10/。

 

下表更完整地展示了需求最多的語言、框架和其他資料科學軟體工具。

 

 

前後對比

 

GlassDoor 曾分析了 2017 年 1 月至 7 月資料科學家最常用的 10 種軟體技能。以下是 GlassDoor 網站上出現這些詞彙的頻率與 LinkedIn、SimplyHired 和 Monster 在 2018 年 10 月的平均頻率的對比。

 

 

結果相當一致。我的分析和 GlassDoor 的研究結果都顯示 Python、R 和 SQL 是最受僱主歡迎的語言。top 9 技術技能也基本一致,只是順序略有不同。

 

結果表明,與 2017 年上半年相比,R、Hadoop、Java、SAS、MatLab 的需求有所減少,Tableau 的需求有所增加。以 KDnuggets developer survey 的調查結果作為補充,這一結果在我預期之中。KDnuggets 調查顯示,R、Hadoop、Java 和 SAS 都有明顯下降趨勢,Tableau 呈現明顯上升趨勢。

 

建議

 

根據這些分析的結果,我將向現在和以後有志於從事資料科學工作的人提供一些通用建議,關於如何使自己被市場廣泛接受。

 

證明你可以做資料分析,並專注於真正熟練地掌握機器學習。

 

鍛鍊溝通技巧。推薦閱讀《Make to Stick》一書,它幫助你產生更具影響力的想法。也可以通過 Hemmingway Editor 來提高寫作水平。

 

掌握深度學習框架。精通深度學習框架在精通機器學習中的佔比越來越大。有關深度學習框架在使用、熱點和流行度方面的比較,請參閱文章:2018 年最熱門的深度學習框架?這份科學的排行榜可以告訴你

 

如果你在學習 Python 和 R 之間猶豫,選擇 Python。如果你對 Python 不感冒了,就考慮學習 R,如果你對 R 語言也有所瞭解,你肯定會更有市場。

 

當僱主在尋找具有 Python 技能的資料科學家時,他們也期望應聘者瞭解常用的 Python 資料科學庫:numpy、panda、scikit-learn 和 matplotlib。如果你想學習這組工具,可利用以下資源:

 

  • DataCamp 和 DataQuest:它們都是價格合理的線上 SaaS 資料科學教育產品,你可以一邊程式設計一邊學習。它們會教授一些技術工具。

  • Data School 有各類資源,包括解釋資料科學概念的一系列優質 YouTube 視訊。

  • Wes McKinney 的著作《Python for Data Analysis》。這本書由 pandas 庫的主要作者所著,主要關注 pandas,也討論了資料科學中基本的 python、numpy 和 scikit-learn 功能。

  • Andreas Müller 和 Sarah Guido 的著作《Introduction to Machine Leaning with Python》。Müller 是 scikit-learn 的主要維護人員。這是一本利用 scikit-learn 學習機器學習的好書。

 

如果你想開始深度學習,我建議先從 Keras 或 fastai 開始,然後再轉向 TensorFlow 或 PyTorch。Francois Chollet 的《Deep Learning with Python》是學習 Keras 的很好的資源。

 

此外,我建議你瞭解興趣所在,儘管在決定分配學習時間時要考慮很多因素。

 

如果你正在找工作或在求職網站上釋出職位空缺,關鍵詞很重要。在每個網站上,「資料科學」返回的結果幾乎是「資料科學家」結果的三倍。如果你要找的是資料科學家的工作,你最好還是搜尋「資料科學家」。

 

建議製作一個線上作品集,儘可能展示你對這些必備技能的熟練程度。我還建議通過 LinkedIn 個人資料展示你的技能。

END分隔符.png

尾圖2-1.png