一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 5845|回复: 10
收起左侧

FB 数据工程师 data engineer 面经!

[复制链接] |试试Instant~ |关注本帖
Hero007 发表于 2015-4-13 04:06:31 | 显示全部楼层 |阅读模式

2015(1-3月) 码农类 硕士 全职@Facebook - Other - 技术电面 Onsite |Passfresh grad应届毕业生

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
地里这个职位的面经不多,分享自己的经验,如果大家对这个position有兴趣,希望能帮到大家。
Data Engineer是什么?相信很多人知道data scientist是什么。但是在大公司里,数据科学家可能不具有获取数据做ETL的能力,这个部分主要就是data engineer来做的。总结来说就是搭建data pipeline,获取数据,做ETL,可能会做些Dashboard的前端,可能会做machine learning的算法实现,可能也会做些data mining的事情。不过总体是偏后端,而且是基于已产生了的数据。为后期数据挖掘、数据分析而服务的后端(当然跟用户交互的后端技术有很大的交集)。常用技术kafka, hadoop, spark/ spark streaming, hive, cassandra, hbase等等。以上是我个人的总结和理解。有某只做sde的总是黑我就是做logging的。。。不过仔细一想,黑的还是挺有道理的。

1. 面经
总结来说数据工程师的面试算法是大头,也需要准备SQL和Design。. visit 1point3acres.com for more.

第一轮电话面试是个阿三,问了个很奇怪的题目:给若干个排好序的数组,找出最短区间,使得这个区间能cover每个数组里的至少一个数字。
[1,2,3,4..]
[5,6,8,9...]
[8,12, 19,..]. 1point 3acres 璁哄潧
答案是[4,8]. 鍥磋鎴戜滑@1point 3 acres
阿三口齿不清,我花了很长的时间才明白什么意思。。。所以虽然想出来算法,但时间上还是悲剧了。recruiter比较给力,给了我第二轮电话面试的机会。
. visit 1point3acres.com for more.
第二轮电话面试,一个等差数列,中间少一个数字,找出这个数字
follow up 1: 如果是等比数列呢?
follow up 2: 如果给一个数列,并不知道是等差还是等比,找出这个数字
这一轮表现比较突出,据说面试官给的反馈各种给力,然后就拿到了onsite

. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴第一轮onsite(coding): 大概是先写一个SQL解决一个问题。然后给一个list of parameters to group by,自动生成一个list of SQL queries。没什么算法,更多的是如何用最短的时间最短的代码写出来。我用的python,很多functional的语句应该加分了不少。
第二轮onsite(SQL): 大概是fb有一个log of events。每一个entry表示某个时间某个用户进行了什么action,然后写个语句判断30天内的活跃用户数量。follow-up是,写个语句返回所有日期,以及对应日期对应的30天以内的活跃用户数量(self join 就好了)。后来还问了很多design的问题。
第三轮(ETL Design): 这个真的是考经验值了。就问如何设计一个Dashboard解决一个数据问题。从数据的获取,到Map-Reduce, 到CDF (custom defined function), 都聊了一下。期间穿插写了一个merge a list of interval的coding题(Leetcode原题),然后问了写如何设计检测数据异常(比如Dashboard的数据出错了,在哪里出错能不能在设计的时候就做一些考虑,从而能实时的给报警什么的)。
第四轮(coding):一个阿三出的题目。一开始问我one edit distance。然后问我有没有做过,我当时脑子一抽,肾上腺激素一分泌,豪气的说,我做过了!!。。。后来想想真尴尬。然后他出了另一道题,感觉还简单一点,就是一个数组,附加一个index array表示这个数组每个数字原来应该在的位置,然后需要还原这个数组。当然in place是最好的。

2. 总结
对fb来说,data engineering team是独立的一块,行政上属于growth& data analytics, 跟software engineering 没有直接共同父节点,最近共同祖先就是扎克伯克了。每天做的事情跟SDE也很不一样,我问了manager,他说99%的时间都是在搭建data pipeline(感觉很exciting有木有!!),跟data scientist 一起协作,搭建fb的大数据监视和分析平台,解决各种数据问题。基本上用python的比较多,涉及的技术大多都是著名开源软件的fb内部版本,比如hadoop-fb版本,vertica-fb版本等等。但是fb的sde会相对更自由,一开始BootCamp就随意选组,sde里面随便挑的感觉;但是数据工程师的data bootcamp挑来挑去也就那么几个组。不过换个角度想,如果对数据工程真的很感兴趣,这未必是坏事。

另外,fb的数据工程师招人的pipeline和软件工程师很不一样,我了解到的消息,到目前为止,没有一个data engineer来自sde的BootCamp。基本都是独立招过来的。有兴趣的童鞋注意下。.鐣欏璁哄潧-涓浜-涓夊垎鍦


------
今天比较匆忙,就先写个大概,如果感兴趣的童鞋比较多以后再写点。



. more info on 1point3acres.com

评分

9

查看全部评分

本帖被以下淘专辑推荐:

dzx555 发表于 2015-5-5 21:13:07 | 显示全部楼层
感觉面试好难。。。。
回复 支持 1 反对 0

使用道具 举报

nibuxing 发表于 2015-4-13 04:35:39 | 显示全部楼层
楼主能具体说说搭建data pipeline吗
回复 支持 反对

使用道具 举报

wmtws9dsj 发表于 2015-4-13 04:46:58 | 显示全部楼层
赞!lz多讲讲吧~之前有些hadoop经验,暑期实习也是data engineer intern..也是搭建data pipeline...全职面试时data engineer主要怎么准备
回复 支持 反对

使用道具 举报

calalia 发表于 2015-4-13 05:11:52 | 显示全部楼层
顶顶顶顶顶
回复 支持 反对

使用道具 举报

又见紫风铃 发表于 2015-4-13 05:31:15 | 显示全部楼层
哇,是旭哥么
回复 支持 反对

使用道具 举报

Chris_L 发表于 2015-4-14 14:37:42 | 显示全部楼层
顶学长!是wuxu学长?
回复 支持 反对

使用道具 举报

xuyirio 发表于 2015-4-14 14:58:20 | 显示全部楼层
唉,我就觉得搭建data pipeline一点也不exciting。。。
回复 支持 反对

使用道具 举报

 楼主| Hero007 发表于 2015-4-14 23:47:57 | 显示全部楼层
Chris_L 发表于 2015-4-14 14:37
顶学长!是wuxu学长?

为什么暴露的这么快。。。
回复 支持 反对

使用道具 举报

flyskywind88 发表于 2015-4-19 14:25:55 | 显示全部楼层
请教下楼主“一个数组,附加一个index array表示这个数组每个数字原来应该在的位置,然后需要还原这个数组。当然in place是最好的”
是怎么做得?
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
回复 支持 反对

使用道具 举报

nibuxing 发表于 2015-5-5 21:49:03 | 显示全部楼层
wmtws9dsj 发表于 2015-4-13 04:46
赞!lz多讲讲吧~之前有些hadoop经验,暑期实习也是data engineer intern..也是搭建data pipeline...全职面 ...

请问搭建data pipeline是怎么样的,能具体说说吗,非常感谢!
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-6 14:20

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表