本文转载自公众号“读芯术”(ID:AI_Discovery)
如果一个应届毕业生或跳槽者问我该如何进入数据科学领域,我会告诉你,转行成为一名软件工程师,而不是数据科学家。
可能你会感到奇怪,许多人都渴望成为一名数据科学家,数据科学可能是21世纪最热门的工作,但这却让另一个高薪职业贬值——软件工程师。
如求职者在数据科学和软件工程领域均有经验,我的答案是从事后者。接下来我会告诉你原因。
1. 海量的软件工程职位
与数据科学相比,软件工程领域的岗位需求要多得多。以下是用谷歌搜索“数据科学家”和“软件工程师”岗位得到的两张截图。
谷歌搜索结果:美国数据科学家职位
谷歌搜索结果:美国软件工程师职位
搜索结果显示有7616份数据科学职位,而软件工程职位高达538893份。而这仅是美国的就业机会,其他国家的搜索结果也类似。
Glassdoor称数据科学家的收入更多,而未经笔者验证的假设则是:数据科学岗位的平均年龄也更高。
图源:www.glassdoor.ca
图源:www.glassdoor.ca
也就是说,如果Open AI100承诺年薪一百万美元,那么我建议您接受这个offer。
2. “数据科学”的含义尚未达成共识
通常,管理层对“数据科学”的含义无法达成共识。也许,在业务限制的情况下,管理者们并没有严格遵循角色框架。这意味着“数据科学家”的职责因公司而异。
虽然软件工程师和数据科学家之间可能存在一个理想的角色范围,但在现实工作情境中也许会超出此框架。对于规模扩展并仍在构建数据基础架构的初创公司而言,尤其如此。
被聘用的候选人最终会致力于公司目前需要解决的问题,而不是专注于对应的岗位“角色”。该领域同事透露,许多数据科学家发现自己像软件工程师一样在编写后端代码,甚至有些 “数据科学家”在用excel处理财务数据。
这与你在Kaggle竞赛中不断成长并形成的期望可差得远。
3. 孤立的数据科学
大多数公司对数据科学家的需求程度不如软件工程师。一些公司目前正聘请其首位数据科学家。这就意味着,即使和开发人员共处一桌,许多数据科学家最终只能独自工作。
图源:unsplash
这使数据科学家很难获得工作反馈和其他意见。因为软件工程师要么不理解预测建模,要么忙于处理与数据科学完全不同的问题。
相比之下,加入软件工程团队的一大优势就是能够对同事们说:“我认为我们应该以XYZ的方式实施ABC。您有什么看法?”
4. 探索性的数据科学
如果你铁了心要做数据科学家,那么要准备好与管理层进行尴尬的谈话,解释一下您花了两周完成的东西为何不能使用。
研究已解决和未解决的问题是软件开发和人工智能的根本区别之一。除了故障和约束外,在开始任何工作之前,您应了解大多数软件工程项目的可行性。在机器学习中,只有构建了模型之后才能评估其有效性。
5. 公司尚未做好使用AI的准备
即使每个公司都进入了AI时代,大多数公司没有支持AI的数据基础架构,甚至不需要该架构。
一家发展迅猛初创企业的数据科学主管最近在闲聊时分享了一些建议。首先找出问题,然后构建基础设施,随后引入数据科学家。这并不是一个快速的过程。而另一家知名公司的首批数据科学员工向我抱怨。她被迫在笔记本电脑上训练人工智能模型,而非云端。
图源:agilityexchange
如果没有待解决的具体问题,或者公司没有引入数据科学的充分准备,也许您会发现自我增值比较困难。
6. 软件工程传授通用技能
成为一名初级软件工程师好似攻读一个科技MBA学位。什么方面都得学一点。你将学习数据库、云技术、部署、安全性和编写简洁代码;你得通过观察Scrum领导者、高级开发人员或项目经理来学习管理构建软件;你还得通过代码审查获得指导。
如果是在一家拥有成熟工程团队的公司工作,你将迅速提升技能并建立通用背景。
7. 软件工程更灵活
通过提供更全面的技术体验,软件工程可以在你决定进行工作变更时提供更好的退出机会。DevOps,网络安全,前端,后端,分布式系统,商业智能,数据工程,数据科学等领域…
我认识许多从软件工程转到数据科学的开发人员。如果浏览过数据科学的职位描述,你会发现它们包含了各种核心的软件开发技能。
如果你可以构建端到端项目,那么除了为Kaggle构建模型外,你还可以做更多的事情。例如采用该模型进行生产,设置授权和Stripe预扣款,然后开始向用户访问费用。现在你也拥有了自己的创业公司。
我从不认为数据科学不可转让。基于数据做决策是一项绝妙技能,但随着人类越来越受数据驱动,数据本身也将成为每个工作的一部分。
8. 机器学习将助力软件工程师
随着人工智能的商业化和易用性程度增强,软件工程师将开始使用AI来解决相应问题。
图源:unsplash
我能够在下午教会一位开发人员构建Sklearn分类器。这并不意味着他们可以构建下一个AlphaGo,但它确实为他们提供了一种基于用户输入硬编码条件逻辑的替代方案。
这是普遍现实。经验丰富的软件从业人员可以在不同的专业之间进行转换,其速度与业内新进入者不在一个级别。虽然我认为数据科学与软件工程不会完全合并,但数据科学很可能会成为另一个软件工程专业。
9. AI不会取代软件工程师
我在2014年就进入了软件工程领域工作,因为我担心AI会让其他工作落伍。但从那以后,时间放慢了。技术采用缓慢,AI的应用范围不如媒体吹嘘的那么神奇。
图源:unsplash
与其他专业相比,机器学习与软件工程自动化相差甚远。虽然一些初创公司正在开发炫酷产品,比如AI自动编码,但编写代码并不是核心工作。主要的工作内容是用技术解决问题。
“驾驭未来”,这将仍是一项宝贵的高薪技能。
以上只是笔者拙见,如果你有不同的看法当然没问题。我希望你能自己研究得出结论,毕竟,这也是数据科学家工作的一部分,不是吗?