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 | |
z****s 发帖数: 409 | |
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 | |
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 + 半个项目介绍 (项目介绍同上
|
|
|
J****3 发帖数: 427 | |
b*****d 发帖数: 39 | |
n****e 发帖数: 678 | 13 搜一下 Celebrity problem
【在 P*******r 的大作中提到】 : 多谢楼主详细的面经。准备和分析写的很棒。 : 那个find influencer,从没见过,也没有搜到,能介绍一下题目吗?
|
x*******8 发帖数: 145 | |
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 | |
c********e 发帖数: 186 | |
l****o 发帖数: 315 | |
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 + 半个项目介绍 (项目介绍同上
|
|
|
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 | |
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 | |
|
|
t******i 发帖数: 483 | |
c********p 发帖数: 1969 | |
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 | |
h**i 发帖数: 6 | |
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 | |
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? |
|
|
b****f 发帖数: 138 | |
h*d 发帖数: 19309 | |
J*******o 发帖数: 741 | |
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 | |
z****s 发帖数: 409 | |
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,从没见过,也没有搜到,能介绍一下题目吗? |
|
|
J****3 发帖数: 427 | |
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 | |
b*****d 发帖数: 39 | |
n****e 发帖数: 678 | 56 搜一下 Celebrity problem
【在 P*******r 的大作中提到】 : 多谢楼主详细的面经。准备和分析写的很棒。 : 那个find influencer,从没见过,也没有搜到,能介绍一下题目吗?
|
x*******8 发帖数: 145 | |
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 | |
|
|
c********e 发帖数: 186 | |
l****o 发帖数: 315 | |
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 | |
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 + 半个项目介绍 (项目介绍同上
|
|
|
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 | |
t******i 发帖数: 483 | |
c********p 发帖数: 1969 | |
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 | |
h**i 发帖数: 6 | |
|
|
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 | |
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 | |
h*d 发帖数: 19309 | |
J*******o 发帖数: 741 | |
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 | |
t********e 发帖数: 1169 | |
t********e 发帖数: 1169 | |
|
|
t********e 发帖数: 1169 | |
f******n 发帖数: 279 | |
b******z 发帖数: 410 | 93 m
★ 发自iPhone App: ChineseWeb 8.7
【在 f******n 的大作中提到】 : mark
|
n*****n 发帖数: 5277 | |