从编程基础到系统设计,这份数据工程师面试宝典值得拥有
面试职位之前,往往需要进行充分的准备,从理论知识到专业技能。
但是,作为数据工程师,每个人的侧重方向都不尽相同。那么,面对浩如烟海的准备材料时,数据工程师该如何有效率地准备面试呢?
![](https://pic2.zhimg.com/80/v2-d59158212c28e36277f2a58f96f4218e_720w.jpeg)
对此,来自coriers,有着许多顶级科技公司(如Amazon和Capital One)采访经验的Ben R.整理了一份面试练习清单,希望能给你们提供帮助。
编程语言练习
数据工程师是与数据库打交道的职位,而SQL作为数据库语言,便成为了数据工程师面试过程中绕不开的话题。
而学习往往循序渐进的。
首先是熟悉使用SQL去解决各类常见的简单问题:
![](https://pic2.zhimg.com/80/v2-aac88e13854d5396fd0ca5d08ae862ab_720w.jpeg)
这些问题囊括了各种类型:汇总、关联、分析等等,有些还涉及部分复杂逻辑。
![](https://pic3.zhimg.com/80/v2-8451653840640774f678ff326e75692e_720w.jpeg)
很简单吗?那就进行如下的进阶练习吧。要是稍微吃力的话,不妨先看看“SQL-Video”里的相关内容。
![](https://pic2.zhimg.com/80/v2-90e56f2982ed9ab7540fbb1d8793de5f_720w.jpeg)
除去SQL外,由于数据工程师工作的广泛性,数据工程师往往还需要准备其他的几类编程语言。
比如Python显然是目前数据科学的首选语言,虽然关于Python还是R曾有过争论。
又比如,如果进行较多的Hadoop,则Java则是更为得力的助手。
而Scala,也逐渐成为数据科学中第二重要的语言。
排列优先级大体如下:SQL、Scala、Python和Java。
![](https://pic2.zhimg.com/80/v2-6575ce77cf18c20e168182a9e38088f7_720w.jpeg)
算法与数据结构
在完成了编程语言的准备后,在编程问题上,算法结构与数据语言是极其常见的考察方向。
在进入相关学习之前,且让我们先完成几个小问题:
![](https://pic1.zhimg.com/80/v2-f100e23580f87cef74ec84e892e37a2e_720w.jpeg)
现在如果你已经完成了这8个问题,那就让我们开始回顾并学习“Algorithms And Data Structures Videos”、“Algorithms”、“Big O Notation”和“Some Interview Walk Throughs”里面的内容吧。
![](https://pic1.zhimg.com/80/v2-6f20b000980201745c2560695bb9f096_720w.jpeg)
学习之后,检验学习成果是必不可少的:
![](https://pic1.zhimg.com/80/v2-9edb6375838e0f476d38cf2f47e982bb_720w.jpeg)
运行编程
此外,运行编程是编程问题方面考察的另一种形式,但是却是较难准备的,主要因为他没有典型的题目,更多是来源于考官的“即兴发挥”。
不过,仍然有一些非常适合准备的问题。
![](https://pic3.zhimg.com/80/v2-899752f2a11f482e37d52b1b937c7a02_720w.jpeg)
系统设计
![](https://pic2.zhimg.com/80/v2-c55843902c42536604a3637fdef5538e_720w.jpeg)
系统设计问题并不常见,但是也是需要准备一下,以防止考官们的“心血来潮”。
![](https://pic4.zhimg.com/80/v2-4a5f7cf3cab2f271a542c6b174419741_720w.jpeg)
做完这些功课,数据工程师的面试学习就大体完成了。
另外,如果你想以编程语言立生,建议你先学习C语言打好基础。C语言是一门通用计算机编程语言,是面向过程的语言,其语法结构及其严谨,且应用十分广泛。而且只要将C语言研究透彻了的话,学习其他语言就会轻松很多。