成为数据工程师前,我应该知道的事

成为数据工程师前,我应该知道的事

在我从事这项工作的两年半后,我发现这个工作与我以前预期的不一样。也许并非下面列的每一条都跟你一样,但有些可能会适用于你的情况。本文将以成为数据工程师之前的我为对比,介绍我成为数据工程师后,学到的与我所想不同的知识和观点。如果你想了解更多数据分析相关内容,可以阅读以下这些文章:
数据工程师面试最全指南
跟数据科学家相比,数据工程师更需要哪些技能?
2021 Data Engineer求职必备技能
面试常见5大SQL题目:培养SQL技能,助你完胜任何面试!

我的背景

这可能有助于你理解以下的几个观点。

我拿到了数学工程硕士的学位,主要研究高性能的计算和机器学习。毕业后,我马上就开始工作了,并没有时间来没有停下来探索世界或做做别的事情。

我作为数据分析师工作了 5-6 个月,主要的工作内容是创建 excel 报告,但这些工作内容都和我所学的技术技能并没有什么关联。因此,我转向了学术界,开始攻读机器学习的博士学位。我开始自己一个人研究非常酷的话题。

Photo by Edi Libedinsky on Unsplash

数据工程岗位,是一个技术性很强、大部分团队都有的岗位,而这个岗位达到了我想要的预期。

那么,我应该知道什么?

我将从以下两个角度来分享观点:

年幼无知的我,依然很无知但成长了的我。

 数据科学家是 21 世纪最性感的工作

目前,市场对数据工程师的需求更高

2012年那篇“数据科学是 21 世纪最性感工作”的臭名昭著的文章,无疑给了数据科学、机器学习和人工智能领域吸引到了应有的高度关注。

但问题是,要交付一个成功的数据科学(或 ML /AI)项目,需要的不仅仅是几个领域专家来回答高优先级的商业问题,运行 model.train() 和 model.predict() 来优化某个指标或 KPI这些而已。这在 下图的AI 需求层次结构中得到了很好的解答。

简而言之,要在顶层做好有影响力的事情,你需要良好的基础层。这就是大多数(数据)工程师所做的。这也反映在如 AWS 的岗位搜索工具的搜索点击次数上:数据工程师为 24k,机器学习为 8k,数据科学为 18k。

在 LinkedIn 上搜索时可以找到类似的结果:数据工程师的点击率高于数据科学家。

因为任何建筑都需要坚实的基层,所以我这认为这是进入数据工程的好时机。

我需要了解所有的技术:由下而上

采取自上而下的方法

在浏览数据工程工作要求时,你很容易会以为你需要掌握所有这些技能。但其实不是,这只是招聘员的梦想要求。

目前技术领域十分广阔,一个人是无法完全掌握所有复杂的细节的。

为什么?因为技术一直在发展,世界也一直在发展。能够正确评估某种技术、快速或者可持续地完成工作更为重要。

当然,深入了解其中的一些知识会对你有所帮助,但知道去哪里找或问谁,通常来说就足够了。

重要的是,你要因大量学习新工具/技术而感到兴奋!

我需要构建一个自己的数据工程工具

使用不完美的工具可以解决 99% 的问题和情况

作为数据工程师,你遇到的每个问题和情况都是独一无二的。我曾经以为我需要专门为它编写或构建一个工具。

如果你在为世界上拥有强大的工程能力的大公司,例如 Uber、Facebook 和 Google 工作,那么是的,你可能需要做出这类的贡献。但对于剩下的人,现有的工具在 99% 的情况下都很好用。

至于其余 1% 的利基问题和情况,这些问题多半都是低优先级的。如果你在一个业务部门工作,他们仍希望你能找到解决方案,那么最好的办法是调整一个很接近它的现有开源工具。不要忘记把它回馈给你的开源社区。这样,至少在你离职去另一个组织后,这个工具也不会消亡。

每家公司对数据工程的定义大致相同

每个公司都有自己的定义

数据工程师有多种形式、职责和不同的业务参与程度。这是我遇到的三种常见类型:

  • 万事通

他们构建和管理整个数据平台,构建和部署多个 ML 模型,同时拥有和管理项目,将业务需求转化为技术需求。

这种类型的工程师,常见于“大规模机器学习”的年轻初创公司。

Photo by Standsome Worklifestyle on Unsplash
  • 改良的数据库或系统管理员

他们仅仅维护或提供对数据平台的支持。这些人不喜欢谈论商业问题。他们主要通过 IT 票务系统访问平台。

但不要误会我的意思,他们会知道他们管理的解决方案的每一个细节,且完全垂直。只是不要期望他们的工作有太多的水平上的移动。

你可以在大型跨国组织中找到这一类员工,因为,只有以这种规模的公司拥有这些配置员工才是是有意义的。

  • 点睛之笔

虽然数据工程的范围很广,但这些人主要负责确保机器学习模型已准备好、且可以投入生产。他们可能会,也可能不会嵌入到业务部门中,且很少或根本没有数据平台管理。

你可以在更成熟的 ML 组织(在生产中运行超过 50 个 ML 模型)中找到这些员工。

��� 按时交付成功项目的最大挑战是技术

��� 大多数挑战都与公司自身的文化、流程有关

好吧,你可以忘记我刚刚分享的所有内容。但我想让你记住一个最重要的,那就是这个。

项目和人员可能会发生变化,典型的数据/IT/预期挑战仍然存在。你花的大部分时间和汗水的那些事,总是扎根于组织的文化中

你也知道,想改变公司文化是有多难。但首先,你只需始终如一地面对这些挑战。

如果你想解决或至少改进其中之一,恭喜!数据世界需要更多像你这样的英雄。

你可以选择从事数据工程岗位,如果你满足以下条件:

  • 1.你喜欢像工程师一样在这些方面思考 :系统、稳定性、可靠性、容错、效率、自动化等等,
  • 2.你觉得数据科学的 80% 是数据工程,
  • 3.你喜欢在每一个新项目中学习一项新技术,
  • 4.你是一个真正的团队合作者:

→ 你从良好的讨论中获取能量,

→能以团队的形式实现某事,

→ 喜欢向更有经验的成员学习。

作为一个完全想进入数据工程的新手,以下是最基本的要求:

✅ 对编程语言(最好是 Python)有深入的理解或展示经验

✅ 提高你的沟通技巧

✅ 在课上或自己学习过机器学习

剩下的知识,你的工作会教给你!

你可以通过以下方式来给未来的雇主留下好印象:

  • 拿到云认证证书(AWS、GCP 或 Azure)
  • 展示构建和运行 Docker 容器的经验
  • 了解 DataOps、MLOps、DevSecOps
  • 使用 Kubernetes(或其他容器编排框架)
  • 学习 Terraform (或其他设施即代码的框架)
  • 使用数据工程组件:工作流协调器 (Airflow)、数据质量工具,
  • 展示你在并行计算框架(Dask、Pyspark、OpenMPI、Horovod 等)中的经验,
  • 为 Github 上的一个开源项目做出贡献,
  • 变革管理方面的经验。

总结

正如 Andrew Ng 所说:如果你目前有不理解的知识,请不要担心。你迟早会明白的。感谢你的阅读!你还可以订阅我们的YouTube频道,观看大量数据科学相关公开课:https://www.youtube.com/channel/UCa8NLpvi70mHVsW4J_x9OeQ;在LinkedIn上关注我们,扩展你的人际网络!https://www.linkedin.com/company/dataapplab/

原文作者:Coussement Bruno
翻译作者:Peter Mei
美工编辑:过儿
校对审稿:Jiawei Tong
原文链接:https://medium.com/datamindedbe/what-i-wish-i-knew-before-going-into-data-engineering-ddb659b4a05