面试职位之前,往往需要进行充分的准备,从理论知识到专业技能。
但是,作为数据工程师,每个人的侧重方向都不尽相同。那么,面对浩如烟海的准备材料时,数据工程师该如何有效率地准备面试呢?

对此,来自coriers,有着许多顶级科技公司(如Amazon和Capital One)采访经验的Ben R.整理了一份面试练习清单,希望能给你们提供帮助。
编程语言练习
数据工程师是与数据库打交道的职位,而SQL作为数据库语言,便成为了数据工程师面试过程中绕不开的话题。
而学习往往循序渐进的。
首先是熟悉使用SQL去解决各类常见的简单问题:

这些问题囊括了各种类型:汇总、关联、分析等等,有些还涉及部分复杂逻辑。

很简单吗?那就进行如下的进阶练习吧。要是稍微吃力的话,不妨先看看“SQL-Video”里的相关内容。

除去SQL外,由于数据工程师工作的广泛性,数据工程师往往还需要准备其他的几类编程语言。
比如Python显然是目前数据科学的首选语言,虽然关于Python还是R曾有过争论。
又比如,如果进行较多的Hadoop,则Java则是更为得力的助手。
而Scala,也逐渐成为数据科学中第二重要的语言。
排列优先级大体如下:SQL、Scala、Python和Java。

算法与数据结构
在完成了编程语言的准备后,在编程问题上,算法结构与数据语言是极其常见的考察方向。
在进入相关学习之前,且让我们先完成几个小问题:

现在如果你已经完成了这8个问题,那就让我们开始回顾并学习“Algorithms And Data Structures Videos”、“Algorithms”、“Big O Notation”和“Some Interview Walk Throughs”里面的内容吧。

学习之后,检验学习成果是必不可少的:

运行编程
此外,运行编程是编程问题方面考察的另一种形式,但是却是较难准备的,主要因为他没有典型的题目,更多是来源于考官的“即兴发挥”。
不过,仍然有一些非常适合准备的问题。

系统设计

系统设计问题并不常见,但是也是需要准备一下,以防止考官们的“心血来潮”。

做完这些功课,数据工程师的面试学习就大体完成了。
另外,如果你想以编程语言立生,建议你先学习C语言打好基础。C语言是一门通用计算机编程语言,是面向过程的语言,其语法结构及其严谨,且应用十分广泛。而且只要将C语言研究透彻了的话,学习其他语言就会轻松很多。