10月28,K神开课讲数据科学,你来吗?


一亩三分地论坛

 找回密码
 获取更多干活,快来注册
Babeltime游戏工作室招工程师、美术和策划
Tubi TV招安卓、前端和机器学习工程师
把贵司招聘信息放这里
查看: 3784|回复: 10
收起左侧

Facebook Data Engineer On site Interview

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

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

您需要 登录 才可以下载或查看,没有帐号?获取更多干活,快来注册

x
狼狼恶狗, 发了一个FB Data Eng 的phone interview,
在几经波折之后终于去了on site...
重点:
面试分4轮,3轮 full stack interview(聊聊技术), 1轮lunch time(聊聊人生)。
HR告诉我3轮full stack interview的占比一样大。所以每一轮都要全力以赴(进去也就是个entry level, 结果遇到2个mgr, 1个sr mgr面,心中万马奔腾)
面试过程:. visit 1point3acres.com for more.
1,给你一个senario,你来想那些data 可以用来分析这个结果(比如active user, 需要看open apps time, clicks time)
2,然后你再来想,最后出来的report 图表需要有哪些factor,图表怎么画, 才能最直观反映出数据增减。
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(白板)
          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]......... 1point3acres.com/bbs
        根据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略悬了,给大家分享下被虐经验吧。
共勉
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
叨叨2:
FB里面居然有espresso的机器,可以自己打奶泡和做咖啡...真的好想去...



补充内容 (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会扩招?
. more info on 1point3acres.com
三轮问题都差不多,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
那请问楼主是怎么准备面试的呢?  楼主是平时工作就熟悉这个面试涉及的流程,还是根据面经准备的,或者看 ...
. from: 1point3acres.com/bbs
我本来就在另外一家公司做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
else: len(input)>3: begin select * from a end.鐣欏璁哄潧-涓浜-涓夊垎鍦
which one, LZ?

. from: 1point3acres.com/bbs
[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 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  3     if len(nums) == 0:
  4         return 0
  5     elif len(nums) == 1:
  6         return nums[0][1] - nums[0][0]
  7     nums.sort(key= lambda x: x[0])
  8     left = mid = 0
  9     right = 1.1point3acres缃
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).1point3acres缃
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)
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).鐣欏璁哄潧-涓浜-涓夊垎鍦
                               .鏈枃鍘熷垱鑷1point3acres璁哄潧
LZ, right or not?              

补充内容 (2016-9-18 22:56):
Anyone have better solution?
. 鍥磋鎴戜滑@1point 3 acres
补充内容 (2016-9-18 23:02):
# test complex case
print(sum_meeting([[5,20],[15,35],[40,80],[90,110],[100,120]]) == 100)
回复 支持 反对

使用道具 举报

头像被屏蔽
timeforce 发表于 2016-12-15 18:09:29 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

angeiabb 发表于 2017-4-16 12:11:39 | 显示全部楼层
timeforce 发表于 2016-12-15 18:09. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
enumerate 那题如何在递归中把空集加进去,我能生成后续的组合,但只能在最后把空集加上,有更好的方法么?

应该可以直接DFS,就自动加了空集
回复 支持 反对

使用道具 举报

timothly_black 发表于 2017-7-22 07:36:11 | 显示全部楼层
sum_meeting(nums) 是你自己写的还是面试的人给的这题不是  merge intervals 吗?
回复 支持 反对

使用道具 举报

cheney2cq 发表于 前天 10:54 | 显示全部楼层
哈哈 终于找到了
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2017-9-21 09:52

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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