数据科学家与软件工程师能否一人兼顾?
极客时间编辑部
讲述:丁婵大小:5.06M时长:03:40
在很多人看来,数据科学家和软件工程师这两种角色所需要的技能有很大差别,没法做到一人兼顾。近日,身为数据科学家、软件工程师的尼古拉·齐夫科维奇(Nikola M. Zivkovic)发文打破了这个说法,他试图从 5 个方面说明这两种角色所需要的技能并不像人们所说的差得那么远。以下为齐夫科维奇的观点。
1. 简洁的代码
数据科学家都是聪明人,他们的数学能力和从不同角度看待数据的能力令人叹服。但是,有时候阅读和理解数据科学家的代码可能会让你感到巨大的痛苦。就这点来说,数据科学家和软件工程师相差甚远。优秀的软件开发人员懂得如何用简洁的代码来表达复杂的思想和概念。
有一种观点认为,编码只是数据科学家的一个临时工具。在未来,工具将朝着可视化的方向发展。这种说法在某种程度上也没错。但是,需要注意的是,这些工具究竟可以帮助你走多远?编码技能是必不可少的,至少在很长一段时间内是这样。在编码方面精益求精对于个人和整个团队来说都有巨大的好处。
2. 版本管理和自动化
机器学习模型和神经网络最终会被部署到某种应用中,但有时候它们也需要进行重新训练和维护,其中一些需要额外的人工输入。软件开发人员知道在部署过程中可能会出现哪些风险,他们还知道如何通过(模型的)版本控制来降低这些风险,以及如何对部署和训练进行自动化。
3. 数学
之前已经说过,数据科学家具有高超的数学能力,这是毫无疑问的。但软件开发人员通常也具有扎实的数学功底,特别是那些拥有计算机科学学位的人。当然,他们很可能会把线性代数和概率论忘掉,不过这个问题很容易解决。
最重要的是,优秀的软件开发人员能够快速地吸收知识,并将其应用到不同的技术中。如果一个开发人员具备了数据科学知识,他可以很容易地从 Python 转到 R 语言。
4. 数据
除了统计学家和数据科学家,还有谁会天天与数据打交道?显然是软件工程师。从职业生涯的第一天开始,开发人员就要学习各种存储、读取和显示数据的方法。
除此之外,懂得如何使用 NoSQL 数据库(如 MongoDB)在近几年来也成了一项必备技能。开发人员也因此具备了大量非结构化数据方面的经验。另外,大多数软件开发人员都知道如何开发 Web 爬虫。
5. 面向客户和演示
数据科学家需要为客户找到最佳的解决方案,并帮助他们改进业务。数据可视化和说明某些业务决策的基本原理是他们工作的组成部分。软件开发人员通常不太熟悉业务流程,但他们能够理解需求,并知道需要做些什么。技术团队负责人和软件架构师通常具备这些技能,所以在与客户的初始研讨会中,他们会显得非常有用。除此之外,如果开发人员经历过敏捷开发,他们可能会习惯于定期向利益相关者展示软件的功能特性。
以上就是齐夫科维奇的观点,你认同吗?
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(1)
- 最新
- 精选
- 小宇好的工程师,数学能力一定是不差的。数据科学家(国内一般是xxx算法工程师或数据分析师)在实际工作中用到的算法也并不多也没那么高深,但应该是系统的。所以做一个算法等内功能力强的工程师是有前途的,知识一定要系统。2
收起评论