由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - LGTF面经和总结
相关主题
做设计题的一些思路如果system design不用那些open source tool
找工作总结G家店面design题目
FLAG offer选择讨论一个大规模系统设计题目
面 FLG 如何能树立信心呢?on-site 面经
还有一周onsite,怎么看Hadoop.The.Definitive.Guide效率最高?SQL interview question
周四要去G家onsite求祝福!M家问题
看来design题还真多!What's the algorithm to solve this problem?
驳G家的技术不如FLA先进阿家Prime组新鲜面经
相关话题的讨论汇总
话题: design话题: coding话题: 面试官话题: system话题: 存储
进入JobHunting版参与讨论
1 (共1页)
r****m
发帖数: 70
1
9月份的面试,连续四天面了LGTF,准备面试的半年多时间来从本版受益匪浅,现在把
面经写出来回馈本版,希望大家把好的传统延续下去。
L偏重设计,也可能与面的组是platform有关,6个面试有三个是设计,而且涉及很多细
节,比如index,distribute hash, circule counting. 有一面是manager问项目,个
人觉得选一个自己从头到尾做过的项目,然后按我下面的6点进行准备,基本就够了。
L是有题库的,建议多刷版面和glassdoor。
G偏重coding,每一面都是coding开始,而且占很大比例,如果时间多的话可能有两个
coding,也有可能接一个design问题。
T的面试最没规律,感觉基本是面试官自己决定问什么,所以这里不怎么好做总结。
F的面试是最标准化的,两个半coding + 一个design + 半个项目介绍 (项目介绍同上
面L的), F的题目重现率比较高,看版上的题目就差不多了,design问题基本在之前版
上归纳的几个类别: 设计feed,message, search,存储,都和大数据沾边。
LFT面试官大部分是同胞,大部分同胞是很友好,很帮忙的,在此谢过! 但在L碰到一极
品同胞,和老外一块面我,始终一副很屌的样子。在T碰到一个老中manager,一副高高
在上的态度,不断challenge我的过去的项目和跳槽动机。在L和T各碰到一个烙印。G全
部是白人面试官,都很友好,也是最顺利的面试,感觉G的面试官是最认真负责的,我
在写code的时候,他们也很忙碌的把我的代码和过程记录下来。
准备内容:
1. Coding:
Leetcode, 1.5遍
2. 大数据:
Google的三篇论文 (GFS, Map-Reduce, Big-Table)
Hadoop, HDFS, HBase (等同于Google三篇论文,可二选一)
Amazon Dynamo, Facebook Cassandra (大数据的另一种存储方式)
CAP theorem, Distribute Hashing, Consistent hashing, Eventual
Consistent
3. 系统设计:
Multi-Thread
Message Queue, Memory Cache
Facebook, Twitter的一些tech talks
Coding
1. 问问题,理解题意,弄清楚输入、输出、流程,磨刀不误砍柴工
2. 多想几种解法(从brutal force开始),简单例子,test case,画图 5到10分钟
3. 与面试官交流想法 2分钟
4. Pseudo code 在草稿纸上 , 分成子函数,模块化,将复杂问题交给子函数
5. Real code 在答题板上 10到20分钟
6. Verify, 检查错误,特殊条件,边界条件 5分钟
OO Design
1. 需求分析,问问题,列出input, output, use cases
2. 讨论性能要求和Specification, 讨论不同方案trad-off, 方便读还是方便写,
push 还是pull来发送更新
3. 分析流程,将用use cases转换成use scenario, 可以用(Given, When, Then)关键
词描述
eg: 取款流程
Give a person has a bank account with balance 100
When the person withdraw 30
Then the balance will be changed to 70
4. 根据use scenario设计data model
将上面例子中的名词抽取出来作为对象或属性,动作抽取作为方法
class Person{
long personId;
List accounts;
}
class BankAccount{
long accountId
double balance;
}
class AccountService{
boolean withdraw(long personId, long accountId, double amount){}
double deposits(long personId, long accountId, double amount){}
double getBalance(long personId, long accountId)
}
5. 然后考虑高并发情况下,如何提升Scalability. 可以往LoadBalance, Partition/
Shading,cache等方面考虑, 讨论各种方式的优缺点
项目准备,选一个自己从头到尾做过的项目,先准备一个简单介绍,然后根据根据下面
6点准备具体内容
1. Most challenging: complexity legacy system, no testing, scalability
2. What you learn: unit test, decoupling, gray deployment
3. Most interesting: automatically test framework
4. Hardest bug: race condition / dead lock
5. Conflict with teammates: configuration migration
6. Failure: full dial up cause big issue // don't be too optimist // be
careful all the time
面试题
1. Find influencer, BF n^n, optimize to O(n)
2. sqrt(double x, double dlta) lg(x/dlta), m+dlta??, m - dlta??
3. Design a Message store system (in-memory storage) [seq_id, len, data]
chunk
4. Design monitoring system, circular array, storage, aggregation
5. Hiring manager, Project description
6. Design a key / value system, put, get, delete (copy on write)
1. Longest increasing sub-array? O(n), better than O(n)
Design a dropper box system.
2. Sort by type and timestamp
Num of routers
3. (startTime, endTime, load), find max load in a certain
4. Coding program to record event count
5. Largest summary in sub-array
Design tiny url
1. Present project
Copy Linked list with node point to other
2. Boogle, Trie
3. Design a feeds system, write and query
4. Find longest sub-array with sum to K
f*******t
发帖数: 7549
2
给力

★ 发自iPhone App: ChineseWeb 7.8

【在 r****m 的大作中提到】
: 9月份的面试,连续四天面了LGTF,准备面试的半年多时间来从本版受益匪浅,现在把
: 面经写出来回馈本版,希望大家把好的传统延续下去。
: L偏重设计,也可能与面的组是platform有关,6个面试有三个是设计,而且涉及很多细
: 节,比如index,distribute hash, circule counting. 有一面是manager问项目,个
: 人觉得选一个自己从头到尾做过的项目,然后按我下面的6点进行准备,基本就够了。
: L是有题库的,建议多刷版面和glassdoor。
: G偏重coding,每一面都是coding开始,而且占很大比例,如果时间多的话可能有两个
: coding,也有可能接一个design问题。
: T的面试最没规律,感觉基本是面试官自己决定问什么,所以这里不怎么好做总结。
: F的面试是最标准化的,两个半coding + 一个design + 半个项目介绍 (项目介绍同上

p*u
发帖数: 136
3
mark
z****s
发帖数: 409
4
结果哪个给你offer了?
f*****d
发帖数: 209
5
厉害,报报offer吧



【在 r****m 的大作中提到】
: 9月份的面试,连续四天面了LGTF,准备面试的半年多时间来从本版受益匪浅,现在把
: 面经写出来回馈本版,希望大家把好的传统延续下去。
: L偏重设计,也可能与面的组是platform有关,6个面试有三个是设计,而且涉及很多细
: 节,比如index,distribute hash, circule counting. 有一面是manager问项目,个
: 人觉得选一个自己从头到尾做过的项目,然后按我下面的6点进行准备,基本就够了。
: L是有题库的,建议多刷版面和glassdoor。
: G偏重coding,每一面都是coding开始,而且占很大比例,如果时间多的话可能有两个
: coding,也有可能接一个design问题。
: T的面试最没规律,感觉基本是面试官自己决定问什么,所以这里不怎么好做总结。
: F的面试是最标准化的,两个半coding + 一个design + 半个项目介绍 (项目介绍同上

n****e
发帖数: 678
6
赞楼主的面经和总结!写的很实在。
面试题里面给的是3家的。楼主去的那家,应该没有给出。
从面试题来看,给出的3家是: L, T, F
所以楼主去的是G
P*******r
发帖数: 210
7
多谢楼主详细的面经。准备和分析写的很棒。
那个find influencer,从没见过,也没有搜到,能介绍一下题目吗?
J****3
发帖数: 427
8
谢楼主这么详细的总结和面经!
J****3
发帖数: 427
9
楼主能说说你是怎么实现 key-value system的么?
t**********h
发帖数: 2273
10
这两个极品就该被拍



【在 r****m 的大作中提到】
: 9月份的面试,连续四天面了LGTF,准备面试的半年多时间来从本版受益匪浅,现在把
: 面经写出来回馈本版,希望大家把好的传统延续下去。
: L偏重设计,也可能与面的组是platform有关,6个面试有三个是设计,而且涉及很多细
: 节,比如index,distribute hash, circule counting. 有一面是manager问项目,个
: 人觉得选一个自己从头到尾做过的项目,然后按我下面的6点进行准备,基本就够了。
: L是有题库的,建议多刷版面和glassdoor。
: G偏重coding,每一面都是coding开始,而且占很大比例,如果时间多的话可能有两个
: coding,也有可能接一个design问题。
: T的面试最没规律,感觉基本是面试官自己决定问什么,所以这里不怎么好做总结。
: F的面试是最标准化的,两个半coding + 一个design + 半个项目介绍 (项目介绍同上

相关主题
周四要去G家onsite求祝福!如果system design不用那些open source tool
看来design题还真多!G家店面design题目
驳G家的技术不如FLA先进讨论一个大规模系统设计题目
进入JobHunting版参与讨论
J****3
发帖数: 427
11
从隔壁拿来的 Find Influencer,O(n)解法,http://www.glassdoor.com/Interview/Consider-an-X-x-Y-array-of-1-s-and-0s-The-X-axis-represents-influences-meaning-that-X-influences-Y-So-for-example-i-QTN_498161.htm

【在 P*******r 的大作中提到】
: 多谢楼主详细的面经。准备和分析写的很棒。
: 那个find influencer,从没见过,也没有搜到,能介绍一下题目吗?

b*****d
发帖数: 39
12
mark
n****e
发帖数: 678
13
搜一下 Celebrity problem

【在 P*******r 的大作中提到】
: 多谢楼主详细的面经。准备和分析写的很棒。
: 那个find influencer,从没见过,也没有搜到,能介绍一下题目吗?

x*******8
发帖数: 145
14
赞一个,很好的面经
m**p
发帖数: 189
15
恭喜!



【在 r****m 的大作中提到】
: 9月份的面试,连续四天面了LGTF,准备面试的半年多时间来从本版受益匪浅,现在把
: 面经写出来回馈本版,希望大家把好的传统延续下去。
: L偏重设计,也可能与面的组是platform有关,6个面试有三个是设计,而且涉及很多细
: 节,比如index,distribute hash, circule counting. 有一面是manager问项目,个
: 人觉得选一个自己从头到尾做过的项目,然后按我下面的6点进行准备,基本就够了。
: L是有题库的,建议多刷版面和glassdoor。
: G偏重coding,每一面都是coding开始,而且占很大比例,如果时间多的话可能有两个
: coding,也有可能接一个design问题。
: T的面试最没规律,感觉基本是面试官自己决定问什么,所以这里不怎么好做总结。
: F的面试是最标准化的,两个半coding + 一个design + 半个项目介绍 (项目介绍同上

c*****0
发帖数: 19
16
mark



【在 r****m 的大作中提到】
: 9月份的面试,连续四天面了LGTF,准备面试的半年多时间来从本版受益匪浅,现在把
: 面经写出来回馈本版,希望大家把好的传统延续下去。
: L偏重设计,也可能与面的组是platform有关,6个面试有三个是设计,而且涉及很多细
: 节,比如index,distribute hash, circule counting. 有一面是manager问项目,个
: 人觉得选一个自己从头到尾做过的项目,然后按我下面的6点进行准备,基本就够了。
: L是有题库的,建议多刷版面和glassdoor。
: G偏重coding,每一面都是coding开始,而且占很大比例,如果时间多的话可能有两个
: coding,也有可能接一个design问题。
: T的面试最没规律,感觉基本是面试官自己决定问什么,所以这里不怎么好做总结。
: F的面试是最标准化的,两个半coding + 一个design + 半个项目介绍 (项目介绍同上

u*****o
发帖数: 1224
17
恭喜! 赞面经!
c********e
发帖数: 186
18
厉害!恭喜!
l****o
发帖数: 315
19
赞大牛!
f********e
发帖数: 91
20
谢谢LZ的面经
问一个问题 Longest increasing subarray 的O(n)解法是什么呀?我知道O(n^2)
和O(nlgn)的解法。。。



【在 r****m 的大作中提到】
: 9月份的面试,连续四天面了LGTF,准备面试的半年多时间来从本版受益匪浅,现在把
: 面经写出来回馈本版,希望大家把好的传统延续下去。
: L偏重设计,也可能与面的组是platform有关,6个面试有三个是设计,而且涉及很多细
: 节,比如index,distribute hash, circule counting. 有一面是manager问项目,个
: 人觉得选一个自己从头到尾做过的项目,然后按我下面的6点进行准备,基本就够了。
: L是有题库的,建议多刷版面和glassdoor。
: G偏重coding,每一面都是coding开始,而且占很大比例,如果时间多的话可能有两个
: coding,也有可能接一个design问题。
: T的面试最没规律,感觉基本是面试官自己决定问什么,所以这里不怎么好做总结。
: F的面试是最标准化的,两个半coding + 一个design + 半个项目介绍 (项目介绍同上

相关主题
on-site 面经What's the algorithm to solve this problem?
SQL interview question阿家Prime组新鲜面经
M家问题一道java面试题
进入JobHunting版参与讨论
z*********8
发帖数: 2070
21
自己搜一下吧 我记得stackoverflow上面就有解法

【在 f********e 的大作中提到】
: 谢谢LZ的面经
: 问一个问题 Longest increasing subarray 的O(n)解法是什么呀?我知道O(n^2)
: 和O(nlgn)的解法。。。
:
: 。

l***n
发帖数: 89
22
很有启发性。感谢lz面经



【在 r****m 的大作中提到】
: 9月份的面试,连续四天面了LGTF,准备面试的半年多时间来从本版受益匪浅,现在把
: 面经写出来回馈本版,希望大家把好的传统延续下去。
: L偏重设计,也可能与面的组是platform有关,6个面试有三个是设计,而且涉及很多细
: 节,比如index,distribute hash, circule counting. 有一面是manager问项目,个
: 人觉得选一个自己从头到尾做过的项目,然后按我下面的6点进行准备,基本就够了。
: L是有题库的,建议多刷版面和glassdoor。
: G偏重coding,每一面都是coding开始,而且占很大比例,如果时间多的话可能有两个
: coding,也有可能接一个design问题。
: T的面试最没规律,感觉基本是面试官自己决定问什么,所以这里不怎么好做总结。
: F的面试是最标准化的,两个半coding + 一个design + 半个项目介绍 (项目介绍同上

d***n
发帖数: 832
23
写得相当好
非常有用
不得不顶
g*********e
发帖数: 14401
24

同问啊

【在 f********e 的大作中提到】
: 谢谢LZ的面经
: 问一个问题 Longest increasing subarray 的O(n)解法是什么呀?我知道O(n^2)
: 和O(nlgn)的解法。。。
:
: 。

g*********e
发帖数: 14401
25

http://stackoverflow.com/questions/14492047/longest-subarray-th
这个吗?看来理解错了,subarray是连续的
subsequence是可以不连续的

【在 z*********8 的大作中提到】
: 自己搜一下吧 我记得stackoverflow上面就有解法
J****3
发帖数: 427
26
LIS 最好情况就是O(nlgn) 了吧

【在 g*********e 的大作中提到】
:
: http://stackoverflow.com/questions/14492047/longest-subarray-th
: 这个吗?看来理解错了,subarray是连续的
: subsequence是可以不连续的

w*****t
发帖数: 485
27
大赞楼主!这个好传统要延续下去!



【在 r****m 的大作中提到】
: 9月份的面试,连续四天面了LGTF,准备面试的半年多时间来从本版受益匪浅,现在把
: 面经写出来回馈本版,希望大家把好的传统延续下去。
: L偏重设计,也可能与面的组是platform有关,6个面试有三个是设计,而且涉及很多细
: 节,比如index,distribute hash, circule counting. 有一面是manager问项目,个
: 人觉得选一个自己从头到尾做过的项目,然后按我下面的6点进行准备,基本就够了。
: L是有题库的,建议多刷版面和glassdoor。
: G偏重coding,每一面都是coding开始,而且占很大比例,如果时间多的话可能有两个
: coding,也有可能接一个design问题。
: T的面试最没规律,感觉基本是面试官自己决定问什么,所以这里不怎么好做总结。
: F的面试是最标准化的,两个半coding + 一个design + 半个项目介绍 (项目介绍同上

r****m
发帖数: 70
28
这是一个很有意思的题目,主要是考高并发下的key value存储系统,我一开始从
distibute hash入手,讲了讲分布式存储系统,类似 Dynamo. 后来面试官让我设计单
服务器上put, get, delete, update。可以借鉴GFS,比如以64K为存储块(block), 存
储块大小可以和面试官讨论,如果存储的value比较大,就用大的存储块(GFS是64M),
在内存中维护一个Index(Key -> Block), 每次读写操作以存储块为单位,
1. Put: 在内存中写,写满64M,写入硬盘
2. Get: 根据Index找到对应存储块,如果存储块不在内存,从硬盘中读出,按LRU更新
内存中存储块,然后块内顺序查找
3. Delete: 直接从index上删除key,后台运行一个垃圾回收的程序,专门负责清理,
合并存储块
4. Update: Copy on Write, 先将原来的值copy出来存入新的块,update完成后
update index,这样可以避免读写冲突的问题。原来的内容会被垃圾回收处理。

【在 J****3 的大作中提到】
: 楼主能说说你是怎么实现 key-value system的么?
P*******r
发帖数: 210
29
多谢, 这个O(N)算法很巧妙。
http://www.geeksforgeeks.org/the-celebrity-problem/

【在 n****e 的大作中提到】
: 搜一下 Celebrity problem
x******9
发帖数: 473
30
相关主题
问道算法题。找工作总结
Amazon面试题FLAG offer选择
做设计题的一些思路面 FLG 如何能树立信心呢?
进入JobHunting版参与讨论
t******i
发帖数: 483
31
MARK
c********p
发帖数: 1969
32
mark
c******t
发帖数: 391
33
Mark



【在 r****m 的大作中提到】
: 9月份的面试,连续四天面了LGTF,准备面试的半年多时间来从本版受益匪浅,现在把
: 面经写出来回馈本版,希望大家把好的传统延续下去。
: L偏重设计,也可能与面的组是platform有关,6个面试有三个是设计,而且涉及很多细
: 节,比如index,distribute hash, circule counting. 有一面是manager问项目,个
: 人觉得选一个自己从头到尾做过的项目,然后按我下面的6点进行准备,基本就够了。
: L是有题库的,建议多刷版面和glassdoor。
: G偏重coding,每一面都是coding开始,而且占很大比例,如果时间多的话可能有两个
: coding,也有可能接一个design问题。
: T的面试最没规律,感觉基本是面试官自己决定问什么,所以这里不怎么好做总结。
: F的面试是最标准化的,两个半coding + 一个design + 半个项目介绍 (项目介绍同上

J****3
发帖数: 427
34
谢楼主详细回答!之前就遇到一次这个同样的问题, 看来三驾马车还是要再好好读读
啦我

【在 r****m 的大作中提到】
: 这是一个很有意思的题目,主要是考高并发下的key value存储系统,我一开始从
: distibute hash入手,讲了讲分布式存储系统,类似 Dynamo. 后来面试官让我设计单
: 服务器上put, get, delete, update。可以借鉴GFS,比如以64K为存储块(block), 存
: 储块大小可以和面试官讨论,如果存储的value比较大,就用大的存储块(GFS是64M),
: 在内存中维护一个Index(Key -> Block), 每次读写操作以存储块为单位,
: 1. Put: 在内存中写,写满64M,写入硬盘
: 2. Get: 根据Index找到对应存储块,如果存储块不在内存,从硬盘中读出,按LRU更新
: 内存中存储块,然后块内顺序查找
: 3. Delete: 直接从index上删除key,后台运行一个垃圾回收的程序,专门负责清理,
: 合并存储块

f*****t
发帖数: 13
35
楼主客否回答如下两个问题:
Coding
1. 问问题,理解题意,弄清楚输入、输出、流程,磨刀不误砍柴工
2. 多想几种解法(从brutal force开始),简单例子,test case,画图 5到10分钟
3. 与面试官交流想法 2分钟
4. Pseudo code 在草稿纸上 , 分成子函数,模块化,将复杂问题交给子函数
5. Real code 在答题板上 10到20分钟
6. Verify, 检查错误,特殊条件,边界条件 5分钟
一个面试官做一道做好好呢,还是做尽量多的题好呢?
Longest increasing sub-array? O(n), better than O(n)
怎么better than O(n).



【在 r****m 的大作中提到】
: 9月份的面试,连续四天面了LGTF,准备面试的半年多时间来从本版受益匪浅,现在把
: 面经写出来回馈本版,希望大家把好的传统延续下去。
: L偏重设计,也可能与面的组是platform有关,6个面试有三个是设计,而且涉及很多细
: 节,比如index,distribute hash, circule counting. 有一面是manager问项目,个
: 人觉得选一个自己从头到尾做过的项目,然后按我下面的6点进行准备,基本就够了。
: L是有题库的,建议多刷版面和glassdoor。
: G偏重coding,每一面都是coding开始,而且占很大比例,如果时间多的话可能有两个
: coding,也有可能接一个design问题。
: T的面试最没规律,感觉基本是面试官自己决定问什么,所以这里不怎么好做总结。
: F的面试是最标准化的,两个半coding + 一个design + 半个项目介绍 (项目介绍同上

c********w
发帖数: 2438
36
GXGX
这个得mark
h**i
发帖数: 6
37
mark
B*****g
发帖数: 34098
38
大赞



【在 r****m 的大作中提到】
: 9月份的面试,连续四天面了LGTF,准备面试的半年多时间来从本版受益匪浅,现在把
: 面经写出来回馈本版,希望大家把好的传统延续下去。
: L偏重设计,也可能与面的组是platform有关,6个面试有三个是设计,而且涉及很多细
: 节,比如index,distribute hash, circule counting. 有一面是manager问项目,个
: 人觉得选一个自己从头到尾做过的项目,然后按我下面的6点进行准备,基本就够了。
: L是有题库的,建议多刷版面和glassdoor。
: G偏重coding,每一面都是coding开始,而且占很大比例,如果时间多的话可能有两个
: coding,也有可能接一个design问题。
: T的面试最没规律,感觉基本是面试官自己决定问什么,所以这里不怎么好做总结。
: F的面试是最标准化的,两个半coding + 一个design + 半个项目介绍 (项目介绍同上

e***s
发帖数: 799
39
赞楼主干货
a********9
发帖数: 129
40
楼主能讲讲L的另外两道design题么, 感谢!
3. Design a Message store system (in-memory storage) [seq_id, len, data]
chunk
看起来像memcached?
4. Design monitoring system, circular array, storage, aggregation
是指这个么http://en.wikipedia.org/wiki/System_monitoring?怎么用circular array?
相关主题
面 FLG 如何能树立信心呢?看来design题还真多!
还有一周onsite,怎么看Hadoop.The.Definitive.Guide效率最高?驳G家的技术不如FLA先进
周四要去G家onsite求祝福!如果system design不用那些open source tool
进入JobHunting版参与讨论
b****f
发帖数: 138
41
Mark
h*d
发帖数: 19309
42
楼主好人一生平安!
J*******o
发帖数: 741
43
大赞大牛的总结,非常有帮助, 谢谢!
r****m
发帖数: 70
44
9月份的面试,连续四天面了LGTF,准备面试的半年多时间来从本版受益匪浅,现在把
面经写出来回馈本版,希望大家把好的传统延续下去。
L偏重设计,也可能与面的组是platform有关,6个面试有三个是设计,而且涉及很多细
节,比如index,distribute hash, circule counting. 有一面是manager问项目,个
人觉得选一个自己从头到尾做过的项目,然后按我下面的6点进行准备,基本就够了。
L是有题库的,建议多刷版面和glassdoor。
G偏重coding,每一面都是coding开始,而且占很大比例,如果时间多的话可能有两个
coding,也有可能接一个design问题。
T的面试最没规律,感觉基本是面试官自己决定问什么,所以这里不怎么好做总结。
F的面试是最标准化的,两个半coding + 一个design + 半个项目介绍 (项目介绍同上
面L的), F的题目重现率比较高,看版上的题目就差不多了,design问题基本在之前版
上归纳的几个类别: 设计feed,message, search,存储,都和大数据沾边。
LFT面试官大部分是同胞,大部分同胞是很友好,很帮忙的,在此谢过! 但在L碰到一极
品同胞,和老外一块面我,始终一副很屌的样子。在T碰到一个老中manager,一副高高
在上的态度,不断challenge我的过去的项目和跳槽动机。在L和T各碰到一个烙印。G全
部是白人面试官,都很友好,也是最顺利的面试,感觉G的面试官是最认真负责的,我
在写code的时候,他们也很忙碌的把我的代码和过程记录下来。
准备内容:
1. Coding:
Leetcode, 1.5遍
2. 大数据:
Google的三篇论文 (GFS, Map-Reduce, Big-Table)
Hadoop, HDFS, HBase (等同于Google三篇论文,可二选一)
Amazon Dynamo, Facebook Cassandra (大数据的另一种存储方式)
CAP theorem, Distribute Hashing, Consistent hashing, Eventual
Consistent
3. 系统设计:
Multi-Thread
Message Queue, Memory Cache
Facebook, Twitter的一些tech talks
Coding
1. 问问题,理解题意,弄清楚输入、输出、流程,磨刀不误砍柴工
2. 多想几种解法(从brutal force开始),简单例子,test case,画图 5到10分钟
3. 与面试官交流想法 2分钟
4. Pseudo code 在草稿纸上 , 分成子函数,模块化,将复杂问题交给子函数
5. Real code 在答题板上 10到20分钟
6. Verify, 检查错误,特殊条件,边界条件 5分钟
OO Design
1. 需求分析,问问题,列出input, output, use cases
2. 讨论性能要求和Specification, 讨论不同方案trad-off, 方便读还是方便写,
push 还是pull来发送更新
3. 分析流程,将用use cases转换成use scenario, 可以用(Given, When, Then)关键
词描述
eg: 取款流程
Give a person has a bank account with balance 100
When the person withdraw 30
Then the balance will be changed to 70
4. 根据use scenario设计data model
将上面例子中的名词抽取出来作为对象或属性,动作抽取作为方法
class Person{
long personId;
List accounts;
}
class BankAccount{
long accountId
double balance;
}
class AccountService{
boolean withdraw(long personId, long accountId, double amount){}
double deposits(long personId, long accountId, double amount){}
double getBalance(long personId, long accountId)
}
5. 然后考虑高并发情况下,如何提升Scalability. 可以往LoadBalance, Partition/
Shading,cache等方面考虑, 讨论各种方式的优缺点
项目准备,选一个自己从头到尾做过的项目,先准备一个简单介绍,然后根据根据下面
6点准备具体内容
1. Most challenging: complexity legacy system, no testing, scalability
2. What you learn: unit test, decoupling, gray deployment
3. Most interesting: automatically test framework
4. Hardest bug: race condition / dead lock
5. Conflict with teammates: configuration migration
6. Failure: full dial up cause big issue // don't be too optimist // be
careful all the time
面试题
1. Find influencer, BF n^n, optimize to O(n)
2. sqrt(double x, double dlta) lg(x/dlta), m+dlta??, m - dlta??
3. Design a Message store system (in-memory storage) [seq_id, len, data]
chunk
4. Design monitoring system, circular array, storage, aggregation
5. Hiring manager, Project description
6. Design a key / value system, put, get, delete (copy on write)
1. Longest increasing sub-array? O(n), better than O(n)
Design a dropper box system.
2. Sort by type and timestamp
Num of routers
3. (startTime, endTime, load), find max load in a certain
4. Coding program to record event count
5. Largest summary in sub-array
Design tiny url
1. Present project
Copy Linked list with node point to other
2. Boogle, Trie
3. Design a feeds system, write and query
4. Find longest sub-array with sum to K
Update: 有人问key - value的设计题,这是我的一些理解,欢迎大家讨论指正
这是一个很有意思的题目,主要是考高并发下的key value存储系统,我一开始从
distibute hash入手,讲了讲分布式存储系统,类似 Dynamo. 后来面试官让我设计单
服务器上put, get, delete, update。可以借鉴GFS,比如以64K为存储块(block), 存
储块大小可以和面试官讨论,如果存储的value比较大,就用大的存储块(GFS是64M),
在内存中维护一个Index(Key -> Block), 每次读写操作以存储块为单位,
1. Put: 在内存中写,写满64M,写入硬盘
2. Get: 根据Index找到对应存储块,如果存储块不在内存,从硬盘中读出,按LRU更新
内存中存储块,然后块内顺序查找
3. Delete: 直接从index上删除key,后台运行一个垃圾回收的程序,专门负责清理,
合并存储块
4. Update: Copy on Write, 先将原来的值copy出来存入新的块,update完成后
update index,这样可以避免读写冲突的问题。原来的内容会被垃圾回收处理。
f*******t
发帖数: 7549
45
给力

★ 发自iPhone App: ChineseWeb 7.8

【在 r****m 的大作中提到】
: 9月份的面试,连续四天面了LGTF,准备面试的半年多时间来从本版受益匪浅,现在把
: 面经写出来回馈本版,希望大家把好的传统延续下去。
: L偏重设计,也可能与面的组是platform有关,6个面试有三个是设计,而且涉及很多细
: 节,比如index,distribute hash, circule counting. 有一面是manager问项目,个
: 人觉得选一个自己从头到尾做过的项目,然后按我下面的6点进行准备,基本就够了。
: L是有题库的,建议多刷版面和glassdoor。
: G偏重coding,每一面都是coding开始,而且占很大比例,如果时间多的话可能有两个
: coding,也有可能接一个design问题。
: T的面试最没规律,感觉基本是面试官自己决定问什么,所以这里不怎么好做总结。
: F的面试是最标准化的,两个半coding + 一个design + 半个项目介绍 (项目介绍同上

p*u
发帖数: 136
46
mark
z****s
发帖数: 409
47
结果哪个给你offer了?
f*****d
发帖数: 209
48
厉害,报报offer吧



【在 r****m 的大作中提到】
: 9月份的面试,连续四天面了LGTF,准备面试的半年多时间来从本版受益匪浅,现在把
: 面经写出来回馈本版,希望大家把好的传统延续下去。
: L偏重设计,也可能与面的组是platform有关,6个面试有三个是设计,而且涉及很多细
: 节,比如index,distribute hash, circule counting. 有一面是manager问项目,个
: 人觉得选一个自己从头到尾做过的项目,然后按我下面的6点进行准备,基本就够了。
: L是有题库的,建议多刷版面和glassdoor。
: G偏重coding,每一面都是coding开始,而且占很大比例,如果时间多的话可能有两个
: coding,也有可能接一个design问题。
: T的面试最没规律,感觉基本是面试官自己决定问什么,所以这里不怎么好做总结。
: F的面试是最标准化的,两个半coding + 一个design + 半个项目介绍 (项目介绍同上

n****e
发帖数: 678
49
赞楼主的面经和总结!写的很实在。
面试题里面给的是3家的。楼主去的那家,应该没有给出。
从面试题来看,给出的3家是: L, T, F
所以楼主去的是G
P*******r
发帖数: 210
50
多谢楼主详细的面经。准备和分析写的很棒。
那个find influencer,从没见过,也没有搜到,能介绍一下题目吗?
相关主题
G家店面design题目SQL interview question
讨论一个大规模系统设计题目M家问题
on-site 面经What's the algorithm to solve this problem?
进入JobHunting版参与讨论
J****3
发帖数: 427
51
谢楼主这么详细的总结和面经!
J****3
发帖数: 427
52
楼主能说说你是怎么实现 key-value system的么?
t**********h
发帖数: 2273
53
这两个极品就该被拍



【在 r****m 的大作中提到】
: 9月份的面试,连续四天面了LGTF,准备面试的半年多时间来从本版受益匪浅,现在把
: 面经写出来回馈本版,希望大家把好的传统延续下去。
: L偏重设计,也可能与面的组是platform有关,6个面试有三个是设计,而且涉及很多细
: 节,比如index,distribute hash, circule counting. 有一面是manager问项目,个
: 人觉得选一个自己从头到尾做过的项目,然后按我下面的6点进行准备,基本就够了。
: L是有题库的,建议多刷版面和glassdoor。
: G偏重coding,每一面都是coding开始,而且占很大比例,如果时间多的话可能有两个
: coding,也有可能接一个design问题。
: T的面试最没规律,感觉基本是面试官自己决定问什么,所以这里不怎么好做总结。
: F的面试是最标准化的,两个半coding + 一个design + 半个项目介绍 (项目介绍同上

J****3
发帖数: 427
54
从隔壁拿来的 Find Influencer,O(n)解法,http://www.glassdoor.com/Interview/Consider-an-X-x-Y-array-of-1-s-and-0s-The-X-axis-represents-influences-meaning-that-X-influences-Y-So-for-example-i-QTN_498161.htm

【在 P*******r 的大作中提到】
: 多谢楼主详细的面经。准备和分析写的很棒。
: 那个find influencer,从没见过,也没有搜到,能介绍一下题目吗?

b*****d
发帖数: 39
55
mark
n****e
发帖数: 678
56
搜一下 Celebrity problem

【在 P*******r 的大作中提到】
: 多谢楼主详细的面经。准备和分析写的很棒。
: 那个find influencer,从没见过,也没有搜到,能介绍一下题目吗?

x*******8
发帖数: 145
57
赞一个,很好的面经
m**p
发帖数: 189
58
恭喜!



【在 r****m 的大作中提到】
: 9月份的面试,连续四天面了LGTF,准备面试的半年多时间来从本版受益匪浅,现在把
: 面经写出来回馈本版,希望大家把好的传统延续下去。
: L偏重设计,也可能与面的组是platform有关,6个面试有三个是设计,而且涉及很多细
: 节,比如index,distribute hash, circule counting. 有一面是manager问项目,个
: 人觉得选一个自己从头到尾做过的项目,然后按我下面的6点进行准备,基本就够了。
: L是有题库的,建议多刷版面和glassdoor。
: G偏重coding,每一面都是coding开始,而且占很大比例,如果时间多的话可能有两个
: coding,也有可能接一个design问题。
: T的面试最没规律,感觉基本是面试官自己决定问什么,所以这里不怎么好做总结。
: F的面试是最标准化的,两个半coding + 一个design + 半个项目介绍 (项目介绍同上

c*****0
发帖数: 19
59
mark



【在 r****m 的大作中提到】
: 9月份的面试,连续四天面了LGTF,准备面试的半年多时间来从本版受益匪浅,现在把
: 面经写出来回馈本版,希望大家把好的传统延续下去。
: L偏重设计,也可能与面的组是platform有关,6个面试有三个是设计,而且涉及很多细
: 节,比如index,distribute hash, circule counting. 有一面是manager问项目,个
: 人觉得选一个自己从头到尾做过的项目,然后按我下面的6点进行准备,基本就够了。
: L是有题库的,建议多刷版面和glassdoor。
: G偏重coding,每一面都是coding开始,而且占很大比例,如果时间多的话可能有两个
: coding,也有可能接一个design问题。
: T的面试最没规律,感觉基本是面试官自己决定问什么,所以这里不怎么好做总结。
: F的面试是最标准化的,两个半coding + 一个design + 半个项目介绍 (项目介绍同上

u*****o
发帖数: 1224
60
恭喜! 赞面经!
相关主题
阿家Prime组新鲜面经Amazon面试题
一道java面试题做设计题的一些思路
问道算法题。找工作总结
进入JobHunting版参与讨论
c********e
发帖数: 186
61
厉害!恭喜!
l****o
发帖数: 315
62
赞大牛!
f********e
发帖数: 91
63
谢谢LZ的面经
问一个问题 Longest increasing subarray 的O(n)解法是什么呀?我知道O(n^2)
和O(nlgn)的解法。。。



【在 r****m 的大作中提到】
: 9月份的面试,连续四天面了LGTF,准备面试的半年多时间来从本版受益匪浅,现在把
: 面经写出来回馈本版,希望大家把好的传统延续下去。
: L偏重设计,也可能与面的组是platform有关,6个面试有三个是设计,而且涉及很多细
: 节,比如index,distribute hash, circule counting. 有一面是manager问项目,个
: 人觉得选一个自己从头到尾做过的项目,然后按我下面的6点进行准备,基本就够了。
: L是有题库的,建议多刷版面和glassdoor。
: G偏重coding,每一面都是coding开始,而且占很大比例,如果时间多的话可能有两个
: coding,也有可能接一个design问题。
: T的面试最没规律,感觉基本是面试官自己决定问什么,所以这里不怎么好做总结。
: F的面试是最标准化的,两个半coding + 一个design + 半个项目介绍 (项目介绍同上

z*********8
发帖数: 2070
64
自己搜一下吧 我记得stackoverflow上面就有解法

【在 f********e 的大作中提到】
: 谢谢LZ的面经
: 问一个问题 Longest increasing subarray 的O(n)解法是什么呀?我知道O(n^2)
: 和O(nlgn)的解法。。。
:
: 。

l***n
发帖数: 89
65
很有启发性。感谢lz面经



【在 r****m 的大作中提到】
: 9月份的面试,连续四天面了LGTF,准备面试的半年多时间来从本版受益匪浅,现在把
: 面经写出来回馈本版,希望大家把好的传统延续下去。
: L偏重设计,也可能与面的组是platform有关,6个面试有三个是设计,而且涉及很多细
: 节,比如index,distribute hash, circule counting. 有一面是manager问项目,个
: 人觉得选一个自己从头到尾做过的项目,然后按我下面的6点进行准备,基本就够了。
: L是有题库的,建议多刷版面和glassdoor。
: G偏重coding,每一面都是coding开始,而且占很大比例,如果时间多的话可能有两个
: coding,也有可能接一个design问题。
: T的面试最没规律,感觉基本是面试官自己决定问什么,所以这里不怎么好做总结。
: F的面试是最标准化的,两个半coding + 一个design + 半个项目介绍 (项目介绍同上

d***n
发帖数: 832
66
写得相当好
非常有用
不得不顶
g*********e
发帖数: 14401
67

同问啊

【在 f********e 的大作中提到】
: 谢谢LZ的面经
: 问一个问题 Longest increasing subarray 的O(n)解法是什么呀?我知道O(n^2)
: 和O(nlgn)的解法。。。
:
: 。

g*********e
发帖数: 14401
68

http://stackoverflow.com/questions/14492047/longest-subarray-th
这个吗?看来理解错了,subarray是连续的
subsequence是可以不连续的

【在 z*********8 的大作中提到】
: 自己搜一下吧 我记得stackoverflow上面就有解法
J****3
发帖数: 427
69
LIS 最好情况就是O(nlgn) 了吧

【在 g*********e 的大作中提到】
:
: http://stackoverflow.com/questions/14492047/longest-subarray-th
: 这个吗?看来理解错了,subarray是连续的
: subsequence是可以不连续的

w*****t
发帖数: 485
70
大赞楼主!这个好传统要延续下去!



【在 r****m 的大作中提到】
: 9月份的面试,连续四天面了LGTF,准备面试的半年多时间来从本版受益匪浅,现在把
: 面经写出来回馈本版,希望大家把好的传统延续下去。
: L偏重设计,也可能与面的组是platform有关,6个面试有三个是设计,而且涉及很多细
: 节,比如index,distribute hash, circule counting. 有一面是manager问项目,个
: 人觉得选一个自己从头到尾做过的项目,然后按我下面的6点进行准备,基本就够了。
: L是有题库的,建议多刷版面和glassdoor。
: G偏重coding,每一面都是coding开始,而且占很大比例,如果时间多的话可能有两个
: coding,也有可能接一个design问题。
: T的面试最没规律,感觉基本是面试官自己决定问什么,所以这里不怎么好做总结。
: F的面试是最标准化的,两个半coding + 一个design + 半个项目介绍 (项目介绍同上

相关主题
找工作总结还有一周onsite,怎么看Hadoop.The.Definitive.Guide效率最高?
FLAG offer选择周四要去G家onsite求祝福!
面 FLG 如何能树立信心呢?看来design题还真多!
进入JobHunting版参与讨论
r****m
发帖数: 70
71
这是一个很有意思的题目,主要是考高并发下的key value存储系统,我一开始从
distibute hash入手,讲了讲分布式存储系统,类似 Dynamo. 后来面试官让我设计单
服务器上put, get, delete, update。可以借鉴GFS,比如以64K为存储块(block), 存
储块大小可以和面试官讨论,如果存储的value比较大,就用大的存储块(GFS是64M),
在内存中维护一个Index(Key -> Block), 每次读写操作以存储块为单位,
1. Put: 在内存中写,写满64M,写入硬盘
2. Get: 根据Index找到对应存储块,如果存储块不在内存,从硬盘中读出,按LRU更新
内存中存储块,然后块内顺序查找
3. Delete: 直接从index上删除key,后台运行一个垃圾回收的程序,专门负责清理,
合并存储块
4. Update: Copy on Write, 先将原来的值copy出来存入新的块,update完成后
update index,这样可以避免读写冲突的问题。原来的内容会被垃圾回收处理。

【在 J****3 的大作中提到】
: 楼主能说说你是怎么实现 key-value system的么?
P*******r
发帖数: 210
72
多谢, 这个O(N)算法很巧妙。
http://www.geeksforgeeks.org/the-celebrity-problem/

【在 n****e 的大作中提到】
: 搜一下 Celebrity problem
x******9
发帖数: 473
73
t******i
发帖数: 483
74
MARK
c********p
发帖数: 1969
75
mark
c******t
发帖数: 391
76
Mark



【在 r****m 的大作中提到】
: 9月份的面试,连续四天面了LGTF,准备面试的半年多时间来从本版受益匪浅,现在把
: 面经写出来回馈本版,希望大家把好的传统延续下去。
: L偏重设计,也可能与面的组是platform有关,6个面试有三个是设计,而且涉及很多细
: 节,比如index,distribute hash, circule counting. 有一面是manager问项目,个
: 人觉得选一个自己从头到尾做过的项目,然后按我下面的6点进行准备,基本就够了。
: L是有题库的,建议多刷版面和glassdoor。
: G偏重coding,每一面都是coding开始,而且占很大比例,如果时间多的话可能有两个
: coding,也有可能接一个design问题。
: T的面试最没规律,感觉基本是面试官自己决定问什么,所以这里不怎么好做总结。
: F的面试是最标准化的,两个半coding + 一个design + 半个项目介绍 (项目介绍同上

J****3
发帖数: 427
77
谢楼主详细回答!之前就遇到一次这个同样的问题, 看来三驾马车还是要再好好读读
啦我

【在 r****m 的大作中提到】
: 这是一个很有意思的题目,主要是考高并发下的key value存储系统,我一开始从
: distibute hash入手,讲了讲分布式存储系统,类似 Dynamo. 后来面试官让我设计单
: 服务器上put, get, delete, update。可以借鉴GFS,比如以64K为存储块(block), 存
: 储块大小可以和面试官讨论,如果存储的value比较大,就用大的存储块(GFS是64M),
: 在内存中维护一个Index(Key -> Block), 每次读写操作以存储块为单位,
: 1. Put: 在内存中写,写满64M,写入硬盘
: 2. Get: 根据Index找到对应存储块,如果存储块不在内存,从硬盘中读出,按LRU更新
: 内存中存储块,然后块内顺序查找
: 3. Delete: 直接从index上删除key,后台运行一个垃圾回收的程序,专门负责清理,
: 合并存储块

f*****t
发帖数: 13
78
楼主客否回答如下两个问题:
Coding
1. 问问题,理解题意,弄清楚输入、输出、流程,磨刀不误砍柴工
2. 多想几种解法(从brutal force开始),简单例子,test case,画图 5到10分钟
3. 与面试官交流想法 2分钟
4. Pseudo code 在草稿纸上 , 分成子函数,模块化,将复杂问题交给子函数
5. Real code 在答题板上 10到20分钟
6. Verify, 检查错误,特殊条件,边界条件 5分钟
一个面试官做一道做好好呢,还是做尽量多的题好呢?
Longest increasing sub-array? O(n), better than O(n)
怎么better than O(n).



【在 r****m 的大作中提到】
: 9月份的面试,连续四天面了LGTF,准备面试的半年多时间来从本版受益匪浅,现在把
: 面经写出来回馈本版,希望大家把好的传统延续下去。
: L偏重设计,也可能与面的组是platform有关,6个面试有三个是设计,而且涉及很多细
: 节,比如index,distribute hash, circule counting. 有一面是manager问项目,个
: 人觉得选一个自己从头到尾做过的项目,然后按我下面的6点进行准备,基本就够了。
: L是有题库的,建议多刷版面和glassdoor。
: G偏重coding,每一面都是coding开始,而且占很大比例,如果时间多的话可能有两个
: coding,也有可能接一个design问题。
: T的面试最没规律,感觉基本是面试官自己决定问什么,所以这里不怎么好做总结。
: F的面试是最标准化的,两个半coding + 一个design + 半个项目介绍 (项目介绍同上

c********w
发帖数: 2438
79
GXGX
这个得mark
h**i
发帖数: 6
80
mark
相关主题
驳G家的技术不如FLA先进讨论一个大规模系统设计题目
如果system design不用那些open source toolon-site 面经
G家店面design题目SQL interview question
进入JobHunting版参与讨论
B*****g
发帖数: 34098
81
大赞



【在 r****m 的大作中提到】
: 9月份的面试,连续四天面了LGTF,准备面试的半年多时间来从本版受益匪浅,现在把
: 面经写出来回馈本版,希望大家把好的传统延续下去。
: L偏重设计,也可能与面的组是platform有关,6个面试有三个是设计,而且涉及很多细
: 节,比如index,distribute hash, circule counting. 有一面是manager问项目,个
: 人觉得选一个自己从头到尾做过的项目,然后按我下面的6点进行准备,基本就够了。
: L是有题库的,建议多刷版面和glassdoor。
: G偏重coding,每一面都是coding开始,而且占很大比例,如果时间多的话可能有两个
: coding,也有可能接一个design问题。
: T的面试最没规律,感觉基本是面试官自己决定问什么,所以这里不怎么好做总结。
: F的面试是最标准化的,两个半coding + 一个design + 半个项目介绍 (项目介绍同上

e***s
发帖数: 799
82
赞楼主干货
a********9
发帖数: 129
83
楼主能讲讲L的另外两道design题么, 感谢!
3. Design a Message store system (in-memory storage) [seq_id, len, data]
chunk
看起来像memcached?
4. Design monitoring system, circular array, storage, aggregation
是指这个么http://en.wikipedia.org/wiki/System_monitoring?怎么用circular array?
b****f
发帖数: 138
84
Mark
h*d
发帖数: 19309
85
楼主好人一生平安!
J*******o
发帖数: 741
86
大赞大牛的总结,非常有帮助, 谢谢!
c****l
发帖数: 1280
87




【在 r****m 的大作中提到】
: 9月份的面试,连续四天面了LGTF,准备面试的半年多时间来从本版受益匪浅,现在把
: 面经写出来回馈本版,希望大家把好的传统延续下去。
: L偏重设计,也可能与面的组是platform有关,6个面试有三个是设计,而且涉及很多细
: 节,比如index,distribute hash, circule counting. 有一面是manager问项目,个
: 人觉得选一个自己从头到尾做过的项目,然后按我下面的6点进行准备,基本就够了。
: L是有题库的,建议多刷版面和glassdoor。
: G偏重coding,每一面都是coding开始,而且占很大比例,如果时间多的话可能有两个
: coding,也有可能接一个design问题。
: T的面试最没规律,感觉基本是面试官自己决定问什么,所以这里不怎么好做总结。
: F的面试是最标准化的,两个半coding + 一个design + 半个项目介绍 (项目介绍同上

j******w
发帖数: 91
88
mark,多谢lz
t********e
发帖数: 1169
89
mark
t********e
发帖数: 1169
90
mark
相关主题
M家问题一道java面试题
What's the algorithm to solve this problem?问道算法题。
阿家Prime组新鲜面经Amazon面试题
进入JobHunting版参与讨论
t********e
发帖数: 1169
91
mark
f******n
发帖数: 279
92
mark
b******z
发帖数: 410
93
m

★ 发自iPhone App: ChineseWeb 8.7

【在 f******n 的大作中提到】
: mark
n*****n
发帖数: 5277
94
mark
1 (共1页)
进入JobHunting版参与讨论
相关主题
阿家Prime组新鲜面经还有一周onsite,怎么看Hadoop.The.Definitive.Guide效率最高?
一道java面试题周四要去G家onsite求祝福!
问道算法题。看来design题还真多!
Amazon面试题驳G家的技术不如FLA先进
做设计题的一些思路如果system design不用那些open source tool
找工作总结G家店面design题目
FLAG offer选择讨论一个大规模系统设计题目
面 FLG 如何能树立信心呢?on-site 面经
相关话题的讨论汇总
话题: design话题: coding话题: 面试官话题: system话题: 存储