数据科学家这一职位越来越火热,人人都想从事数据科学,这不仅因为这份工作听上去高大上,更重要的是,它真的是一份高薪的工作。但是,数据科学家是人人都能做得来的吗?
大家好,我是梦想家Alex 。相信很多小伙伴对于数据分析和数据科学家的区别很感兴趣 。正好最近我从锋哥那里找到了这篇文章 。本文系一篇观点文章,我很乐意听到读者的反驳意见。
成为一名数据科学家是每个人的梦想。甚至连奶奶级的人也想当数据科学家。但是,尽管数据科学可能是 21 世纪最性感的工作,但另一个报酬也同样丰厚的高薪职业——软件工程师,却被低估了。
我经常会收到写刚毕业的学生和想改行的人写来的信,向我寻求从事数据科学的建议。我给他们回信说应该要去做软件工程师。
鉴于我在数据科学家和软件工程师都有经验,我会试着说服你去成为软件工程师。
软件工程的工作岗位更多
与数据科学相比,软件工程领域的工作岗位要多上一个数量级。
下面是我在 Google 上搜索 Indeed(一家招聘网站)上的 “数据科学家” (Data Scientist)和 “软件工程师” (Software Engineer)岗位的截图。
从搜索结果来看,数据科学岗位有 7616 个,而软件工程的岗位有 538893 个!这还只是美国的就业情况,但其他国家也显示出类似的结果。
据 Glassdoor 的调查结果称,数据科学家的收入更高,但以我未经验证的假设是,数据科学领域的工作平均而言也更高级。
也就是说,如果你得到了 Open AI 给的 100 万美元薪水的工作机会,我会建议你要抓住这个机会。
“数据科学” 的含义还没有达成共识
管理层对 “数据科学” 的含义往往没有达成共识。也有可能是由于业务上的限制,他们没有办法生搬硬套一个角色框架。
这意味着 “数据科学家” 的职责因公司而异。
虽然从软件工程师到数据科学家之间的理想角色有可能存在,但在现实中却不大可能实现。这点对于那些仍在建设基础设施的初创公司来说尤为如此。
被录用的应聘者最终都是为了解决公司目前需要解决的问题,而不是他们可能被录用的 “角色” 。
来自该领域同事的轶事证据是,许多数据科学家发现,自己像软件工程师一样也要编写后端代码。我还认识其他所谓的 “数据科学家” ,他们是用 Excel 处理财务数据。
而这与参加过 Kaggle 的你的期望大相径庭。
数据科学是孤军奋战的工作
大多数公司并不像软件工程师那样需要那么多的数据科学家。其他公司正在招聘他们的第一位数据科学家。
由于这个原因,许多数据科学家最终都将是孤军奋战,即使他们和开发人员在同一张桌子上工作,也是如此。
这可能会导致很难获得反馈和第二种意见。软件工程师要么不懂预测建模,要么忙于处理完全不同的问题。
相比之下,在软件工程团队的好处之一就是能够对同事们说:“我认为我们应该用 XYZ 的方式实现 ABC。你有什么看法?” 。
要从事数据科学的工作,请做好和你自己或者一只橡皮鸭进行这样的对话的准备。
数据科学是探索性的工作
你要做好与管理层进行尴尬对话的准备,解释为什么你花了两个礼拜的时间做的东西还不能用。
致力于解决已解决的问题与未解决的问题,是软件开发与人工智能的根本区别之一。
撇开错误和约束不谈,在开始任何工作之前,你就应该知道大多数软件工程项目是否可行。但在机器学习领域就不能这样说了,因为你只有在构建模型之后才会知道模型是否有效。
公司还没有为人工智能做好准备
即使在每家公司都是人工智能公司的时代,大多数公司也不具备支持人工智能的基础设施,甚至不需要它。
最近,一家快速扩张的初创公司的数据科学负责人在与我喝咖啡的时候分享了一些建议。
首先,要找出问题所在,然后构建基础设置,再引入数据科学家。这可不是一个快速的过程。(我的转述大意)
最近,另一家知名公司的从事数据科学的零号员工向我发泄。她吐槽称,她被迫在笔记本电脑上而不是在云端上的大数据训练人工智能模型。
如果你被录用后没有具体的问题需要解决,或者公司没有做好数据科学的准备,你可能会发现自己很难提升价值。
软件工程传授通用技能
成为一名初级软件工程师就像获得了技术领域的 MBA,你所学到的东西都只不过是沧海一粟。
你要学习数据库、云技术、部署、安全性和编写简洁的代码。
你要通过观察 Scrum 领导、高级开发人员或项目经理来学习如何管理软件的开发。
你要通过代码审查来得到指导。
如果你进入的公司拥有一支成熟的工程团队,你几乎可以保证你会很快提升自己的技能,并打造出一个通才的背景。
软件工程更具可转移性
通过提供更全面的技术体验,当你决定是时候改变时,软件工程提供了更好的退出机会。
DevOps、安全、前端、后端、分布式系统、商业智能、数据工程、数据科学……
我认识一些从软件行业改行到数据科学的开发人员。如果你浏览一下数据科学的岗位描述,你会立即注意到,岗位描述到处都是核心的软件开发技能。
如果你能构建端到端的项目,那么你还可以做更多的工作,而不仅仅是为 Kaggle 构建模型。你可以采用该模型,将其产品化,设置授权和条码,然后开始向用户收取访问费用。这就是你自己的初创公司。
我从来不认为数据科学是不可转移的。根据数据做出决策是一项杀手级技能。但随着我们变得越来越以数据为导向,这也将成为我们每一项工作的一部分。
机器学习将成为软件工程师的工具
随着人工智能的产品化和易于使用,软件工程师将开始使用人工智能来解决他们的问题。
我可以用一下午的时间教会开发者如何构建 Sklearn 分类器。但这并不意味着他们可以构建下一个 AlphaGo,不过,这确实给了他们一个替代基于用户输入的硬编码条件逻辑的选择。
数据科学家有专业知识,比如统计学,以及对模型如何工作的直觉。但 DevOps 和安全工程师也有自己的专业知识。
我认为这些都是常见的,没有什么不同。一个经验丰富的软件专业人员在不同专业之间的转换速度比一个新入行的人选择一个专业的速度要快一个数量级。
虽然我不认为我们会看到数据科学完全合并到软件工程中,但我确实感觉数据科学有可能会成为另一个软件工程专业。
人工智能不会取代软件工程师
尽管这观点听起来很傻,但我在 2014 年进入了软件工程领域,因为我担心人工智能会让其他工作都被淘汰。
然而从那时起,这一状况就几乎没怎么变过。技术采用的速度很慢,人工智能的应用范围比媒体想象的要窄得多。
与其他专业相比,机器学习离自动化软件工程更远。虽然我们有初创公司在构建酷炫的产品,比如人工智能代码完成,但编写代码并不是真正的工作。这项工作是用技术来解决问题。
在奇点出现之前,软件工程仍然将是一项宝贵的高薪技能。
结 语
首先,本文所述都是轶事。其次,我意识到我将数据科学家、机器学习工程师和人工智能研究人员混为一谈了。但我认为,这些论点仍然值得考虑,因为这是你的职业。
我姑妄言之,你姑妄听之,不必太过当真。我希望你自己研究一下,然后再做决定。这毕竟是作为数据科学家的一部分。
说到底,我们的工作就是解决问题。
参考阅读:
https://towardsdatascience.com/dont-become-a-data-scientist-ee4769899025