随着数据科学行业自 2013 年以来的爆炸式流行,该行业一直不断地朝着更宽泛的方向发展,但同时也逐渐出现了更具体的职业角色分化。本文首先分析了数据科学行业的总体发展趋势,然后深入地比较了机器学习领域中几个不同名称的职位的职能,对寻找数据科学和机器学习类工作的毕业生非常有指导意义。

大家好,我是杰森。我在硅谷工作,是一名数据科学家(关于这个名词,我们将在本文后面进一步定义),我热爱学习一切新事物!
说实话,这个话题在我脑海中已经萦绕很久了。但因为平时实在有太多的事情要做,我无法挤出时间来完成这项艰巨的任务。但是,如今由于新冠疫情的居家隔离令,我被困斗室,最近也快没啥事情能让我打发时间了,我终于下定决心来完成这个话题的写作。
随着数据科学行业自 2013 年以来的爆炸式流行,该行业一直不断地朝着更宽泛的方向发展,但同时也逐渐出现了更具体的职业角色分化。在该新兴行业的演进过程中,不可避免地导致了有一些岗位在名称和职能上出现了混淆和差异。例如,许多看似完全不同的职位但却在实际工作中扮演着相同的角色,或者有名称相同的职位却在实际工作中承担着不同的角色,这些职位头衔可能包括:
数据分析科学家,机器学习数据科学家,数据科学工程师,数据分析师 / 科学家,机器学习工程师,应用科学家,机器学习科学家&hellIP;&hellIP;
这样的例子简直不胜枚举。即使对我来说,通常招聘人员也会因为数据科学家、机器学习(ML)专家、数据工程师等不同职位的招聘而与我联系。显然,整个行业对这些五花八门的职位都困惑不已。造成职位名称差异如此之大的原因之一是,实际上各个公司对数据科学的需求和用途本身就大相径庭。但无论背后原因是什么,如今数据科学领域似乎正在不断进行分化和合并,并逐渐形成以下几个主要工种类别:分析、软件工程、数据工程以及研究。 不管那些看似相似的职位是怎么命名的,通常它们都能归类落入这些类别。这种工种细化在那些财大气粗的大型科技公司中表现得最为真实。
在本文中,我们将首先了解数据科学行业的总体趋势,然后更深入地比较机器学习工程师和数据科学家两者的职能。我并不想在本文中去赘述一段漫长的发展历史,而是选择讲述我作为一名数据科学家生活在硅谷的所闻所见。即使在 2017 那年,我写过一篇文章“如何在还没有获得学位的情况下成为数据科学家&Rdquo;,现在和那时相比,我对数据科学的看法也发生了很大变化。
去年,我被邀请给 Metis 训练营 学习数据科学的学生们做一个简短的演讲,我当时谈到了这个话题。今天我想借用本文对这些职位的区别进行一番解释,并帮助你找到最适合你的工作角色。也让我们一起来看看,这个行业的发展是依然朝气蓬勃,还是已经日暮西山,因为预测发展趋势原本就是数据科学家的本职工作,对吗?(也可能不是吧)。无论如何,我衷心希望本文给你带去有用的信息。
数据科学行业的发展趋势
在我们深入挖掘信息之前,先看看我在 linkedIn 上找到的两份职位描述。我已遮去了它们的职位名称,请读读下面的内容,试着猜一下这些招聘广告的原标题是什么。我用红色标出了一些关键点:

去年我在 linkedIn 上发现了这两份职位描述。虽然有点过时了,但内容仍然贴切(资料来源:linkedIn 和 FACEbook)。
这两份职位描述相差甚远,是吧?但可能会让你大吃一惊的是,这两份职位描述都是针对数据科学家这个岗位招聘的。左边是 FACEbook 的招聘广告,而右边是 Etsy 的。但在这里我并不想比较哪家的职位描述写得更好。重点是看看它们在内容上差异有多大。

以上职位描述的职位名称。FACEbook(左)和 Etsy(右)(资料来源:linkedIn 和 FACEbook)。
即使在工作中,人们也常常会因为如何定义数据科学家而展开热议。我遇到过人们把数据科学家定义为 计算机科学专业的博士 或 新数据分析师。这其实是因为不同的公司对不同的职位都使用了数据科学家这样一个相同的术语。然而,我相信经过这么几年发展,这个行业应该有更细的分工以及更具体的职位定义,而不是把所有的东西都笼统地塞进数据科学这一广泛范围里。
那么,在数据科学家这个已经被滥用的职位名称下,实际上可能暗指哪些不同的具体岗位呢?在很大程度上,我认为这个职位有可能指的是 软件工程师、数据分析师、数据工程师和应用 / 研究科学家。我知道有不少朋友顶着相同的数据科学家头衔,但在实际工作中他们的角色是上述四者之一。请看看下面我创建的图表。在数据科学发展的早期,一名数据科学家的工作内容可能的确包含了这四个角色的职能。然而,如今的职位正变得越来越具体和细化,正如下图所示。

《哈佛商业评论》预见了这样的发展吗?
这种发展趋势令人惊讶吗?根据 2012 年《哈佛商业评论》(HaRvaRd BUSineSS Review)杂志上那篇著名的文章《数据科学家:21 世纪最令人称羡的工作》,这样的发展趋势也并不足以为奇:
数据科学家最基本、最通用的技能是编写代码的能力。但在五年后,这一点可能就会发生变化,因为会有更多的人会在他们的名片上印上“数据科学家&Rdquo;的头衔。
正如这篇文章所描述的,如今作为一名数据科学家,你并不一定非要成为一名优秀的程序员。那是因为,以前用来分析大数据的工具和方法并不是那么随处可得且用户友好。这就要求从前的数据科学家在拥有其他技能的同时还需要具备较强的工程技能。但是用于机器学习和数据科学的工具发展十分迅速,现在比以往任何时候都更容易获取这些工具,因此你只需几行代码就可以访问使用最先进技术(State of the aRt,SOTA)的模型。这使得以前的数据科学家角色如今更容易分拆成为分析师或工程师。现在,我们不必像以前那样,需要全面掌握所有分析、工程和统计知识才能成为一名数据科学家。
例如,FACEbook 就引领了这一趋势的变化,让过去的数据分析师的工作角色变成了数据科学家。这是一个自然的演进过程,因为随着数据量的增加以及数据问题变得更具挑战性,执行良好的数据分析需要更多的专业技能和培训。不仅仅是 FACEbook,像苹果和 AIRbnb 这样的公司也已经开始明确区分数据分析师 / 产品数据科学家和机器学习数据科学家这样的角色岗位。
公司规模如何影响岗位的分化
值得一提的是,这样的角色岗位细分更多发生在规模较大的科技公司。数据科学家这个角色和软件工程师还是有很大差异的,固然各种大小规模的科技公司都需要软件工程师,但并不是所有公司都需要专业的研究科学家或机器学习工程师。许多公司拥有几名数据科学家可能就足以运转业务了。所以在小公司里,可能仍然会有一些数据科学家同时扮演上述四个角色。
根据一般的经验而言,大公司(FANG 四巨头:FACEbook,AMazon,Netflix 和 Alphabet)的数据科学家职能通常类似于高级分析师,而小公司的数据科学家扮演的角色更类似于机器学习工程师。当然这两种职能对于公司来说都是重要和必需的。接下来,我将继续沿用这里我的新定义,即下文每当提及数据科学家时,意味着这是一个分析师角色。
数据科学家分化出的不同角色以及如何选择
在下面的图表中,我试图展示一个与上面的图表类似的图,但对这四种功能增加了更详细的描述。这些描述内容可能并不算完美,但你可以把它们作为参考。

求职&Mdash;&Mdash;应该选择哪个职位以及如何准备面试?
如果你试图进入这个领域,无论是当一名机器学习工程师还是数据科学家,你可能首先想知道的是自己究竟应该选择哪一个岗位。请让我列出四个与机器学习相关的主要岗位简化的(但也是约定俗成的)描述,以帮助你弄清楚这些职位到底是干什么的。虽然我个人在工作中并没有将所有这些职位都尝试干过一遍,但我从工作在各个领域的朋友那里学到了很多有用的知识。我还在以下描述中的括号里提供了可能的面试内容(假设是典型的四轮面试)。
数据科学家: 你想分析大数据、设计实验和 A/B 测试、构建简单的机器学习和统计模型(例如使用 skleaRn)来推动商业策略的运筹帷幄吗?这个角色的工作不会特别结构化,会包含较多的不确定性,你需要能够独当一面地去主导项目的表述。(面试:1 轮概率 / 统计,1 轮 Leetcode 编程,1 轮 SQL,1 轮机器学习。)
2. 机器学习工程师: 你想在实际业务中构建并部署最新的机器学习模型(例如 TensoRflow,,PyToRch)吗?你工作的重点不仅是构建模型,而且还需要编写软件以运行和支撑你的模型。在这个职位上,你更像是一个软件工程师。(面试:3 轮 Leetcode 编程,1 轮机器学习。)
3. 研究科学家