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