quanjingvr 2020-08-12
随着数据科学行业自 2013 年以来的爆炸式流行,该行业一直不断地朝着更宽泛的方向发展,但同时也逐渐出现了更具体的职业角色分化。本文首先分析了数据科学行业的总体发展趋势,然后深入地比较了机器学习领域中几个不同名称的职位的职能,对寻找数据科学和机器学习类工作的毕业生非常有指导意义。
大家好,我是杰森。我在硅谷工作,是一名数据科学家(关于这个名词,我们将在本文后面进一步定义),我热爱学习一切新事物!
引 言
说实话,这个话题在我脑海中已经萦绕很久了。但因为平时实在有太多的事情要做,我无法挤出时间来完成这项艰巨的任务。但是,如今由于新冠疫情的居家隔离令,我被困斗室,最近也快没啥事情能让我打发时间了,我终于下定决心来完成这个话题的写作。
随着数据科学行业自 2013 年以来的爆炸式流行,该行业一直不断地朝着更宽泛的方向发展,但同时也逐渐出现了更具体的职业角色分化。在该新兴行业的演进过程中,不可避免地导致了有一些岗位在名称和职能上出现了混淆和差异。例如,许多看似完全不同的职位但却在实际工作中扮演着相同的角色,或者有名称相同的职位却在实际工作中承担着不同的角色,这些职位头衔可能包括:
数据分析科学家,机器学习数据科学家,数据科学工程师,数据分析师 / 科学家,机器学习工程师,应用科学家,机器学习科学家……
这样的例子简直不胜枚举。即使对我来说,通常招聘人员也会因为数据科学家、机器学习(ML)专家、数据工程师等不同职位的招聘而与我联系。显然,整个行业对这些五花八门的职位都困惑不已。造成职位名称差异如此之大的原因之一是,实际上各个公司对数据科学的需求和用途本身就大相径庭。但无论背后原因是什么,如今数据科学领域似乎正在不断进行分化和合并,并逐渐形成以下几个主要工种类别:分析、软件工程、数据工程以及研究。 不管那些看似相似的职位是怎么命名的,通常它们都能归类落入这些类别。这种工种细化在那些财大气粗的大型科技公司中表现得最为真实。
在本文中,我们将首先了解数据科学行业的总体趋势,然后更深入地比较机器学习工程师和数据科学家两者的职能。我并不想在本文中去赘述一段漫长的发展历史,而是选择讲述我作为一名数据科学家生活在硅谷的所闻所见。即使在 2017 那年,我写过一篇文章“如何在还没有获得学位的情况下成为数据科学家”,现在和那时相比,我对数据科学的看法也发生了很大变化。
去年,我被邀请给 Metis 训练营 学习数据科学的学生们做一个简短的演讲,我当时谈到了这个话题。今天我想借用本文对这些职位的区别进行一番解释,并帮助你找到最适合你的工作角色。也让我们一起来看看,这个行业的发展是依然朝气蓬勃,还是已经日暮西山,因为预测发展趋势原本就是数据科学家的本职工作,对吗?(也可能不是吧)。无论如何,我衷心希望本文给你带去有用的信息。
数据科学行业的发展趋势
在我们深入挖掘信息之前,先看看我在 LinkedIn 上找到的两份职位描述。我已遮去了它们的职位名称,请读读下面的内容,试着猜一下这些招聘广告的原标题是什么。我用红色标出了一些关键点:
去年我在 LinkedIn 上发现了这两份职位描述。虽然有点过时了,但内容仍然贴切(资料来源:LinkedIn 和 Facebook)。
这两份职位描述相差甚远,是吧?但可能会让你大吃一惊的是,这两份职位描述都是针对数据科学家这个岗位招聘的。左边是 Facebook 的招聘广告,而右边是 Etsy 的。但在这里我并不想比较哪家的职位描述写得更好。重点是看看它们在内容上差异有多大。
以上职位描述的职位名称。Facebook(左)和 Etsy(右)(资料来源:LinkedIn 和 Facebook)。
即使在工作中,人们也常常会因为如何定义数据科学家而展开热议。我遇到过人们把数据科学家定义为 计算机科学专业的博士 或 新数据分析师。这其实是因为不同的公司对不同的职位都使用了数据科学家这样一个相同的术语。然而,我相信经过这么几年发展,这个行业应该有更细的分工以及更具体的职位定义,而不是把所有的东西都笼统地塞进数据科学这一广泛范围里。
那么,在数据科学家这个已经被滥用的职位名称下,实际上可能暗指哪些不同的具体岗位呢?在很大程度上,我认为这个职位有可能指的是 软件工程师、数据分析师、数据工程师和应用 / 研究科学家。我知道有不少朋友顶着相同的数据科学家头衔,但在实际工作中他们的角色是上述四者之一。请看看下面我创建的图表。在数据科学发展的早期,一名数据科学家的工作内容可能的确包含了这四个角色的职能。然而,如今的职位正变得越来越具体和细化,正如下图所示。
数据科学家工作内容发展趋势(资料来源:本文作者)。
《哈佛商业评论》预见了这样的发展吗?
这种发展趋势令人惊讶吗?根据 2012 年《哈佛商业评论》(Harvard Business Review)杂志上那篇著名的文章《数据科学家:21 世纪最令人称羡的工作》,这样的发展趋势也并不足以为奇:
数据科学家最基本、最通用的技能是编写代码的能力。但在五年后,这一点可能就会发生变化,因为会有更多的人会在他们的名片上印上“数据科学家”的头衔。
正如这篇文章所描述的,如今作为一名数据科学家,你并不一定非要成为一名优秀的程序员。那是因为,以前用来分析大数据的工具和方法并不是那么随处可得且用户友好。这就要求从前的数据科学家在拥有其他技能的同时还需要具备较强的工程技能。但是用于机器学习和数据科学的工具发展十分迅速,现在比以往任何时候都更容易获取这些工具,因此你只需几行代码就可以访问使用最先进技术(State of the art,SOTA)的模型。这使得以前的数据科学家角色如今更容易分拆成为分析师或工程师。现在,我们不必像以前那样,需要全面掌握所有分析、工程和统计知识才能成为一名数据科学家。
例如,Facebook 就引领了这一趋势的变化,让过去的数据分析师的工作角色变成了数据科学家。这是一个自然的演进过程,因为随着数据量的增加以及数据问题变得更具挑战性,执行良好的数据分析需要更多的专业技能和培训。不仅仅是 Facebook,像苹果和 Airbnb 这样的公司也已经开始明确区分数据分析师 / 产品数据科学家和机器学习数据科学家这样的角色岗位。
公司规模如何影响岗位的分化
值得一提的是,这样的角色岗位细分更多发生在规模较大的科技公司。数据科学家这个角色和软件工程师还是有很大差异的,固然各种大小规模的科技公司都需要软件工程师,但并不是所有公司都需要专业的研究科学家或机器学习工程师。许多公司拥有几名数据科学家可能就足以运转业务了。所以在小公司里,可能仍然会有一些数据科学家同时扮演上述四个角色。
根据一般的经验而言,大公司(FANG 四巨头:Facebook,Amazon,Netflix 和 Alphabet)的数据科学家职能通常类似于高级分析师,而小公司的数据科学家扮演的角色更类似于机器学习工程师。当然这两种职能对于公司来说都是重要和必需的。接下来,我将继续沿用这里我的新定义,即下文每当提及数据科学家时,意味着这是一个分析师角色。
数据科学家分化出的不同角色以及如何选择
在下面的图表中,我试图展示一个与上面的图表类似的图,但对这四种功能增加了更详细的描述。这些描述内容可能并不算完美,但你可以把它们作为参考。
数据科学家职能的四大支柱(资料来源:本文作者)。
求职——应该选择哪个职位以及如何准备面试?
如果你试图进入这个领域,无论是当一名机器学习工程师还是数据科学家,你可能首先想知道的是自己究竟应该选择哪一个岗位。请让我列出四个与机器学习相关的主要岗位简化的(但也是约定俗成的)描述,以帮助你弄清楚这些职位到底是干什么的。虽然我个人在工作中并没有将所有这些职位都尝试干过一遍,但我从工作在各个领域的朋友那里学到了很多有用的知识。我还在以下描述中的括号里提供了可能的面试内容(假设是典型的四轮面试)。
2. 机器学习工程师: 你想在实际业务中构建并部署最新的机器学习模型(例如 Tensorflow,,PyTorch)吗?你工作的重点不仅是构建模型,而且还需要编写软件以运行和支撑你的模型。在这个职位上,你更像是一个软件工程师。(面试:3 轮 Leetcode 编程,1 轮机器学习。)
3. 研究科学家: 你有计算机科学专业的博士学位,并在 ICLR 国际会议上发表过几篇机器学习相关的论文吗?你是否致力于突破机器学习的研究前沿,当你的论文被别人引用时会感到兴奋不已吗?能做到这些的人的确是凤毛麟角,相信如果能做到这些,你已经很明确自己想干什么样的工作了。而这类人才中的大多数最终都进入了谷歌或者 Facebook。而且,即使没有博士学位也可以进入这个行业,但这样的情况少之又少。(面试:1 轮 Leetcode 编程,3 轮机器学习 / 研究。)
4. 应用科学家: 你是机器学习工程师和研究科学家的混合体。所以这个角色不仅要关注编程,还需要去使用和推进最前沿(SOTA)的机器学习模型。(面试:2 轮 Leetcode 编程,2 轮机器学习。)
显然,以上这些描述并不算面面俱到。但当我和朋友聊起相关职位,看过很多工作描述后,我发现上述这些观点还是普遍适用的。如果你对自己想要申请的职位还是有些不太确定,这里我还有一些建议可以帮助你进一步了解工作职位:
机器学习工程师 vs 数据科学家
好吧,已经说得够多了。现在回到我们的话题上来。近年来,我开始听到人们对数据科学工作的负面评价越来越多。造成这种情况的几个原因是,越来越多冠以“数据科学家”的工作岗位貌似并不像从前一样包含许多高端的机器学习成分,而且这样的职位似乎比以前更容易获得。也许五年前,大多数招聘岗位描述会要求至少有硕士学位才能应聘数据科学家的工作,但现在情况已经大不一样了。不管人们如何揣测数据科学(至少在过去日子里)热度已过的原因,请让我们先来看一些实际数据。
下面的数据和图表来自世界著名的薪资数据库搜索引擎,Salary Ninja。它根据 H1-B 数据库中全美的外籍员工的信息进行搜索。你会看到 2014 年至 2019 年,职位名称中含有“数据科学家”或“机器学习工程师”的职位的数量和平均工资。
比较数据科学家和机器学习工程师的工作机会变化趋势(资料来源:本文作者)。
你对这一结果感到惊讶吗?尽管这两个职位的平均工资大致差不多,但你可以看到数据科学家的平均工资在 2015 年和 2016 年有所下降。大概这就是人们所说的,数据科学家的好日子一去不返了吧。但就纯粹工作数量而言,数据科学还是远远大于机器学习工程,但你可以看到相比之下机器学习工程师工作数量的增长速度更快,且平均薪水也更高。
为了方便你阅读,我在下面总结了从 Salary Ninja 收集的本文讨论的几个角色的统计数据。第一张表展示了过去六年的统计,又抽出其子集在第二张表里仅展示了 2019 年的最新数据统计。最后,我列出了微软这一家公司六年以来的数据统计。
几个与机器学习有关的职位的简要统计(资料来源:本文作者)。
从以上数据中,我得出有趣的几点见解:
根据这些数据,我认为,也不能就武断地说数据科学行业已经走向萧条。这个行业仍在增长,但今后可能会更加专注于分析方向。根据我的观察,如今似乎有更多数据科学领域的工作岗位降低了准入门槛,但这也并不算是一件坏事。
结 论
到这里,本文已经讲了很多,但我仍希望你能读完最后这一部分。我写这篇文章是因为,面对这个行业正在发生的所有变化,我自己也常常感到困惑。而且,人们似乎对什么是数据科学有太多五花八门的看法。无论谁对谁错,我希望你能看到发展的趋势,并自己做出决定。
最后,不要因为一个工作或行业的平均薪酬较高或热度较高就轻易地对它做出选择。你的头衔是数据科学家、机器学习工程师还是数据分析师,这些并不重要。如果有人说数据科学家其实就是工程师,或者就是分析师,这些也不重要,因为这两种说法都可能是对的。
虽然很容易根据薪水高低来比较职位头衔,但选择一个你喜欢并且擅长的职位才是真正重要的事情。请专注于你所做的实际工作,并确保这份工作与自己契合。别因为平均工资看上去较低就产生错误的印象,这并不一定意味着你的实际工资会比别的工作低。正如你在前面表格中看到的,本文讨论的所有职位它们的最高年薪都相当地高。
在我结束本文之前,还有一些其他的资源和更多的信息可以供你参考:
文章地址:https://www.linkedin.com/pulse/one-data-science-job-doesnt-fit-all-elena-grewal/