我们最近在Reddit上做了问答活动。有个最常见的问题是数据科学家和数据工程师之间的区别。因此,我们想在这个主题上下写一篇文章来深入探讨下这个话题。
有许多数据专家的岗位听起来没多大区别,使用的工具也很类似,我们很难知道各类职位应该承担什么样的职责。此外,较小的公司可能会受限于他们聘请的数据工程师或数据科学家的人数,这便意味着很多时候特定的任务和目标可能会开始混合。
上述使得明确区分这两个角色变得更加困难。因此,我们想通过讨论数据工程师和数据科学家所拥有的不同目标,思维模式,工具和背景来了解两个职位的不同之处。
在我们讨论差异之前,我们想做一个快速的引言。事实是,许多数据科学家和数据工程师将执行其他技术角色的任务。数据科学家可能需要开发ETL,数据工程师可能需要开发API和前端。因此,我们在下面指出的区别只是为了弄清楚技术差异在哪里。
目标
数据工程师的目标更侧重于任务和开发。数据工程师构建自动化系统和模型数据结构,以允许有效地处理数据。这意味着数据工程师的目标是创建和开发表格和数据管道,以支持分析仪表板和其他数据客户(如数据科学家、分析师和其他工程师)。它与大多数工程师相似。为了能够执行最终的任务,需要进行大量的设计、假设、限制和开发。每个设计和解决方案都有自己的一组限制,即使它们都可以执行最终任务。
相比之下,数据科学家往往更关注问题。从这个意义上说,他们正在寻找降低成本/增加利润、改善客户体验或业务效率的方法。这意味着他们需要问问题,然后回答问题(问问题,假设,然后得出结论)。所以他们需要问的问题比如,什么影响了病人的再入院,如果增加A vs. B,顾客会花更多钱吗,有没有更快的递送包裹的路线?跳过剩下的过程。这里的目标是找到问题的答案。这可能是一个最终的结论或更多的问题。在整个过程中,数据科学家分析、收集支持,并可以得出问题的结论。
工具
这就是事情会变得混乱的地方。数据科学家和数据工程师通常都依赖于python和SQL。然而,这两个技术角色使用这些技能的方式各不相同。同样,这与心态的差异有关。Python是一种非常健壮的语言,它具有帮助管理操作任务和分析任务的库。
数据科学家将使用panda和Scikit Learn这样的库,而数据工程师将使用python来管理管道。这就是像airflow和Luigi这样的图书馆派上用场的地方。
类似地,数据科学家查询将是特别关注的(例如,关注问题)。而数据工程师的查询将集中于清理和转换数据。
现在,数据专家还可以使用其他工具。这包括Tableau, Jupyter笔记本和其他一些。说到底,区别在于他们如何使用它们。
背景
现在,当谈到数据工程师和数据科学家之间的差异时,另一个常见的问题是需要什么样的背景。
数据工程和数据科学都需要对数据和编程有一定的了解。即使是有限的范围。然而,有一些区别超出了编程。特别是数据科学家。由于数据科学家更像研究人员,拥有以研究为基础的背景是一种优势。
这可能是在经济学、心理学、流行病学等领域。将研究背景、SQL、Python和良好的商业意识结合起来,您就拥有了一位数据科学家。这些并不是一成不变的。事实上,我们遇到了一位获得多个学位的的数据科学家。大多数雇主更倾向于雇佣至少拥有硕士学位的数据科学家,他的专业是技术或数学。
数据工程职位通常不需要硕士学位。数据工程更多的是作为一名开发人员。这需要更多的实践经验,而不是理论知识。所以获得硕士学位并不能提供相同的价值。
一个例子
假设一家医疗保健公司的董事决定,他们想要弄清楚如何减少30天前再次入院的病人数量。从数据的角度来看,需要做几件事。
数据科学家需要弄清楚是什么驱使病人重新入院。这是他们将试图回答的问题。根据他们得出的结论,他们将与业务部门合作,制定度量指标 。这些指标是如何创建将由数据科学家得到答案。
数据科学家和数据工程师有很多不同之处。他们有不同的目标和背景,但这就是两者共同利用的价值所在。数据工程师更多地关注工程健壮系统,这一事实使得数据科学家能够轻松地查询数据并有效地分析数据。他们的合作伙伴关系使公司从数据中获得价值。