背景: 非CS,计算方向PhD。期间写过一些程序,用过MPI什么的,但是没接触过任何
framework,webservice啥的。一年IT经验,主要是Java后端。
准备材料:leetcode,lintcode,MITBBS,《算法导论》,《Hadoop-The definite
guide》,《mining of massive datasets》,facebook tech talk,google/facebook
的论文(heystack,三驾马车等)。整个准备了大概3个多月4个月,每天至少有3个小
时在看材料/刷题。
结果:F跪,LG标准package。
感想:
(1)入行一年,感觉经验远远不够,主要是design方面,而且不像算法,很难短期突
击准备。即便自己对某个design有个答案,一旦被challenge,就会发现漏洞百出。
(2)骑驴找马很难,要请假什么的。所以我觉得面10来家公司对我很不现实。自己只
面了这三家。
(3)面试经验很重要。面试本身就是一个学习和积累经验的过程。所以想去dream
company,多面面其他公司练练手还是很有必要的。但这又与(2)矛盾。
面经:
F电面(一轮,两题):(1)leetcode #75, (2)leetcode #91.有关于时间/空间,优化
,最坏情况的follow up。
F onsite:
(1)behavior:被问到update一个手机app的new feature和一个web service的new
feature有啥差别;按时间deploy还是按feature deploy等。一道coding是寻找第一个
bad version。
(2)coding:给定一个数组和一个number,判断数组是否存在一个连续的子数组其和等
于这个number,分数组有没有负数两种情况;一道类似leetcode#77,不用在于打印的是
每个组合的乘积。
(3)coding:给一个带重复数字的有序数组和一个number,回答这个number在这个数组
中出现多少次;leetcode #75。
(4)design:tiny url。
hr反馈结果挺好就是design不好,说6个月后联系我再试。
G没有电面,做了一个foo-bar(放狗一搜就知道是啥了)就直接给了onsite,在NY,因
为近。
G onsite: 如果说F的coding题目是计算题的话,那G出的就全是应用题了。所以很难
简单的说出面试题目是啥。需要什么辅助函数要自己假设,然后再写其中一部分。牵涉
算法的部分大多都是二分/BFS。比如说让你求解一个迷宫,先做假设有一个辅助函数可
以把这个迷宫转化成一个图,然后在图上写个BFS就好。个人比较喜欢G这样的面试题。
L电面(一轮,两题):(1)leetcode #65,需要考虑哪些case要问面试官,问清楚了
发现没有原题那么复杂;(2)leetcode #53.
L onsite:
(1)coding:给两个链表判断是否最终merge,分链表是否有环,要求O(1)的空间。
leetcode #238
(2)coding:一堆点找距离某一点最近的k个。给个矩阵代表twitter的following关系
,求里面的名人(不follow任何人,任何人都follow他/她(要政治正确!)),注意
可能没有名人。
(3)design:同facebook,运气好,挂了以后恶补,但是还觉得答得不够好。
(4)behavior:扯淡,讲了讲我的research。
(5)tech talk:linkedin特有的,讲自己以前的project,对方会问到一些细节。
如果有耐心看到这,还请聊聊一个老生常谈的问题:关于h1b-opt的cap-gap期间change
emloyer的问题。前两天在mitbbs看到了成功的例子,他的解释也很符合我对uscis规
矩的理解,如果case approved了以后再通知原雇主离职即可。可是这两天询问了
linkedin的律师,给出的答复是不可以,即使是approve了也不行。
最后祝愿大家能开开心心,心想事成。
No comments:
Post a Comment