数据科学家需要涉猎的知识面很广,包括:机器学习、计算机科学、统计学、数学、数据可视化、沟通和深度学习,那么数据科学家应如何制定他们的学习预算,才能***限度地满足雇主的需要?
我浏览了一些求职网站,想找出哪些技能是数据科学家最需要掌握的技能,并对普通数据科学技能以及特定的语言和工具的特殊技能分别做了一些研究。2018年10月10日,我在LinkedIn,Indeed,SimplyHired,Monster上搜索了求职名单,下面这个图表,显示了每个网站列出的数据科学家职位的数目。
通过阅读这些职位清单,经过一番调查研究,我找出了数据科学家最常用的技能。像“管理”这样的术语没有进行比较,因为它们在职位清单中被太多的上下文所引用。
所有搜索都是用“数据科学家”这个关键字在美国本土进行的,采用精确匹配搜索的话,会使得搜索结果的数量大为减少。精确匹配搜索确保了搜索结果均与数据科学家的职位相关,并受到类似搜索条件的影响。
AngelList列出了需要数据科学家的上市公司的数量,而不是列出了数据科学家职位数量。我将AngelList从这两种分析中排除,因为它的搜索算法似乎是一种OR(或)类型的逻辑搜索,没有将其转换为AND(与)逻辑。
如果你搜索的关键字是 “数据科学家”“ TensorFlow”,那么只会列出需要数据科学家的公司,AngelList的搜索效果不错。但是如果你的关键词是“数据科学家” “react.js”,它会返回许多需要非数据科学家公司的列表。
Glassdoor 也被排除在我的分析之外。该网站声称,它在美国有26263个“数据科学家”职位,但能让我看到的职位不超过900个。此外,数据科学家的职位数量不可能超过其他主要平台的三倍以上。***的分析中包括了在LinkedIn上列出400多个普通技能和200多个特殊技能,当然这其中会有一些交叉。
结果记录在下面链接的Google Sheet表格中。我下载了.csv文件并将它们导入JupyterLab中。然后,计算出了百分比,并在职位列表网站上对它们进行了平均计算。
Google Sheet表格链接:https://docs.google.com/spreadsheets/d/1df7QTgdAOItQJadLoMHlIZH3AsQ2j2_yoyvHOpsy9qU/edit?usp=sharing
我还将软件的计算结果与JupyterLab针对2017年上半年数据科学家职位列表进行了比较。结合KDNuggets’ usage survey的信息,似乎有些技能变得越来越重要,而另一些则变得越来越不重要。我们一会儿再谈。
KDNuggets’ usage survey
https://www.kdnuggets.com/2018/05/poll-tools-analytics-data-science-machine-learning-results.html/2
请参阅我的Kaggle Kernel以获得交互式图表和其他的分析。我用Plotly对数据进行可视化。在编写这篇文章时,对使用JupyterLab的Ploly出现了一些争论-指令在我的Kaggle Kernel的结尾的Plotly’s docs之中。
Plotly’s docs
https://github.com/plotly/plotly.py
普通技能
以下是雇主最常搜索的数据科学家技能图表。
结果表明,分析和机器学习是数据科学家工作的核心。从数据中收集有用信息是数据科学的主要功能。机器学习的全部内容是创建系统来预测性能,这个需求非常大。
数据科学需要统计学和计算机科学技能——这一点也不奇怪。统计学、计算机科学和数学也都是大学的专业,可能有助于加大它们出现的频度。
有趣的是,在近一半的职位列表中提到了沟通,数据科学家需要能够交流见解并与他人密切合作。
人工智能和深度学习不像其他术语那样频繁出现。然而,它们是机器学习的子集。深度学习正被越来越多的机器学习任务所使用,而这些任务以前是由其他算法完成的。例如,对于大多数自然语言处理问题,***的机器学习算法都是当前的深度学习算法。我预计,在未来,人们将更加明确地寻求深度学习技能,而机器学习将成为深度学习的代名词。
雇主们都在寻找掌握哪些特定的软件工具的数据科学家?接下来我们来解决这个问题。
技术技能
雇主们正在寻找的具备以下技能的数据科学家,其中名列前20位的特定语言、库和技术工具如下。
我们来简要地看看最常见的技术技能。
1. Python
Python是***的语言。这种开源语言的受欢迎程度已广为所知。初学者容易接受,而且有很多支持资源。绝大多数新的数据科学工具都与它兼容。Python是数据科学家的主要语言。
2. R
R不逊于 Python,它曾经是数据科学的主要语言。我惊讶地看到它目前仍然很受欢迎。这种开源语言的根源在于统计学,它目前仍然很受统计学家的欢迎。Python或R对于几乎每一个数据科学家职位来说都是必须的。
3. SQL
SQL也很受欢迎。SQL是结构化查询语言,是与关系型数据库交互的主要方式。在数据科学领域,SQL有时会被忽视,但是如果您打算进入就业市场,这是一项值得展示的技能。
4. Hadoop和Spark
接下来是Hadoop和Spark,它们都是Apache提供的用于大数据的开源工具。Apache Hadoop是一个开源的软件平台,用于分布式存储和分布式处理由商业硬件构建的计算机集群上的大型数据集。
Apache Spark是一个快速、内存数据处理引擎,它具有优雅的、有表现力的开发API,使数据工作者能够高效地执行需要快速迭代访问数据集的流、机器学习或SQL工作负载。
与许多其他工具相比,这些工具在媒体和教程中,关于它们的文章要少得多。我预计具备这些技能的求职者比具备Python、R和SQL技能的求职者要少得多。如果你有或可以获得Hadoop和Spark的经验,会为你的竞争优势助一臂之力。
5. Java和SAS
然后是Java和SAS。看到这两种语言位列如此之高,我感到十分惊讶。这两种语言的背后都有大公司支持,至少有一些免费产品。Java和SAS通常在数据科学社区中很少受到关注。
6. Tableau
接下来是Tableau。这个分析平台和可视化工具功能强大,易于使用,并且越来越受欢迎。它有一个免费的公开版本,但如果想要保持数据私密性,则需要付费。
如果你不熟悉Tableau,那么肯定值得在Udemy上一门快速课程,比如Tableau 10A-Z。我参加了这门课,发现它物超所值。
下图显示了这些语言、框架和其他数据科学软件工具的列表。
历史比对
GlassDoor分析了2017年1月至2017年7月期间在其网站上的数据科学家最常见的10种软件技能。以下是与2018年10月LinkedIn, Indeed, SimplyHired, 和Monster平均水平相比,它们在网站上出现频率的比较。
结果非常相似。我的分析和GlassDoor’s都发现Python、R和SQL是***的。我们还发现了同样的前九位技术技能,只是顺序略有不同。
结果表明,与2017年上半年相比,目前对R、Hadoop、Java、SAS和MATLAB需求较少,Tableau需求则更大。这就是我所期望的,对 KDnuggets developer survey等来源的结果的补充。在那里,R、Hadoop、Java和SAS都显示出明显的多年下降趋势,Tableau显示出明显的上升趋势。
建议
根据以上分析结果,为当前和有抱负的数据科学家,提出一些一般性的建议,以使自己在职场上更受欢迎:
1. 证明你可以进行数据分析,并专注于成为真正擅长机器学习的人。
2. 投资于自己的沟通技巧。我建议阅读《Made to Stick》这本书,它对你的想法会有更大的影响。还可以查看名称为 Hemmingway Editor的APP(应用程序),以提高写作的清晰度。
《Made to Stick》:https://www.amazon.com/Made-Stick-Ideas-Survive-Others/dp/1400064287
Hemmingway Editor:http://www.hemingwayapp.com/
3. 掌握一个深度学习的框架。对深度学习框架的熟练程度是精通机器学习的重要组成部分。有关深度学习框架在用法、兴趣和流行程度方面的比较,请参阅下方链接中的文章:
https://towardsdatascience.com/deep-learning-framework-power-scores-2018-23607ddf297a
4. 如果在学习Python和R之间进行选择,请选择Python。如果对Python不感冒,考虑学习R。如果你会使用Python的同时也知道R,你肯定会更有市场。
当雇主正在寻找一位具备Python技能的数据科学家时,他们也期望应聘者能了解常见的Python数据科学库,如:numpy、pandas、scikit-learn和matplotlib。如果想学习这组工具,我建议提供以下资源:
1. DataCamp和 DataQuest:它们都是定价合理的在线SaaS数据科学教育产品,在这些产品中,您可以一边编写代码一边学习,二者都教授一些技术工具。
DataCamp
https://www.datacamp.com/
DataQuest
https://www.dataquest.io/
2. Data School拥有多种资源,包括一套很好的视频,解释数据科学的概念。
Data School
https://www.dataschool.io/start/
视频资源:https://www.youtube.com/dataschool
3. 麦金尼(McKinney)的《用于数据分析的Python》。这本书由pandas库的主要作者撰写,重点关注pandas,还讨论了基本的python,numpy和scikit-learn等数据科学的知识。
Python for Data Analysis
https://www.amazon.com/Python-Data-Analysis-Wrangling-IPython/dp/1491957662
4. Müller&Guido的《用Python进行机器学习简介》。米勒是scikit-learn的主要维护者。这是一本用于学习机器学习scikit-learn的很好的书。
Introduction to Machine Leaning with Python
https://www.amazon.com/Introduction-Machine-Learning-Python-Scientists-ebook/dp/B01M0LNE8C
如果你想探究深度学习,我建议在进入TensorFlow或PyTorch之前先从Keras或FastAI开始。Chollet的《用Python进行的深度学习》一书是学习Keras的很好的资源。除了这些建议之外,我建议你了解自己感兴趣的内容,尽管在决定如何分配学习时间时有很多因素需要考虑。
如果你想通过网络门户寻找一份数据科学家的工作,我建议你从LinkedIn开始——它的结果总是最多的。
如果你在网上求职或者在求职网站上发布职位,关键词非常重要。“数据科学”返回的结果是“数据科学家”返回结果数的近3倍。但是,如果你在严格地寻找数据科学家的工作,你***还是输入 “数据科学家”这个关键字。
无论你在哪个网站找工作,我建议你建立一个在线组合列表,列出你对所需求技能领域的熟练程度。我还建议用LinkedIn个人资料展示你的技能。
作为这个项目的一部分,我收集了其他数据,可能也会写成文章。跟我来,不要错过哦。
如果您希望看到交互式图表和它们背后的代码,请查看我的Kaggle Kernel:
Kaggle Kernel:https://www.kaggle.com/discdiver/the-most-in-demand-skills-for-data-scientists/
作者简介:
Jeff Hale是一位经验丰富的企业家,曾为多家公司管理过技术、运营和财务。专注于机器学习领域的数据科学家,子商务公司的共同创始人和***运营官。目前,杰夫正将他对数据驱动决策的热情转化为以数据科学家为职业期盼。他对机器学习、交流和数据分析很感兴趣。
- 原文标题:The Most in Demand Skills for Data Scientists
- 原文链接:https://www.kdnuggets.com/2018/11/most-demand-skills-data-scientists.html
译者简介:陈之炎,北京交通大学通信与控制工程专业毕业,获得工学硕士学位,历任长城计算机软件与系统公司工程师,大唐微电子公司工程师,现任北京吾译超群科技有限公司技术支持。目前从事智能化翻译教学系统的运营和维护,在人工智能深度学习和自然语言处理(NLP)方面积累有一定的经验。