Redian新闻
>
F家详细面经,有工作经验被拒(超长慎入)
avatar
F家详细面经,有工作经验被拒(超长慎入)# JobHunting - 待字闺中
w*k
1
简单总结:CS博士,奔5了,申请facebook software engineer,不是headquarter。
onsite后第三天收到据信。估计死在system design上。面试简况如下。详细的在后面。
Screening 和final round头两个都是coding interview,都做到了bug free。题目不
难,即使没刷过题,也容易有思路。唯一不足的是,有一个coding写的代码不是时间复
杂度最低的。虽然后来给出了优化的办法,但是没有时间写优化的代码了。
下一个是system design,感觉不太好。其中一个问题是估计要多少个server,我解答
的时候,最大的失误可能是没有问每秒钟多少个transaction,面试官也没给这个条件
。面试官指出问题后,也没给机会修改。
最后一个人,是career+behavior+coding,coding也是bug free的,其他的问题完全没
感觉。
个人背景:
本人奔5大叔一枚,标准孩奴。不在加州。有名校/名公司情结。可惜,大学在中国30名
以外,来美国读研学校100名以外。毕业时也曾冲刺过Google未果,现在“大”公司混
日子。
最近Facebook recruiter不断骚扰,不是headquarter,这个branch离家也不算太远,
不需要relocation,遂动了邪念。
因为平时很忙,只能吃午饭是在手机上看看career cup上的面试题,开车时想想解法,
有次还差点闯了红灯。汗!
经验教训:
1.奔5的就不要折腾了
2.coding看career cup或者leetcode就可以了。
3.system design就不要准备了。我看了很多,面试时想多了。
HR:
未料到HR这关还挺曲折。给HR回了两年前的email,说我动心了,约好时间
HR:blahblah了五分钟,介绍了这个branch有什么组.你现在做什么?
我:blahblash
HR:你会Java,Python吗?
我:我工作中用C,会一点Java,没用过Python
HR:(好像有点不满意)你对哪个组感兴趣?
我当时懵了,只能捡几个我记下来的(本人记性很差)说了一下,谁料HR都说我的背景
不适合,就说thank you 了。挂了电话我一天都没回过劲。其实我已经开始准备面试了
,就这样结束了?晚上一怒之下,给HR发Email,那你给我一个组适合我背景的!不是
你先跟我联系的吗?HR第二天回信,你做distributed吧,我给你安排screening。靠,
哪个组不是distributed呀?是不是看自己工作量没完成?
Screening:
一个排序二叉树,转换成doubly linked list,还是排序的。
因为我用C,面试官直接给出C的数据结构
struct node{
node* left,
node* right
}
函数返回时,不能有新的node,left指向前一个节点,right指向后一个节点。
我用递归写的。然后:
IO:时间复杂度
我:O(N)
IO:空间复杂度
我:O(logN),average case
IO:废话,肯定是问average case。那worst case呢?
我: O(N)
IO:给worst case 的例子
我:树的深度为N的时候
IO: Are you sure?
我:(鬼迷心窍了)应该是平衡二叉树的情况
IO: Are you sure?
我:(出汗了!明摆着欺负我这年近半百,头发灰白的码农,想唬晕我。定了定神)树
的深度为N是空间复杂度的worst case.
点评:career cup上看过这道题,可是网上的题目要求没有写清楚,当时也没有细想怎
么做。好久不面试,刚开始白板上写代码的时候,还有点哆嗦。而且中途卡壳了。还好
最后bug free完成了。面试官很精,最后几个are you sure想搞死人!
Final round person 1, coding:
计算vector dot product。我有点晕,what is that?考完研就忘了! IO给我解释:
A=[a1,a2,a3]
B=[b1,b2,b3]
A和B的dot product是a1*b1+a2*b2+a3*b3
我心里足足盘算了半分钟,想陷阱在哪里。问输入在内存里面能存下来吗。回答可以。
一闭眼,硬着头皮写了一个三行的函数。IO说ok,这才放心。问了时间空间复杂度,然
后大戏出场了。
IO:如果vector很大,内存里放不下。很多值是0。怎么做。原来好戏在这呢!我设计了
一个数据结构
struct item {
int idx;
int val;
}
每一个矢量可以表示成一个item的数组,只有非零值。然后写代码。时间空间复杂度。
IO又问,如果一个矢量有很多非零值,譬如1000个,另一个只有很少几个非零值,怎么
优化。不用写代码。(幸亏不用写代码,要不我要吐血了)。我用一个例子解释我的算
法。譬如
矢量A中非零值的index:1,5,...,2000,2100
矢量B中非零值的index:5,6,1200,2000
对第二个数组每一个值,在第一个数组中做binary search。然后时间空间复杂度。
点评:算很容易的题吧。虽然以前没看见过,很容易有思路。
Final round person 2, coding:
一个小岛,要选址建机场。要修两条跑道,一条南北走向,长度v;一条东西走向,长
度h。两条跑道两端可以一直修到小岛海边。两条跑道在机场中心相交。机场建在哪里v
+h最大。要求函数返回这个最大值。
我问怎么表示这个小岛,IO说由我来决定。我说用一个矩阵表示,陆地用1,海洋用0。
第一个思路:逐行扫描,找出所有东西向的可能的跑道;再逐列扫描,找出所有南北向
的可能的跑道。最后穷举所有可能的组合。IO说,你给个伪代码吧,看看可行性。然后
我写:
for each row
get possible horizontal runways
for each column
get possible vertical runways
max = 0;
for each rw_h in all horizontal runways
for each rw_v in all vertical runways
if ( cross (rw_h, rw_v) is TRUE and rw_h+rw_v > max)
max = rw_h+rw_v
IO说,这里面的逻辑,譬如get possible horizontal runways, 很复杂。你不可能写
完了。换个办法。我心里面嘀咕,这个算法可是时间复杂度低呀。
第二个思路:上brute force吧。对矩阵中的每一个元素,水平方向向左向右扫描,直
到碰到海洋。垂直方向向上向下扫描,直到碰到海洋。所有元素都扫描过,就直到最大
值了。IO说代码吧。写的过程中,我用了两个子函数,分别是扫描垂直方向和水平方向
的。IO让我写一个就可以了。刚写完,IO说有bug。还好,我自己找出来了。
IO:如果矩阵N行N列,时间复杂度。
我:O(N^3)。
IO:这个算法可以优化到O(N^2),但是我们没时间了
我心里很想踢他,前面第一个思路还让我写伪代码,浪费很多时间。不过我灵机一动,
想起以前看过的一道类似的题,赶快说出优化办法。例如,某一行是
0 1 1 1 1 0 0 0 1 1 0
扫描一遍,得到
0 4 4 4 4 0 0 0 2 2 0
每个非零值表示已该点为中心,最长的东西方向跑道长度。南北方向同样做一遍,就可
以了。
一点插曲:因为我写函数第一个参数写成 int* a[].IO让我说int** 和 int* a[]的区
别。
点评:这个题目容易有思路,但是想有优化的解法,不容易。写代码的过程中也容易出
bug.我在career cup上看到一个道类似的:一个矩阵,元素非0即1,让找最大的十字,
十字上每个元素都必须是1.我当时已经想到了O(N*N)的解法,可是面试的时候,一开始
没有反应过来。
Final round person 3, system design:
面试前还做了一个梦,让我设计facebook messenger,我画图,从白版一直到地上,打
开门继续画,来了一个developer给我了一杯啤酒,我喝完直接躺到我画的图上:-)结果
遇到的问题大相径庭!
IO:我们现在要设计一个facebook privacy system. 假设facebbook现在没有这个
feature。 每一个resource,譬如post, image, video,只有owner和owner的friends可
以看到。
我:画了一个三层结构的图。客户端,web service, database。需要添加一个
resource table,标明每个resource的owner,或者在现有的table中添加一个列。另外
假设facebook已经有一个friend table存储用户之间的朋友关系
IO:那你怎么设计这个friend table表示朋友关系?
我:(咯噔一下,怎么问题跨度这么大)我有两个方案。方案1:两个column,user和
friends.假设A有三个朋友B,C,D,对应一条记录,user is A, friends is “B,C,D
” (我准备面试的时候考虑过friend table的问题。看网上说,facebook的大部分信息
都是key value pair存储了,就有了这个想法,好处是select的时候只返回一条记录,
估计面试官不喜欢这个方案)。方案2:两个column,user和friend.同样的例子,要三
条记录(A,B), (A,C), (A,D)
IO:I am confused,你到底要用哪个方案?
我:(心里觉得IO不爽了)方案1。因为读取一个用户的朋友的时候,只返回一条记录
。方案2要返回很多条记录,很耗时间,因为要读硬盘。
IO:如果有很多用户,一个服务器上放不下这个table,怎么sharding到多个服务器上?
我:根据user column,计算hash value。根据hash value分配到不同的服务器上。
IO:如果一个用户很多朋友,friends column可能很长。如果要update 这个column,
譬如删掉一个朋友,需要操作一个很长的字符串,很耗时。
我:(我当时想,操作很长的字符串是在cpu上完成的,和磁盘操作时间不是一个数量
级,但是没有和IO硬碰硬)我没有考虑这个问题。如果update是个问题的话,那我用方
案2。
IO:(给了一个例子,大概四五个用户,标明用户之间的朋友关系)那怎么用你的方案
表示这个朋友关系。
我:(给出例子,不难)
IO:那怎么查询一个用户所有的friend?要查询多少台机器,如果table使用了
sharding?
我:(迟疑了一下)那得查询所有的机器。(我以为他会让我优化,谁知道...)
IO:(马上问)那你估计一下要多少台服务器存放这个table?
我:facebook一共多少用户,每个用户平均几个friends?
IO:(给了个大概的数字)
我:(我直接算friend table的大小,给出个服务器的数量)
IO:这么少的服务器能处理那么多transaction吗?
我:(糟糕!!!)处理不了。我没有考虑。(正想问IO每秒钟多少个transaction,IO
根本没给机会,接着问)
IO:那刚才我问怎么查询一个用户所有的friend,你说要查询所有的机器。有没有办法
只查询一台机器。
我:(想了半分钟)如果A和B是朋友关系,放两条记录,(A,B)和(B,A),第一条记
录放在Hash(A)对应的机器上,第二条记录放在Hash(B)对应的机器上。
IO:写一个函数的伪代码,判断一个指定的用户能不能看一个指定的resouce。
我:(这个我不怵,刷刷刷写完)
IO:(现在才露出一点点笑容)完事!
点评:
1.最后一根稻草是估算多少个服务器,完全没有设计分布式系统的概念。IO也很无情,
没有给修改答案的机会.
2.用一个长字符串存储一个用户的所有朋友是一个败笔!
3. 讨论如何sharding这个table的时候,如果说按照用户地理位置sharding会更好一些。
Final round person 4, career+behavior+coding
先问了很多behavior方面的问题,然后一个coding
尽可能列出所有问题(肯定有遗漏,而且IO经常在我的答案的基础上给出新的问题,就
不方便写在这里了):
1.为什么来facebook?
2.你现在做什么?
3. 一个project,如何说服别人用你的solution?
4.如果你和同组的一个人一起开发一个project,不配合你工作,拖后腿。你怎么办?
如果这个人不是你们组的,怎么办?
5.给出一个你以前做过的project,到后期才发现有一个更好的design.
Coding问题如下:
一个数组,最大值可能出现多次。要求等概率返回最大值的位置。例如:
(1, 10, 4, 10, 2, 10)
应该以各1/3的概率返回1, 3, 5.
这个问题看似很容易,但是,如果没有任何优化,需要扫描数组三次。如果用
reservoir sampling,只需要扫描数组一次。我虽然看过这道题,但是没有仔细研究,
担心reservoir sampling说不清楚,所以写了一个代码,需要扫描数组两次。bug free
.因为没有时间,IO没有要求优化,也没有时间空间内复杂度。
avatar
U*A
2
楼主应该是多年工作经验,难道还是general hire?
avatar
z*o
3
hr真坏...
avatar
t*n
4
结论:奔五就不要折腾了
avatar
D*0
5
很详细,学习了。
avatar
T*a
6
你头两个题目回答就有问题。第三个你都没讲清楚题目到底是啥
这个跟年龄没啥关系。你不要背包袱。考的都是本科的基本东西。你要好好准备原则上
都能过
之所以说“原则上" 是因为面试的时候很有可能是面试的人的问题,自己瞎几把问自己
都搞不清楚,跑出来面试别人是被逼的出来挣表现,自己不怎么样还牛逼红红;或者甚
至有黑别人的

面。

【在 w*****k 的大作中提到】
: 简单总结:CS博士,奔5了,申请facebook software engineer,不是headquarter。
: onsite后第三天收到据信。估计死在system design上。面试简况如下。详细的在后面。
: Screening 和final round头两个都是coding interview,都做到了bug free。题目不
: 难,即使没刷过题,也容易有思路。唯一不足的是,有一个coding写的代码不是时间复
: 杂度最低的。虽然后来给出了优化的办法,但是没有时间写优化的代码了。
: 下一个是system design,感觉不太好。其中一个问题是估计要多少个server,我解答
: 的时候,最大的失误可能是没有问每秒钟多少个transaction,面试官也没给这个条件
: 。面试官指出问题后,也没给机会修改。
: 最后一个人,是career+behavior+coding,coding也是bug free的,其他的问题完全没
: 感觉。

avatar
l*u
7
感谢面筋,你这个分明是挂在年龄上。可惜没证据。你要不要试试我们公司,要的话请
私信。
avatar
z*n
8
lz 软家的?
avatar
M*i
9
赞这么详细的面经,多谢
avatar
M*i
10
从哪里看出来挂在年龄上了?

【在 l*******u 的大作中提到】
: 感谢面筋,你这个分明是挂在年龄上。可惜没证据。你要不要试试我们公司,要的话请
: 私信。

avatar
S*u
11
听说F家很辛苦的,还会被老中PIP,人家不要你,也好。找个养老的。
avatar
t*b
12
十分同意
建议刷题转码 去中部城市 年薪8万顶湾区30万

【在 S*******u 的大作中提到】
: 听说F家很辛苦的,还会被老中PIP,人家不要你,也好。找个养老的。
avatar
S*u
13
楼主本身就是马工。年纪大了,去F家是很辛苦的。

【在 t****b 的大作中提到】
: 十分同意
: 建议刷题转码 去中部城市 年薪8万顶湾区30万

avatar
i*9
14
design 那儿你回答的第一个问题就是最大的失分项,因为你的答案显示了你没有使用
关系数据库的设计经验。尤其是在考虑磁盘效率之后,更是不可能存在一行。


:简单总结:CS博士,奔5了,申请facebook software engineer,不是headquarter。
avatar
z*4
15
这个是工作多年经验没有升华 还挺留在基础阶段
他问的问题全是数据量一大要考虑的 平常如果遇到了 思考总结下 不会写代码也没问
题的
我不是吗工 偶尔用excel掉access 数据量一大 全是这种问题 怎么拆数据 怎么分布
怎么拿回来

:你头两个题目回答就有问题。第三个你都没讲清楚题目到底是啥
avatar
s*b
16
都不是leetcode题啊,怎么办?

面。

【在 w*****k 的大作中提到】
: 简单总结:CS博士,奔5了,申请facebook software engineer,不是headquarter。
: onsite后第三天收到据信。估计死在system design上。面试简况如下。详细的在后面。
: Screening 和final round头两个都是coding interview,都做到了bug free。题目不
: 难,即使没刷过题,也容易有思路。唯一不足的是,有一个coding写的代码不是时间复
: 杂度最低的。虽然后来给出了优化的办法,但是没有时间写优化的代码了。
: 下一个是system design,感觉不太好。其中一个问题是估计要多少个server,我解答
: 的时候,最大的失误可能是没有问每秒钟多少个transaction,面试官也没给这个条件
: 。面试官指出问题后,也没给机会修改。
: 最后一个人,是career+behavior+coding,coding也是bug free的,其他的问题完全没
: 感觉。

avatar
d*1
17
好久没看过这个版上还有这么详细的面筋了 恍如昨日 楼主好人点赞
avatar
x*i
18
作为码工,看到奔五换工作还要考二叉树, 突然有一种深深地悲哀感。
avatar
t*b
19
是啊 码农干不长 跳槽更是麻烦
趁年轻把房子供出来 攒点钱就退休了 以后和二叉树永别

【在 x***i 的大作中提到】
: 作为码工,看到奔五换工作还要考二叉树, 突然有一种深深地悲哀感。
avatar
l*g
20
coding 我就不评论了
design 上
你如果奔5肯定至少target E5
同样一道题目 E5 和 E4 的 expectation 是不一样的
如果你认为这题的考点是 几个表, 怎么join
那大概率是过不了E5的bar的
avatar
n*g
21
谢谢分享。我也收到FB的骚扰。想着退休前要不要再折腾一次。
我个人觉得你坏在不懂Java和Python上。
另外,像别人说的,你做的答案都有问题。
如两个大稀疏向量相乘类似于合并排序。用两个指针O(n)就行了。你还搞二分搜索就复
杂了。

【在 w*****k 的大作中提到】
: 简单总结:CS博士,奔5了,申请facebook software engineer,不是headquarter。
: onsite后第三天收到据信。估计死在system design上。面试简况如下。详细的在后面。
: Screening 和final round头两个都是coding interview,都做到了bug free。题目不
: 难,即使没刷过题,也容易有思路。唯一不足的是,有一个coding写的代码不是时间复
: 杂度最低的。虽然后来给出了优化的办法,但是没有时间写优化的代码了。
: 下一个是system design,感觉不太好。其中一个问题是估计要多少个server,我解答
: 的时候,最大的失误可能是没有问每秒钟多少个transaction,面试官也没给这个条件
: 。面试官指出问题后,也没给机会修改。
: 最后一个人,是career+behavior+coding,coding也是bug free的,其他的问题完全没
: 感觉。

avatar
n*g
22
新人求教E5和E4是啥。我要是不在乎钱可以要求E3么?

【在 l****g 的大作中提到】
: coding 我就不评论了
: design 上
: 你如果奔5肯定至少target E5
: 同样一道题目 E5 和 E4 的 expectation 是不一样的
: 如果你认为这题的考点是 几个表, 怎么join
: 那大概率是过不了E5的bar的

avatar
l*8
23
赞详细。题确实比较基本,你太紧张了,performance会差好多的,没关系接着试。

面。

【在 w*****k 的大作中提到】
: 简单总结:CS博士,奔5了,申请facebook software engineer,不是headquarter。
: onsite后第三天收到据信。估计死在system design上。面试简况如下。详细的在后面。
: Screening 和final round头两个都是coding interview,都做到了bug free。题目不
: 难,即使没刷过题,也容易有思路。唯一不足的是,有一个coding写的代码不是时间复
: 杂度最低的。虽然后来给出了优化的办法,但是没有时间写优化的代码了。
: 下一个是system design,感觉不太好。其中一个问题是估计要多少个server,我解答
: 的时候,最大的失误可能是没有问每秒钟多少个transaction,面试官也没给这个条件
: 。面试官指出问题后,也没给机会修改。
: 最后一个人,是career+behavior+coding,coding也是bug free的,其他的问题完全没
: 感觉。

avatar
j*g
24
强烈建议找个就近的学校旁听一个学期再投啊。这边的CS课撑死也就这点,一定听得懂的
实际工作中解决的问题和经验好好总结下,有什么能让自己满意的?
avatar
s*r
25
奔五了还折腾个啥,想想退休以后的美好日子,实在没事干,就催娃快点结婚,好哺育
下一代
avatar
n*g
26
在说说话数据库设计题。我觉得这里的艾迪也大多没有这经验。付上我的几分钱。
首先我相信Facebook不会找码工重新发明轮子设计一个数据库管理系统。说到底还是在
现有的数据库系统上设计数据库。
第二这个稀疏表很小。我不喜欢谷歌就是谷歌的数据量很喜欢装逼。经常研究些大得没
屁眼的问题。如在一巨大的整数流中找到第k大的数。k可能是1000、10000。Facebook
用户算10万,每人有1000个朋友,这个表也不大。用不着几台server。人家问你这个问
题估计是想说你的设计有性能瓶颈,
关于吞吐量有三点。
第一是真追求吞吐量的可以用SSD阵列。和码工工资比花不了几个钱。就是硬盘阵列,
连续读带宽也惊人。
第二是查询的服务设计成内存内查询。1TB内存again和码工工资比不算什么。众多竞争
也是只读的,因此并发性很高。更极端一点可以用文件形式存放key/value,每个front
-end只管顺序读进对应文件的所有key/value就行了。多server只是启动更快而不是为
了完成查询更快。
第三点是查询结果也可以cache。
如果需要“实时”更新关系表。可以弄个message queue。更新信息除了发呆后台更新
数据库服务也发到前台的queue。前台有一线程/任务去更新内存内的copy。
这些东西坐下来有时间想和你现场压力大以前也没做过是不一样。多面试,我以前的猎
头对我这么说的。不要你有很多原因。最可能的不是技术。再大牛要百发百中也是不可
能的。Facebook里面干的也是人,也有经验和局限。
我以前就调侃M$的他们的数据规模太小,装啥逼搞什么复杂算法数据结构,都load到内
存里简单粗暴。最后被锯了也不知道是hiring manager不喜欢我还是他们match不了我
的offer。

面。

【在 w*****k 的大作中提到】
: 简单总结:CS博士,奔5了,申请facebook software engineer,不是headquarter。
: onsite后第三天收到据信。估计死在system design上。面试简况如下。详细的在后面。
: Screening 和final round头两个都是coding interview,都做到了bug free。题目不
: 难,即使没刷过题,也容易有思路。唯一不足的是,有一个coding写的代码不是时间复
: 杂度最低的。虽然后来给出了优化的办法,但是没有时间写优化的代码了。
: 下一个是system design,感觉不太好。其中一个问题是估计要多少个server,我解答
: 的时候,最大的失误可能是没有问每秒钟多少个transaction,面试官也没给这个条件
: 。面试官指出问题后,也没给机会修改。
: 最后一个人,是career+behavior+coding,coding也是bug free的,其他的问题完全没
: 感觉。

avatar
y*g
27
折腾啥 一堆啥也不懂的小年轻一起工作你不郁闷吗
没事周末打打高尔夫 享受享受生活
avatar
G*O
28
LZ就是没刷过面经,这些题目要是熟悉面经的话。。。。
design就是不熟悉套路。。。
avatar
n*g
29
不就是打了这么多年高尔夫打腻了。养老公司里都是N娃大妈。血汗工厂的想着进养老
公司。我这样老不死的找机会去调戏一下FANG的小恐龙们嘛。年底还能在三饭版贴1040
为龙虾党做贡献不是。

【在 y***g 的大作中提到】
: 折腾啥 一堆啥也不懂的小年轻一起工作你不郁闷吗
: 没事周末打打高尔夫 享受享受生活

avatar
d*8
30
其实我倒觉得不是因为你不会Java,其实FB的Infra用的多还是C++
System Design前面有人说了,E5以上就是senior,要求跟刚毕业工作几年的肯定不一
样。最好是给出设计,分析优缺点怎么做trade-off,然后指出各个部分可以用哪些
工业界现成的解决方案(别如说key-value store有啥开源的能用的)。
你的Recruiter感觉太不professional了,你要是不吝提供feedback,可以发私信给我
。会帮你post内部的group或者发给她/他的manager。
avatar
x*n
31
Final rd person1 最后followup 巨大数组只有几个非零值, 我觉得最好的优化是把
非零值的index做key存在一个hashmap里, 然后写个api getvaluebyindex 不在map里
的直接output 0就好了。
avatar
u*u
32
赞面经,楼主不如一鼓作气再面几个养老公司好了。
avatar
j*r
33
楼主估计没有分布式设计的经验,像那样的系统设计题,拿出Cassandra基本秒杀。
wide table,要所有朋友就返回整行,要一个朋友就返回那个数据就行。
avatar
s*r
34
LZ没玩过column family,所有朋友不是要放在一起的,每个朋友放一个column,还可
以存其他信息,比如何时建立朋友关系,上次看对方的profile是什么时候,看了些啥
,相关的信息都可以存在一起。当然LZ的经验可能还是基于Relational DB的,没有做
Object DB的经验
LZ的回答开始是对的,后来回答要存成大字符串就完菜了,再后来的问题基本就是
trash了

【在 j**********r 的大作中提到】
: 楼主估计没有分布式设计的经验,像那样的系统设计题,拿出Cassandra基本秒杀。
: wide table,要所有朋友就返回整行,要一个朋友就返回那个数据就行。

avatar
z*o
35
好的,
去吧

【在 n********g 的大作中提到】
: 谢谢分享。我也收到FB的骚扰。想着退休前要不要再折腾一次。
: 我个人觉得你坏在不懂Java和Python上。
: 另外,像别人说的,你做的答案都有问题。
: 如两个大稀疏向量相乘类似于合并排序。用两个指针O(n)就行了。你还搞二分搜索就复
: 杂了。

avatar
l*i
36
多谢分享
avatar
f*n
37
没看多少。就是觉得恐怖。年过半百,刷题。。。
avatar
s*r
38
是啊,LZ讲出来就是吓人的。
CS博士,跟国内早就当教授总监了,谁还刷题啊

【在 f*****n 的大作中提到】
: 没看多少。就是觉得恐怖。年过半百,刷题。。。
avatar
n*g
39
清华教授,虽然是二流学科,和田纳西教授还是有差距的。要进清华除了会吹还是得刷
题(灌水)。

【在 s*****r 的大作中提到】
: 是啊,LZ讲出来就是吓人的。
: CS博士,跟国内早就当教授总监了,谁还刷题啊

avatar
n*g
40
我没看懂你的问题。
不过我N年前(N > 9)的面试经验是不要滥用hashmap。
考算法的本意还是各种排序。排序是最最重要/基础的计算机算法是有数学上的原因的。
刷题之前一定要把各种排序搞清楚。

【在 x*********n 的大作中提到】
: Final rd person1 最后followup 巨大数组只有几个非零值, 我觉得最好的优化是把
: 非零值的index做key存在一个hashmap里, 然后写个api getvaluebyindex 不在map里
: 的直接output 0就好了。

avatar
l*c
41
onsite first round的题跟我电面的一样,我直接上map了
面试官问为什么,我说map好啊,复杂度是m + n,面试官说这里的index是排好序的,
我说二分法复杂度是m * log n啊
面试官说哦
然后就被安排第二个电面了,我去

面。

【在 w*****k 的大作中提到】
: 简单总结:CS博士,奔5了,申请facebook software engineer,不是headquarter。
: onsite后第三天收到据信。估计死在system design上。面试简况如下。详细的在后面。
: Screening 和final round头两个都是coding interview,都做到了bug free。题目不
: 难,即使没刷过题,也容易有思路。唯一不足的是,有一个coding写的代码不是时间复
: 杂度最低的。虽然后来给出了优化的办法,但是没有时间写优化的代码了。
: 下一个是system design,感觉不太好。其中一个问题是估计要多少个server,我解答
: 的时候,最大的失误可能是没有问每秒钟多少个transaction,面试官也没给这个条件
: 。面试官指出问题后,也没给机会修改。
: 最后一个人,是career+behavior+coding,coding也是bug free的,其他的问题完全没
: 感觉。

avatar
w*g
42
学习一个。。
最后那个蓄水池扫一次是怎么操作的?
avatar
h*0
43
有些明星有几千万follower,存成string确实不make sense。
avatar
h*0
44
内存内查询是什么意思? 要重新发明轮子吗?

Facebook

【在 n********g 的大作中提到】
: 在说说话数据库设计题。我觉得这里的艾迪也大多没有这经验。付上我的几分钱。
: 首先我相信Facebook不会找码工重新发明轮子设计一个数据库管理系统。说到底还是在
: 现有的数据库系统上设计数据库。
: 第二这个稀疏表很小。我不喜欢谷歌就是谷歌的数据量很喜欢装逼。经常研究些大得没
: 屁眼的问题。如在一巨大的整数流中找到第k大的数。k可能是1000、10000。Facebook
: 用户算10万,每人有1000个朋友,这个表也不大。用不着几台server。人家问你这个问
: 题估计是想说你的设计有性能瓶颈,
: 关于吞吐量有三点。
: 第一是真追求吞吐量的可以用SSD阵列。和码工工资比花不了几个钱。就是硬盘阵列,
: 连续读带宽也惊人。

avatar
h*0
45
还是你说的靠谱点。。 按照正常顺序。 说完这个friendship的design,应该要讨论
pull 和push的优缺点了。。。 以及如何scale

【在 s*****r 的大作中提到】
: LZ没玩过column family,所有朋友不是要放在一起的,每个朋友放一个column,还可
: 以存其他信息,比如何时建立朋友关系,上次看对方的profile是什么时候,看了些啥
: ,相关的信息都可以存在一起。当然LZ的经验可能还是基于Relational DB的,没有做
: Object DB的经验
: LZ的回答开始是对的,后来回答要存成大字符串就完菜了,再后来的问题基本就是
: trash了

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。