国外 ETL 服务商 Stitch 的 CEO Jake Stein,近日对这个话题进行了总结。他还绘制了一张工具图,来呈现他们在日常工具使用上的不同。对于新手,也可以通过这张图来看典型的“数据科学家”、“数据工程师”和“软件工程师”都要掌握哪些工具。
Jake Stein:随着数据的爆炸式增长,对数据处理的专家技能需求也随之井喷。这带来的结果之一,是更精细的分工。对于数据管理工作的核心角色:数据科学家、数据工程师和软件工程师,过去几年见证了他们越来越清晰的定位。
对于新兴职位“数据工程师”,它算是“软件工程师”下面新浮现出的一个子类别。单列出该职位是一项英美近年来的趋势。但在许多公司,迁移、管理数据仍旧是软件工程师的活。
三种数据职位的不同技能需求
职能概括
软件工程师
软件工程师干的活儿是开发应用和系统。这过程中的每一个环节,从设计、写代码、测试到检查,开发者都要参与。生成数据的产品都是他们开发的。软件工程是三个角色中最古老的一个,并且有相当成熟的方法体系和工具库。
工作内容包括:
- 前端、后端开发
- 网页应用
- 移动应用
- 操作系统开发
- 软件设计
数据工程师需要开发能对数据进行整合、存储和提取的系统,并从软件工程师开发的应用和系统中获取数据。数据工程的诞生,是作为软件工程大类下的一个更细分的技能类别。据雷锋网了解,根据国外统计,40% 的数据工程师原本是软件工程师。雷锋网获知,这是目前一个很普遍的职业发展道路(软件工程师专注做数据工程)。
工作内容包括:
- 高级数据结构
- 分布式计算
- 并发程序设计
- 使用 Hadoop, Spark, Kafka, Hive 等新工具
- 开发ETL/数据流水线(data pipelines)
数据科学家的职责是基于数据作分析。
或许有一只想要更好理解消费者行为的团队,仅仅做一个单次分析。也可能是开发一个机器学习算法,然后将之在软件工程师和数据工程师开发的代码基础上执行。
工作内容包括:
- 数据建模
- 机器学习
- 算法
- 商业智能的 dashboards