几年前,我刚开始学习数据科学时,大多数求职招聘都要求必须有数学、统计学或类似学科的博士学位,或者至少是硕士学位。这几年,情况有所变化。
随着机器学习库的发展,算法背后的复杂性大大降低,以及人们认识到,将机器学习实际应用于解决商业问题,需要一套通常仅靠学术学习无法获得的技能。现在,公司雇佣数据科学家的依据是他们从事应用数据科学的能力,而不是研究能力。
尽早应用数据科学带来商业价值需要非常实用的技能。此外,随着越来越多的公司将数据和机器学习解决方案迁移到云上,对数据科学家来说,了解与此相关的新工具和技术变得至关重要。
我相信数据科学家只从事数据建模,使用数据工程师收集的数据,然后将模型交给软件工程师团队投入生产的时代已经一去不复返了,尤其是在亚马逊、Facebook和谷歌等科技巨头以外的公司。在大多数公司中,除了一些非常大的技术团队,团队中要么没有可用的资源,要么任务优先级会和时间冲突。
Oralytics的首席顾问Brendan Tierney表示:“说到数据科学家,你需要‘样样通,样样不精’,但或许更恰当的说法是‘万事皆通但也要有所专长’。”
数据科学家为实现最大的商业价值,要涉及整个模型开发生命周期的工作。具备开发数据管道、执行数据分析、机器学习、数学、统计学、数据工程、云计算和软件工程方面的工作知识。这意味着,随着2021年的到来,数据科学家通才将成为大多数企业的首选。
本文并没有完全涵盖2021年成为数据科学家之所需,而是谈到了新老技能中的关键技能,这些技能已成为每位成功的数据科学家在不久的将来必不可少的技能。
1. Python3
在某些情况下,数据科学家可能会使用R,但一般来说,如果你现在从事的是应用数据科学,那么Python将是最值得学习的编程语言。
Python 3(最新版本)现在已经坚定地成为大多数应用程序的默认版本,因为大部分库自2020年1月1日起就放弃支持Python 2了。如果你现在正在学习用于数据科学的Python,那么选择与该版本兼容的课程是很重要的。
你需要对该语言的基本语法以及如何编写函数、循环和模块有良好的理解,熟悉Python中面向对象和函数式编程,能够开发、执行和调试程序。
2. Pandas
Pandas仍然是用于数据操纵、处理和分析的第一大Python库。在2021年,作为数据科学家,掌握Pandas仍然是最重要的技能之一。
数据是任何数据科学项目的核心,而Pandas是能够从中提取、清理、处理和获取深刻见解的工具。如今,大多数机器学习库通常也将Pandas DataFrames作为标准输入。
3. SQL和NoSQL
SQL自20世纪70年代就出现了,但它仍然是数据科学家最重要,也是最需要的技能之一。绝大多数企业使用关系数据库分析存储数据,而作为数据科学家,SQL就是提供这些数据的工具。
NoSQL是指不以关系表的形式存储数据的数据库,相反,它将数据存储为键值对、宽列或图形。NoSQL数据库包括谷歌CloudBigtable和AmazonDynamoDB。
随着企业收集的数据量不断增加,以及非结构化数据在机器学习模型中的使用越来越频繁,组织开始转向NoSQL数据库,要么作为对传统数据库的补充,要么作为它的替代品。这一趋势可能会持续到2021年,作为一名数据科学家,至少对如何与这种形式的数据交互有一个基本的了解是很重要的。
4. 云
根据O’reilly今年1月发布的《2020年云计算报告》指出:88%的组织此时正在使用某种形式的云基础设施。Covid-19的影响可能进一步加速了这一进程。“乍一看,云的使用似乎势不可挡。超过88%的受访者以各种形式使用云计算。大多数接受调查的组织还希望在未来12个月内增加云计算的使用。”
在商业的其他领域使用云通常与基于云的数据存储、分析和机器学习解决方案并驾齐驱。主要的云提供商(如谷歌云平台、亚马逊网络服务和微软Azure)正在加紧开发训练、部署和服务机器学习模型的工具。
作为2021年及以后的数据科学家,你很有可能要处理存储在云数据库(如谷歌BigQuery)中的数据,并开发基于云的机器学习模型。随着时间进入2021年,对于这一领域的经验和技能可能会有很高的需求。
5. Airflow
ApacheAirflow是一种开放源代码的工作流管理工具,已被许多企业迅速采用以管理ETL流程和机器学习管道。许多大型科技公司(例如Google和Slack)都在使用它,而Google甚至在此项目之上构建了他们的cloud composer工具。
越来越多人提到了Airflow,这是求职招聘上数据科学家的一项理想技能。如本文开头所述,对于数据科学家而言,能够构建和管理自己的数据管道以进行分析和机器学习将变得越来越重要。至少在短期内,Airflow的日益普及可能会持续下去,并且作为一种开源工具,这绝对是每位新兴数据科学家都应学习的东西。
6. 软件工程
传统的数据科学代码很乱,并非都经过良好的测试,而且不符合样式约定。这对于初始数据探索和快速分析是很好的,但是在将机器学习模型投入生产时,数据科学家将需要对软件工程原理有很好的了解。
如果你打算成为数据科学家,那么你可能会将模型投入生产或至少会参与到生产过程之中。因此,你必须学会以下技能:
- 代码约定,例如PEP 8 Python样式指南
- 单元测试
- 版本控制,例如Github
- 依赖性和虚拟环境
- 容器,例如Docker
本文想强调数据科学家所需技能方面的一些关键趋势。这个清单可能有所遗漏。要成为一名成功的数据科学家,还需要更多的技能和经验。