自2013年以来,数据科学行业经历了迅猛的发展,逐渐向更广泛的领域扩展,同时也出现了具体的职业角色分化。本文将分析数据科学行业的总体发展趋势,并深入比较机器学习领域中不同职位的职能,为寻找相关工作的毕业生提供指导。

大家好,我是杰森,一名在硅谷工作的数据科学家(后文将对这一名词进行详细解释),我热爱学习新知识!
说实话,这个话题在我心中盘旋已久。由于日常工作繁忙,我一直未能抽出时间来完成这项任务。然而,因新冠疫情的居家令,我发现自己有了更多的空闲时间,终于决定着手撰写这篇文章。
随着数据科学行业的快速发展,职业角色逐渐分化。在这一新兴行业的演变过程中,职位名称和职能之间出现了混淆与差异。例如,许多看似不同的职位实际上可能承担着相同的角色,而相同名称的职位在实际工作中却具有不同的职能。这些职位包括:
数据分析科学家、机器学习数据科学家、数据科学工程师、数据分析师/科学家、机器学习工程师、应用科学家、机器学习科学家等。
这样的例子屡见不鲜。甚至我自己,招聘人员常因数据科学家、机器学习专家、数据工程师等不同职位与我联系。显然,整个行业对于这些多样化的职位感到困惑。造成职位名称差异的原因之一是,各公司对数据科学的需求和应用各不相同。尽管原因各异,数据科学领域正不断分化与合并,形成主要工种类别:分析、软件工程、数据工程和研究。无论这些职位的名称如何,它们通常都可以归入这些类别。这种细分在大型科技公司中尤为明显。
在本文中,我们将先了解数据科学行业的总体趋势,然后深入比较机器学习工程师与数据科学家的职能。我并不打算详细叙述行业发展历史,而是分享我作为硅谷数据科学家的观察。即使在2017年,我曾撰写过一篇名为“如何在没有学位的情况下成为数据科学家”的文章,但如今我对数据科学的看法已大为不同。
去年,我受邀在Metis训练营向学习数据科学的学生们做了简短演讲,讨论了这一话题。今天,我想借此机会对职位之间的区别进行说明,帮助你找到最适合的工作角色。同时,我们也可以探讨行业的发展趋势是持续向前,还是逐渐停滞,毕竟预测未来本就是数据科学家的职责,对吗?无论如何,我希望本文能为你提供有用的信息。
数据科学行业的发展趋势
在深入探讨之前,先看我在LinkedIn上找到的两份职位描述。我已遮去职位名称,请尝试猜测这些招聘广告的原始标题。我用红色标出了几个关键点:

这两份职位描述虽然有些过时,但内容依然相关(资料来源:LinkedIn和Facebook)。
这两份职位描述差异明显,令人惊讶的是,它们都是针对数据科学家岗位的招聘。左侧是Facebook的招聘广告,右侧是Etsy的。这里我并不想比较哪一份描述更好,而是想强调它们之间内容的差异。

以上职位描述的名称分别来自Facebook(左)和Etsy(右)(资料来源:LinkedIn和Facebook)。
在工作中,人们常常对数据科学家的定义展开热议。我遇到过有人将数据科学家视为计算机科学博士或新数据分析师。这是因为不同公司对“数据科学家”这一术语的使用不尽相同。然而,经过几年的发展,数据科学行业应该有更细致的分工和明确的职位定义,而不是将所有内容笼统地归入这一广泛的范畴。
那么,在这个被广泛使用的“数据科学家”职位名称下,实际上可能指代哪些具体岗位呢?在很大程度上,我认为这个职位可能涵盖软件工程师、数据分析师、数据工程师和应用/研究科学家。我认识一些朋友,他们的头衔是数据科学家,但在实际工作中,他们的角色却是上述四者之一。请查看我创建的图表。早期数据科学家的工作确实可能包含这四个角色的职能,但如今这些职位正变得越来越具体和细化,如下图所示。

《哈佛商业评论》是否预见了这样的发展?
这种发展趋势是否令人惊讶?根据2012年《哈佛商业评论》上那篇著名的文章《数据科学家:21世纪最令人称羡的工作》,这样的发展趋势并不奇怪:
数据科学家最基本、最通用的技能是编写代码的能力。但五年后,这一点可能会发生变化,因为越来越多的人会在他们的名片上印上“数据科学家”的头衔。
正如文章所述,如今作为数据科学家,你并不一定需要成为优秀的程序员。这是因为,以前用于分析大数据的工具和方法并不总是易于获取且用户友好。这要求数据科学家在具备其他技能的同时,还需要有较强的工程技能。然而,机器学习和数据科学工具的快速发展使得现在比以往任何时候都更容易获取这些工具,几行代码就能访问最先进的模型。这使得过去的数据科学家角色更容易分拆为分析师或工程师。现在,成为数据科学家不再需要全面掌握所有分析、工程和统计知识。
例如,Facebook引领了这一趋势的变化,使得过去的数据分析师的角色演变为数据科学家。这是一个自然的演变过程,随着数据量的增长和数据问题的复杂性,良好的数据分析需要更多的专业技能和培训。不仅是Facebook,像苹果和Airbnb等公司也开始明确区分数据分析师/产品数据科学家与机器学习数据科学家等角色。
公司规模对岗位的分化影响
需要指出的是,这种角色的细分主要发生在大型科技公司。数据科学家与软件工程师存在显著差异,尽管各种规模的科技公司都需要软件工程师,但并不是所有公司都需要专业的研究科学家或机器学习工程师。许多公司只需几名数据科学家即可满足业务需求。因此,在小公司中,数据科学家往往同时承担上述四个角色。
一般而言,大公司的数据科学家职能通常类似于高级分析师,而小公司的数据科学家角色更接近于机器学习工程师。这两种职能对于公司而言都是重要和必不可少的。接下来,我将继续使用我的新定义,即每当提到数据科学家时,指的是分析师角色。
数据科学家细分出的不同角色及选择指南
在下方的图表中,我试图展示一个类似于上面的图表,但对这四种功能进行了更详细的描述。这些描述内容可能并不完美,但可以作为参考。

求职——如何选择职位及准备面试?
如果你希望进入这个领域,无论是作为机器学习工程师还是数据科学家,你可能首先想知道应该选择哪个岗位。请允许我列出四个与机器学习相关的主要岗位的简化描述,以帮助你了解这些职位的具体职责。虽然我个人未必在所有这些职位上都有经验,但我从各领域的朋友那里学到了很多有用的知识。我还在以下描述的括号中提供了可能的面试内容(假设是典型的四轮面试)。
数据科学家:你想分析大数据、设计实验和A/B测试、构建简单的机器学习和统计模型(例如使用sklearn)来推动商业决策吗?这个角色的工作通常较为灵活,包含一定的不确定性,你需要能够独立主导项目。(面试:1轮概率/统计,1轮Leetcode编程,1轮SQL,1轮机器学习。)
2. 机器学习工程师:你想在实际业务中构建并部署最新的机器学习模型(例如TensorFlow、PyTorch)吗?你的重点不仅是构建模型,还需要编写支持这些模型的软件。在这个职位上,你更像是一名软件工程师。(面试:3轮Leetcode编程,1轮机器学习。)
3. 研究科学家:
