你该选择哪个职业呢?数据科学家、数据分析师和数据工程师

  每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行! 订阅:https://rengongzhineng.io/

许多人,在技术行业内外,对不同的数据角色及其职责感到困惑。这可能会使得想要进入该领域的人难以知道哪份工作适合他们的技能,以及与他们想要做的事情是否一致。因此,在这篇文章中,我想详细解释数据科学家、分析师和工程师之间的区别。


下面的图表展示了公司内部的基本数据流。

这并不是普遍适用的,不同的组织之间可能会有所变化。

公司内部的数据流。作者绘制的图表。
让我们来详细分析这些步骤:

  • 收集 — 这主要是关于从你可能需要的来源收集数据。要获取数据,你需要从组织拥有的网站或产品中进行日志记录和API调用。
  • 存储 — 现在我们有了数据,需要存储它以便我们可以访问。数据可以存储在许多地方和形式中,如关系数据库、云基础设施(如S3桶),甚至是某个服务器上的普通旧CSV。为此,你需要构建健壮的数据管道。
  • 转换 — 尽管我们有了数据,但它可能不是在一个很好的格式中。所以,我们需要转换它来清理并创建有用的表格。
  • 分析 — 数据清理干净后,我们可以开始从中收集洞察,以帮助推动业务决策。
  • 优化 — 数据生命周期的最后顶点是使用洞察来优化公司内部的流程,通过预测分析、建模和测试来实现。

角色要求概览


公司内不同的数据角色将控制数据流的不同部分。通常,数据工程师将使用管道来收集和存储数据。收集步骤也可以与软件工程师协作完成。

转换阶段是由这三个角色以某种方式完成的,至少根据我的经验是这样。数据科学家需要转换数据以进行模型训练,分析师转换数据以收集洞察,工程师通过数据建模转换数据以创建更好的表格。

然后,数据分析通常由数据分析师完成。最后,数据科学家负责流程中的优化步骤。尽管如此,数据科学家可能会发现自己有时也在进行一些分析,反之亦然。

我想强调的是,根据我的经验,角色之间的界限并不是固定的,而是经常相当流动的。如果你是一名数据工程师,你可能会发现自己有时也在进行一些分析和预测建模。这取决于你的组织结构和你的角色需求。

在大公司,你的技能将会更加专业化。数据科学家只会做建模部分,工程师只会做收集和存储方面的工作。而在小公司,比如初创公司,你更有可能是全能选手。在申请工作时请记住这一点!

还有另一件事需要注意,那就是每家公司对数据角色的定义往往不同。一家公司的数据科学家可能在另一家公司是数据分析师。因此,在申请前仔细阅读职位描述非常重要。

无论如何,让我们分解这三个数据角色以及他们执行工作所需的技能和工具。

数据工程师


如上所述,数据工程师基本上是数据生态系统的基础,因为他们是获取和存储数据的人。他们的总体目标是构建健壮且可持续的数据管道和基础设施,以服务分析师、科学家和任何想要在公司内部使用数据的人。

以下是成为数据工程师所需的技能和工具:

  • 编码 — 作为工程师,你需要能够编码。你需要知道的主要语言是Python和SQL,但像NoSQL、R和Java这样的语言也很有用。
  • 数据库和存储 — 现在,关系型和非关系型数据库是存储数据的主要方式,因此了解它们的工作方式和功能非常重要。常见的学习对象包括MySQL和PostgreSQL。你还需要了解数据仓库和数据湖等内容。
  • 命令行和终端 — 像任何技术职业一样,使用命令行执行命令、编辑文件和运行脚本是很重要的。
  • ETL(提取、转换、加载) — 这些工具有助于构建数据管道,比如Apache Airflow。
  • 云计算 — 许多数据工作流程,以及一般的技术工作,都是通过云计算完成的。现在几乎是基本要求,要理解AWS、Azure和Google Cloud等平台。


这并不是一个详尽的列表,因为每个公司的数据工程师角色都不相同。

数据分析师


数据分析师的主要工作是从数据中提取有意义的洞察,以帮助业务。作为分析师,你通常比数据工程师更接近业务端,因此领域知识很重要。

以下是成为数据分析师所需的技能和工具:

  • 编码 — 一般来说,分析师主要需要了解SQL。Python对许多角色来说很有用,但不是必需的。
  • Excel — 对于任何行业的任何分析任务,Microsoft Excel都是黄金标准。作为分析师,你必须非常熟练地使用它。
  • 仪表板 — 你需要能够以清晰的方式将你的发现呈现给利益相关者。使用Power BI和Tableau等工具通过仪表板进行呈现是最佳方式。
  • 分析技能 — 分析师经常运行实验,如AB测试,因此擅长数学和统计学是必需的。
  • 沟通 — 如上所述,你经常需要向非技术利益相关者展示你的发现,因此能够以易于消化的方式传达你的结果至关重要。

像数据工程师一样,这个列表绝不是详尽的,某些公司可能还需要分析师具备其他技能。

数据科学家


作为数据科学家,你的主要目标是创建预测性和机器学习算法,以帮助业务做出决策和自动化流程。你可能会进行预测、优化,甚至是深度学习,这取决于你工作的行业和领域。

以下是成为数据科学家所需的技能和工具:

  • 编码 — Python和SQL是必须的。Python因为大多数机器学习包都是用这种语言编写的,SQL用于收集你的训练数据。
  • 机器学习 — 你需要对机器学习算法及其工作原理有良好的
  • 理解,因为这是你大部分时间都在做的事情!
  • 数学和统计学 — 要理解机器学习,你需要在线性代数、微积分和贝叶斯统计等领域精通数学和统计学。
  • 云计算 — 许多算法和数据科学产品都部署在云上,因此熟悉云系统是很好的。
  • 命令行和终端 — 数据科学家相当多的时间在生产代码中工作,因此精通Bash和Z-Shell脚本非常有用。
  • 沟通 — 你经常需要向非技术利益相关者展示你的发现和模型,因此能够以易于消化的方式传达你的结果至关重要。

该选择哪一个?


最终的问题是,你应该选择哪个数据角色?在我看来,这取决于你的技能集在哪里以及你对什么感兴趣。我认为成为分析师是最容易的,因为它的要求较少,所以你可以更快地获得第一份工作。它也是对任何关注业务的人来说最好的角色。数据科学家的工作主要针对喜欢数学和统计学的人,而数据工程师非常适合喜欢技术方面的人。无论你选择哪一个,记住,无论标题如何,各公司的角色和职责都会有所不同。因此,确保你仔细阅读职位描述,以准确了解你每天将要做的事情!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/781276.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CQ 社区版2.10.0 | 新增 SQL 审核、全新英文版上线…

三月中旬,我们预告了 CloudQuery 社区版即将上线的「SQL 审核」功能。现在,它来了! 本次社区版 v2.10.0,除了 SQL 审核功能,我们还在手动授权、连接分组等模块做了新功能和优化。 新增功能 新增 SQL 审核功能 支持…

路径规划——搜索算法详解(二):Floyd算法详解与MATLAB代码

上次总结了Dijkstra算法的案例原理与代码,本文分享第二种比较基础且易懂的方法为Floyd算法,该算法可以有效正确地处理有向图的最短路径问题,与Dijkstra算法不同,Floyd算法是一种动态规划算法,对于稠密图效果显著。原理…

安达发|APS计划排产系统帮助纺织业实现企业数字化管理

APS(高级计划排产系统)是一种基于供应链管理和约束理论的计划排产工具,它通过模拟和优化企业的生产、物流等运作过程,帮助企业实现精细化管理。在纺织业中,APS的应用可以极大地推动企业数字化管理的进程,具…

武汉星起航:各大企业力挺亚马逊,共筑跨境电商新生态

亚马逊电商平台作为全球领先的跨境电商巨头,一直以来都备受各大企业的青睐与支持。这些企业通过与亚马逊合作,共同拓展市场、提升品牌影响力,实现了互利共赢的局面。武汉星起航将浅析各大企业对亚马逊电商平台的支持,展现其共筑强…

Linux之时间子系统(四): tick 层模块(broadcast )

一、前言 在内核中,有cpuidle framework可以控制cpu的节电:当没有进程调度到该cpu上执行的时候,swapper进程粉墨登场,将该cpu会被推入到idle状态。当然CPU的idle状态有深有浅,当CPU睡的比较深入的时候,有可…

嵌入式C语言中头文件计设规则方法

我是阿梁,最近在负责的项目代码,也算是祖传代码了,里面有很多头文件嵌套的情况,即a.h包含b.h,b.h又包含c.h,c.h又包含d.h......遂找到一份华子的C语言编程规范学习一下,并结合自己的理解写成这篇文章,以规范自己的代码。 1. 头文件嵌套的缺点 依赖:若x.h包含了y.h,则…

组蛋白脱乙酰酶介导的胃癌肿瘤微环境特征及协同免疫治疗(多组学文献学习)

目录 ①HDAC转录组多数据NMF一次聚类 ②ACRG队列中HDAC单独NMF聚类 ③HDS评分在胃癌中的临床特征和基因组特征 ④高 HDS 可能提示胃癌的“热”肿瘤状态 ⑤HDS是胃癌免疫治疗效果的有力预测指标 ⑥单细胞转录组测序揭示了高HDS和低HDS患者的TME ⑦内皮细胞和成纤维细胞可…

Unity LineRenderer的基本了解

在Unity中,LineRenderer组件用于在场景中绘制简单的线条。它通常用于绘制轨迹、路径、激光等效果。 下面来了解下它的基本信息。 1、创建 法1:通过代码创建 using UnityEngine;public class CreateLineRenderer : MonoBehaviour {void Start(){// 创…

接口自动化框架搭建(四):pytest的使用

1,使用说明 网上资料比较多,我这边就简单写下 1,目录结构 2,test_1.py创建两条测试用例 def test_1():print(test1)def test_2():print(test2)3,在pycharm中执行 4,执行结果: 2&#xff0…

Taskflow:子流任务(Subflow Tasking)

创建Subflow DAG任务中,有一种常见的场景,一个任务可能在执行期间产生新的任务,然后紧接着执行新任务。 之前提到的静态图就没有办法实现这样一个功能了,所以Taskflow提供了另一种流的节点:Subflow,Subflo…

node.js学习(2)

版权声明 以下文章为尚硅谷PDF资料,B站视频链接:【尚硅谷Node.js零基础视频教程,nodejs新手到高手】仅供个人学习交流使用。如涉及侵权问题,请立即与本人联系,本人将积极配合删除相关内容。感谢理解和支持,…

ttkbootstrap界面美化系列之Notebook(四)

在简单的界面设计中,Notebook也是常用的组件之一,Notebook组件的引入可以根据标签来切换不同的界面。使得界面更有层次感,不必都挤在一个界面上。在tkinter中就有Notebook组件,在ttkbootstrap中,同样也对Notebook进行了…

Linux+ARM 简单环境检测---软件部分

1、前言 这个是我学习linuxARM的在做的第一个软硬件结合项目,以往的类似这种整体类项目还是光单片机的时候,linux软件部分学习了差不多快一年了,因为各种事情耽搁,这个项目一直没有静下心来完成,不过终于哈哈哈哈搞完了…

代码随想录——移除元素(Leetcode27)

题目链接 暴力&#xff1a;&#xff08;没有改变元素相对位置&#xff09; class Solution {public int removeElement(int[] nums, int val) {int len nums.length;for(int i 0; i < len; i){if(nums[i] val){for(int j i 1; j < len; j){nums[j-1] nums[j];}i…

VS2019连接MySQL

VS2019连接MySQL 下载MySQL Connector/C配置头文件&#xff0c;库文件路径配置头文件路径配置库的路径复制dll文件 MySQL的用户设置将权限赋值给新用户 编写代码往数据库写入 老师布置的作业让我们用VS2019连接MySQL实现一个小型的日志系统&#xff0c;中间踩了很多的坑&#x…

springboot婚庆系统

摘 要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff1b;对于婚庆系统当然也不能排除在外&#xff0c;随着网络技术的不断成熟&#xff0c;带动了婚庆系统&#xff0c;它彻底改变了过去传统的管理方式…

【Gitea的介绍】

&#x1f525;博主&#xff1a;程序员不想YY啊&#x1f525; &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家&#x1f4ab; &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 &#x1f308;希望本文对您有所裨益&#xff0c;如有…

在同一个网站上自动下载多个子页面内容

一、问题现象 第一次遇到这样的问题&#xff0c;如下图&#xff1a; 即在同一个网站上下载多个内容时&#xff0c;第一个内容明明已经正常get到了&#xff0c;但开始第二个页面的查询 以后&#xff0c;原来已经查出的内容就找不到了。 二、解决办法 我不知道大家是不是遇到…

配置vsftpd服务

服务简介 1、FTP协议概览 FTP&#xff08;File Transfer Protocol&#xff09;⽂件传输协议&#xff0c;在TCP/IP协议族中属于应⽤层协议&#xff0c;是运⾏于 TCP协议之上是⼀种可靠的传输协议&#xff0c;主要功能⽤于实现⽤户间⽂件分发共享&#xff0c;以及⽹络管理 者在进…

Flutter开发之objectbox

Flutter开发之objectbox 在之前进行iOS开发的时候使用WCDB去进行管理数据库很方便&#xff0c;它支持ORM&#xff08;Object-Relational Mapping&#xff0c;对象关系映射&#xff09;&#xff0c;用于实现面向对象编程语言里不同类型系统的数据之间的转换。 那么在Flutter开发…