一亩三分地论坛

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

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

Facebook Data Engineer On site Interview

[复制链接] |试试Instant~ |关注本帖
duanj99 发表于 2016-8-23 01:13:03 | 显示全部楼层 |阅读模式

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

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

x
狼狼恶狗, 发了一个FB Data Eng 的phone interview,
在几经波折之后终于去了on site...
重点:.鏈枃鍘熷垱鑷1point3acres璁哄潧
面试分4轮,3轮 full stack interview(聊聊技术), 1轮lunch time(聊聊人生)。
HR告诉我3轮full stack interview的占比一样大。所以每一轮都要全力以赴(进去也就是个entry level, 结果遇到2个mgr, 1个sr mgr面,心中万马奔腾)
面试过程:
1,给你一个senario,你来想那些data 可以用来分析这个结果(比如active user, 需要看open apps time, clicks time).鐣欏璁哄潧-涓浜-涓夊垎鍦
2,然后你再来想,最后出来的report 图表需要有哪些factor,图表怎么画, 才能最直观反映出数据增减。.1point3acres缃
3,告诉你raw data大概会是什么样的(网站/APP的 log), 怎样设计ETL pipeline,把data倒入你最终想要的table 给report用,基本步骤:
                raw data table ->intermedia table -> data warehouse fact table
4,optimize你的Process, 如果数据量非常大,如何有效地抓取数据,减少数据量(比如raw data table一天有billion data,如何在data warehouse缩减到Million或者更少)
5, 那么问题来了,SQL怎么写join什么来得到最终table(白板). 1point3acres.com/bbs
          SQL就这么多,JOIN, CASE, FUNCTIONS, (这次连subquery都不让用了,禽兽)
6,那么中间遇到的一些问题,可否用python 实现,大概考了:(白板)
        [5,20],[15-35],[40,80], 缩减到overlapping [5,35],[40,80],然后返回 35-5+80-40=70
        [a,b,c], enumerate: [],[a],,[c],[ab],[ac],[bc]........
        根据input, dynamic 地生成SQL query.

恩,我很菜比的第二个python没写出来(最简单的DFS啊!!!),原因是一个full stack interview 1小时,这个题给出来的时候只剩下10分钟了(小鹿乱撞),然后直接懵逼了。。。
1-6是一个round, 然后每个round一共1小时,有3个round.

叨叨:
中午的时候跟一个PHD毕业的姐姐吃的午饭,人很NICE,告诉了我很多FB 组内如何工作的。总体意思:FB十分适合那些心(shi)中(ge)有(da)梦(zuo)想(bi)的人,因为interactive很多,所以
希望data engineer懂一些analytics的东西,同时也懂SDE的一些programming,然后大家通力合作,在很短时间内做出一些有意义的分析,写出一些新的feature.
然后进去之后你可以多学多问,然后想要干SDE的活儿也可以转过去,想要干data scientist活儿,也可以转到那边,甚至你相当project manager也是可以的(前提是你够牛逼)。
还有,面试真的好难,一个小时问那么多东西,以我的脑容量,基本到最后一轮面试就处于down机状态。
感觉可能拿offer略悬了,给大家分享下被虐经验吧。. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
共勉
. more info on 1point3acres.com
叨叨2:
FB里面居然有espresso的机器,可以自己打奶泡和做咖啡...真的好想去...
. 鍥磋鎴戜滑@1point 3 acres


补充内容 (2016-8-23 01:13):
HR还告诉我说, 面试结果基本都是第二周的周一出。。。对,就是今天。。。jinzhang

评分

1

查看全部评分

AndrewFish 发表于 2016-8-30 01:45:44 | 显示全部楼层
楼主能透露后两轮的问题吗?  另问下西雅图新楼建成什么team会扩招?
回复 支持 反对

使用道具 举报

 楼主| duanj99 发表于 2016-8-30 01:52:08 | 显示全部楼层
AndrewFish 发表于 2016-8-30 01:45
楼主能透露后两轮的问题吗?  另问下西雅图新楼建成什么team会扩招?

三轮问题都差不多,case不一样而已。。都是一个套路。。。seattle team只要senior的,因为整个data center在湾区。。。。我也想呆在sea。。。但是HR说不行。。no way
回复 支持 反对

使用道具 举报

AndrewFish 发表于 2016-8-30 04:17:52 | 显示全部楼层
duanj99 发表于 2016-8-29 10:52
三轮问题都差不多,case不一样而已。。都是一个套路。。。seattle team只要senior的,因为整个data cente ...

那请问楼主是怎么准备面试的呢?  楼主是平时工作就熟悉这个面试涉及的流程,还是根据面经准备的,或者看公开课或者相关书籍准备的呢?
回复 支持 反对

使用道具 举报

 楼主| duanj99 发表于 2016-8-30 04:20:58 | 显示全部楼层
AndrewFish 发表于 2016-8-30 04:17. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
那请问楼主是怎么准备面试的呢?  楼主是平时工作就熟悉这个面试涉及的流程,还是根据面经准备的,或者看 ...
. visit 1point3acres.com for more.
我本来就在另外一家公司做database相关工作,所以多了解公司流程,然后SQL基本上没怎么看(平时都在用)。面试前突击了下dabase design的东西 data moedling这种,把leetcode easy和medium差不多刷了2遍(然后面试还是没Bug free...Orz)
回复 支持 反对

使用道具 举报

AndrewFish 发表于 2016-8-30 04:55:49 | 显示全部楼层
duanj99 发表于 2016-8-29 13:20
我本来就在另外一家公司做database相关工作,所以多了解公司流程,然后SQL基本上没怎么看(平时都在用) ...

好吧  多谢楼主分享经验!
回复 支持 反对

使用道具 举报

leonardcohen 发表于 2016-9-18 22:52:10 | 显示全部楼层
dynamic sql:
1 select 'select * from b where b.id = ' + a.id from a
2 if len(input) < 3: begin select* from b  end . visit 1point3acres.com for more.
else: len(input)>3: begin select * from a end
which one, LZ?


[5,20],[15-35],[40,80], 缩减到overlapping [5,35],[40,80],然后返回 35-5+80-40=70
  1 def sum_meeting(nums):
  2     # time O(n), space (1), three pointers solution.鏈枃鍘熷垱鑷1point3acres璁哄潧
  3     if len(nums) == 0:
  4         return 0. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  5     elif len(nums) == 1:
  6         return nums[0][1] - nums[0][0]. more info on 1point3acres.com
  7     nums.sort(key= lambda x: x[0])
  8     left = mid = 0
  9     right = 1
10     sum = 0
11     while right < len(nums):
12         while right < len(nums) and nums[right][0] <= nums[mid][1]:
13             right, mid = right + 1, mid + 1
14         sum += nums[mid][1] - nums[left][0]
15         if mid == len(nums)-1: # nums[n-1][0] <= nums[n-2][1]
16             return sum
17         elif right == len(nums)-1:
18             return sum + nums[right][1] - nums[right][0]
19         left = mid = right
20         right = right + 1.鐣欏璁哄潧-涓浜-涓夊垎鍦
21
22 if __name__ == '__main__':
23     # test normal cases
24     print(sum_meeting([[5,20],[15,35],[40,80]]) == 70). 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
25     print(sum_meeting([[5,20],[25,35],[40,80]]) == 65)
26     print(sum_meeting([[5,20],[15,35],[30,80]]) == 75)
27     # test sort first
28     print(sum_meeting([[5,20],[40,80],[15,35]]) == 70)
29     print(sum_meeting([[25,35],[40,80],[5,20]]) == 65)
30     print(sum_meeting([[30,80],[15,35],[5,20]]) == 75). visit 1point3acres.com for more.
31     # test corner cases
32     print(sum_meeting([]) == 0)
33     print(sum_meeting([[5,20]]) == 15)
34     # equal adjacent boundary. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
35     print(sum_meeting([[5,20],[20,35],[40,80]]) == 70)
36     print(sum_meeting([[5,20],[20,35],[35,80]]) == 75)
                               -google 1point3acres
LZ, right or not?              
鏉ユ簮涓浜.涓夊垎鍦拌鍧.
补充内容 (2016-9-18 22:56):
Anyone have better solution?

补充内容 (2016-9-18 23:02):
# test complex case
print(sum_meeting([[5,20],[15,35],[40,80],[90,110],[100,120]]) == 100)
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-5 10:50

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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