|
|
51CTO旗下网站
|
|
移动端
创建专栏

身为一名数据科学家“过来人”,我为什么更建议你去做软件工程师

作为前数据科学家和现软件工程师,作者给出了过来人的建议。让我们听听他为什么劝想做数据科学家的勇士不如去做软件工程师。

作者:大数据文摘|2020-05-15 14:17

大数据文摘出品

来源:medium

编译:朱科锦、yawei

在数据最火的时候,数据科学家被称为21世纪最性感的工作,一时进入了全民数据科学的时代。数据科学的价值虽然有目共睹,但不是每个公司都有条件来实现数据驱动的商业愿景,每个公司的数据基础设施水平层次不齐,有些远达不到数据科学家可以大展拳脚的水平。

作为前数据科学家和现软件工程师,作者给出了过来人的建议。让我们听听他为什么劝想做数据科学家的勇士不如去做软件工程师。

当有人问我如何进入数据科学领域时,我建议他们去做程序员。

这只是我的个人观点。我很希望能听到你的反驳意见。

每个人都希望成为一名数据科学家。虽然数据科学可能是21世纪最火热最的工作,但是软件工程师也同样是一份回报率很高的职业。

经常有应届生和跳槽者来问我要如何进入数据科学这个领域。我给他们的建议是:还是去做软件工程师吧。

我在这两个领域都有经验,我想用亲身经历说服你,软件工程师是更好的选择。

1. 软件工程领域的就业机会更多

与数据科学相比,软件工程领域的工作机会要多出一个数量级。以下截图展示了谷歌搜索“数据科学家”和“软件工程师”工作后的搜索结果。

谷歌搜索:indeed(求职网站)美国数学科学家

谷歌搜索:indeed 美国软件工程师

我们可以得到7616条有关数据科学工作的搜索结果和53,8893条有关软件工程工作的搜索结果。该搜索只是针对于在美国的工作,在其他国家试下来也有类似的结果。

根据Glassdoor的说法,数据科学家能赚更多的钱,但根据我个人未经检验的假设,数据科学工作的平均所需的工作经验也要求更高。

www.glassdoor.ca

www.glassdoor.ca

但如果Open AI给你开出100万美元的薪水,我建议你还是接下这份工作。

2. “数据科学”的定义仍没有达成共识

管理层通常无法对“数据科学”的定义达到共识。由于业务限制,完全尊重该职位的本来定义有时也是一种奢侈。这意味着“数据科学家”的职责因公司业务需求而异。

一张简图

尽管软件工程师和数据科学家之间存在很多不同的角色分工,但现实不太可能遵循这种明确的职责划分。仍在搭建基础架构的初创公司尤其如此。

被聘用的候选人最终将致力于解决公司当前最需要解决的问题,而不是解决他们被录用“职位”的工作范畴内的问题。

很多同事的经验表明,许多数据科学家发现自己像软件工程师一样在编写后端代码。我还认识一些精通Excel和财务工作的“数据科学家”。

这与你在经历Kaggle比赛中成长时的期望形成了鲜明的反差。

3. 数据科学家们仍处于孤军奋战的状态

大多数公司不需要像软件工程师那样多的数据科学家。很多公司目前正在雇用他们的第一位数据科学家。

因此,即使与开发人员坐在同一张桌子上,许多数据科学家最终还是独自工作,这样工作的问题是很难获得别人的反馈。软件工程师们要么不了解预测建模,要么忙于处理完全不同的问题。

相比之下,当软件工程团队的好处之一就是你有机会对同事说:“我认为我们应该以XYZ方式实施ABC。你怎么看?”。

4. 数据科学是偏探索性质的工种,不保证结果

你准备好跟你的老板解释为啥过去两周以来的劳动成果不能用于提高业务了么?这种尴尬的对话时常会发生。

解决已知的问题或是未知问题是软件开发与AI之间的根本区别之一。

暂且不谈代码问题和其他限制,作为软件工程师,在开始工作之前你大概知道大多数软件工程项目是否可行。但在建立一个ML模型之前你并不能知道该模型是否会有效。

5. 公司还没有准备好使用AI

即使在“每个公司都是AI公司”的时代,大多数公司没有支持AI的基础架构,很多公司甚至不需要AI。

一家快速扩展的初创公司的数据科学主管最近分享了一些建议。

首先,你要发现问题,然后构建基础架构,然后请数据科学家来解决问题。这不是一个可以快进的过程。

最近,另一家知名公司雇佣的第一位数据科学家向我抱怨到:她被迫在笔记本电脑而不是云端的大数据上训练AI模型。

如果你没有特定的问题要解决,或者公司没有做好数据科学战略的准备,那么你很难体现自身的价值。

6. 软件工程学习更普适的技能

成为初级软件工程师就像获得一个科技领域的MBA一样。你可以在很多方面都学到一点知识。

你会学习数据库,云技术,部署,安全性以及如何编写简洁的代码。

通过敏捷大师,高级开发人员或项目经理,你将学习如何管理软件开发的过程。

通过代码审查,你将得到很多指导。

如果你加入的公司拥有一支成熟的软件开发团队,毫无疑问你会迅速提高自己的各项技能。

7. 软件工程的经验更容易迁移

当你决定进行跳槽时,软件工程可以提供更全面的技术经验,从而给你更好的就业机会。

DevOps,安全性,前端,后端,分布式系统,商业智能,数据工程,数据科学…

我知道许多从软件转向数据科学的开发人员。如果你搜索数据科学的职位描述,你会发现它们包括了很多核心的软件开发技能。

资料来源:Indeed(我精选了资料来源)

如果你可以搭建端到端的项目,那么除了为Kaggle构建模型外,你还可以做更多的事情。你可以搭建一个模型,进行生产化,设置授权和Stripe(线上支付),然后开始向访问用户收费。那么你已经可以做自己的创业公司了。

我不是说数据科学的经验不适合迁移。根据数据做决定是一项重要的技能。但是随着社会变得越来越受数据驱动,这种技能也将成为每一项工作的一部分。

8. 机器学习将成为软件工程师的一项工具

随着AI的商品化和使用简化,软件工程师将开始使用AI来解决他们的问题。

我可以用一下午教一位开发人员如何构建Sklearn分类器。这并不意味着他们可以构建出下一个AlphaGo,但这确实为他们提供了一种可替代基于用户输入的条件逻辑编码的方法。

数据科学家具有关于统计以及模型工作原理的专业知识和直觉。但是运维和安全工程师也有他们自己的专业知识。

我认为这几者的相同比不同更加普遍。经验丰富的软件专业人员可以在不同专业之间迁移,其适应速度可以比新入职者更快。

虽然我不认为数据科学会完全整合到软件工程中,但我确实感觉数据科学可能会成为另一个软件工程专业。

9. 人工智能不能取代软件工程师

因为担心AI会取代其他工作,我于2014年进入软件工程领域。

自那以后,AI并没有像我想象得那样快速发展。技术的场景落地速度很慢,而AI的使用范围也远没有媒体所宣传得那么广。

与其他工作相比,机器学习要实现把软件工程自动化的进程更路漫漫。虽然有一些新兴公司在开发诸如“AI编写代码”之类的出色产品,但编写代码并不是真正的工作。真正意义上的工作是指使用技术去解决问题。在AI拥有这项能力之前,编程将仍然是一项宝贵且高薪的技能。

结语

首先,这篇文章只是经验之谈。其次,我把数据科学家,机器学习工程师和AI研究人员粗略地归为一类,这三类工作有其个体差异。但是我认为我的论点仍然值得你考虑,毕竟这关乎你的职业选择。

不要太把我的观点当真。我希望你做好充分的行业研究然后做出自己的决定。这也是成为数据科学家的一部分:) 。

归根结底,我们通过解决问题来获得报酬。

相关报道:https://towardsdatascience.com/dont-become-a-data-scientist-ee4769899025

【本文是51CTO专栏机构大数据文摘的原创译文,微信公众号“大数据文摘( id: BigDataDigest)”】

     大数据文摘二维码

戳这里,看该作者更多好文

【编辑推荐】

  1. 不能忘记!数据科学家面试时应该掌握的3个编程概念
  2. 数据科学家应该避免的5种统计陷阱(附链接)
  3. 2019数据科学家最需要的技能盘点,Python大火,Pytorch职位需求翻番
  4. 疫情期间自我提升指南:十大资源,为你铺平数据科学家之路!
  5. 我,一位数据科学家,用亲身经历告诉你:为啥数据科学家都在离职
【责任编辑:赵宁宁 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢