Saturday, May 16, 2015

http://www.mitbbs.com/article_t/JobHunting/32970511.html

frontend 
1. 啥是 semantic html5 
2. accessibility
3. page performance : cache, javascript code 位置等, 那个 Image Sprites 一
定要提到。 
4. css box modules  
5. javascript event modules: bubble, propagation  出现录很高
6. javascript closure , 出现录很高,会细问为啥用 closure , 写一段让你读。
7. JavaScript Object Prototypes
8. 如何测试IE browser 
9. jQuery, backbone, jingo 
10. var $= null;  为啥不好 ,如果用jQuery时 
11. javascript : split("").reserve.join("");

backend 
1. sort array with limited memory 

中年人了,其实前端后端都做过,server setup 也做过, mysql  也做过, 但是就是
不都精专。 结果resume  扔出去, 找我的都是front end 的,一个backend。 我觉得
你们小朋友以后一定要精专一个方面。 目前我面试有,但没offer。 反正面筋发出来
有兴趣的看看, 也可以建议我找哪个方像比较好。 大家努力, 谢谢。

http://www.mitbbs.com/article_t/JobHunting/32969897.html

上午终于收到BB家电话,给了offer,非cs专业低配标准。103k base+ 10k bonus+ 10k 
relocation. 手上还有Epic 115k base+10kmrelocation 的offer.不过应该还是想去
bloomberg吧。非科班,更没法跟牛人比,自己知足了。废话不说,上onsite 面经。

Bloomberg面筋

第一轮tech:就是怎么判断一个点在多边形里,如果多边形不是凸的怎么办?第二题:
把一个list of string里等于target string的都删除掉,一开始strings 是存在
vector里,回来follow-up是如果是一般container存strings,如何处理?加入
assignment 比较costly;第三题:实现++I, I++.解释区别还有哪一个efficient,为什
么?

第二轮:第一题是关于马拉松的...就是沿途不同地方有sensor 可知道谁跑过该sensor
. 主要query 是查现在runners的排名,问如何设计该系统,还问复杂度. 第二题:还
有就是有一堆string,可包含任意字符,让判定string 中左右双括号是不是balanced?
我先从单括号入手,然后再做一些改变。

第三轮:问一些跟C++的projects,还有问Huffman coding做text compression的原理,
画图,解释原理。还问一个跟data stream 相关的设计。假设data格式(timestamp, 
userid, value),但是数据是无序的,一个timestamp可能有不同数据,让设计实现主要
两个功能,第一是给time stamp, userid查询对应的value,另外一个功能是给定两个
time stamp,把两time stamp之间的所有data 都输出。

第四轮:HR,问为什么Bloomberg,为什么software engineer,还问了一些简历上的东西

http://www.mitbbs.com/article_t/JobHunting/32969531.html

版上把L家的国人面试官黑的太狠。说说我1年半前L家的面试经历。

两次店面,第二次店面是个国人大哥,一开始闲聊了30分中喜欢什么project,后30分
钟做一个非常简单的题。依稀记得是实现memcopy,当时一直做leetcode,突然让写
memcopy的实现,一下子也没有思路。国人大哥基本一路提示,教我如何正确写代码
。。。 但是店面结束,心想一定挂了,结果第二天,recruiter发邮件说要onsite,心
里也是很感谢国人大哥的。


L家Onsite。面的infrastructure组,一共面了7轮(不算午饭)。从早上10点到晚上6点
半。。。为啥会是到6点半呢?因为最后一轮,实在太累了,好心的面试官给了1个半小
时的时间。。。。

说说On-Site的过程,
1面,和infrasture的director talk。基本属于闲聊,主要聊project,director会问
问project的细节。
2面,国人大哥+美国小哥,L家的面试都是两个人,一个人讲话,一个人做记录,这轮
是美国小哥讲话,国人大哥做笔记,美国小哥,第一题挺容易的,第二题作为第一题的
展开就难了,考得是data center上面如何allocate data让mapreduce的job跑得更快。
。。作为new grad的我,毫无经验啊。。。不知道怎么答,美国小哥给的提示也不太懂
,国人大哥说话了,可是还是没有听懂。。国人大哥不断提示,我一直无法领会,最后
,貌似美国小哥给出了答案。当时理解了,现在也忘记了。。。。

做完这题,午饭时间到了,L家的食堂没有想象中的好处。
吃完午饭,

3面,阿三组合上场了(一男+一女)。阿三厉害啊,阿三女做笔记,阿三男说话,一开
始问一个非常简单的问题,我直接给出了最优解,阿三女说:你一定做过吧。我说这题
算法课上有学过。接着阿三男,又出了一道8皇后问题,问我是否见过,我说高中计算
机课程学过。阿三男接着说,我们不是靠你如何写代码解8皇后问题。而是让你设计一
个游戏网页。我心想这和8皇后有啥关系啊。。。。然后解开是和阿三乱扯如何做游戏
网页。。。。最后,不知是否在这轮被黑了。我完全不知道如何做游戏网页啊。。。。

4面,国人组合商场啦(一男+一女)。和阿三组合简直是天壤之别啊,国人小哥说话,
国人小妹做笔记,考一道算法题。说实话没看过。 一开始给的N^2解,国人小哥说好,
有了一个solution,但是希望我能写出O(N)解。说实话,没有思路,一开始说了说思
路,国人小哥说不对,再想想,国人小哥这是不断说话,说实话,国人小哥的提示没怎
么听懂。这时,国人小妹见时间不多,开始说话了。直接给了我一个简单的例子,我一
下理解啦,立马说出了最优解。然后给出代码,然后,国人小哥,小妹一边看我的代码
,一边帮我找bugs。当时,真是感动啊。。。最后,国人小妹说我面的不错。。。

5面,一个ABC+美国小哥,这个ABC是个manager,美国小哥说话,ABC做笔记,问的问题
是:如何对data center每个machine的healthy status 做monitoring。说实话,作为
new grad的我,听到这个问题又傻了。。。当时,说了一通。去他家面试前还看了看
kafka,storm之类的。。但是ABC小哥问的深入啊,我说什么,他都给我找反例。。。
我又是半桶水,他一说反例我就傻了。。。 最后,估计也是跪了。。。

6面,美国大叔,L家是有题库的哦,美国大哥上来就说,你怎么这么多轮啊。 我问题
题目被问过了,美国小哥也不知道问啥,在电脑面前看了看题库,招了一道java 
library design题,design一个java library,可以insert task,每个task有个start
time,task要在start time开始run,library要支持multi threading。 我又傻了,
我和美国大哥说,我不会java啊。我都是写C/C++的。美国大哥说:那你就说思路吧。
。。我就开始瞎说。。

7面,国人小哥+美国大叔,他们看我面到这么晚说,要是累了,就休息一下,我当时说
:没事,接着面。 国人小哥出题,美国大叔做笔记。国人小哥出的题是interval 
overlapping 相关的,我给的解法和他的想的不一样。国人小哥一开始没看到我的解法
,我解释了半天小哥才理解了。然后大叔开始出第二题,也是和interval有关,不过复
杂一些,最后脑袋不清楚,貌似code有bug。。。


最后,recruiter说:design题做得不好,coding和algorithm还不错。

看到版上这么多黑L家的,决定分享面经,L家的国人面试官大多还是很好的。

http://www.mitbbs.com/article_t/JobHunting/32970781.html

骑驴找马,面了大中小三家, 感觉现在华人找工作真不容易,以后只会更难.如果你是大
牛,恭喜你,哪里都欢迎你.问题是很多人都是普通的.如果是一般老中老印都能干的,绝
大部分都会给A3的亲朋好友,你无法想象他们的家族圈子有多大,而且给家族的人找工作
是他们义不容辞的责任, 和中国人之间的严格把关不好比.
还有是越低端的engineer问的越具体,越难,牛人一般不会问你个TREE算法,然后和你扣
边际条件.一些级别很高的人问的是自己工作上遇到的.open-ended难题,也想看看你是
怎么想的.
FAIL了的同学不要气馁,不要丧失信心.适合你的公司是在等你,也许比剧了你的公司更
好.

面经:
1) distributed system (someone asked for distributed systems b4)
If thousand of machines, each has billions of number, return the median
A: http://www.quora.com/Distributed-Algorithms/What-is-the-distributed-algorithm-to-determine-the-median-of-arrays-of-integers-located-on-different-computers

2) Convert Binary Tree to a data-struct then convert back.
Traditional answer is to convert to pre-order and in-order, then convert 
back. but I think the following way are also fine, any ideas?
: convert to only pre-orders, fill -1 for empty leaf, to make it every node
has two children, when converting back, adding empty node if value is -1 (
assuming all number are positive)

3) Implementing a spinlock.

4) Intrusion proof login function 保证任何输入时候算法时间一样.

还有其他标准LC题:
pathsum
3sum
LRU
median for 2 sorted array

Sunday, May 10, 2015

http://www.mitbbs.com/article_t/JobHunting/32964573.html

版上看了些面经,至少把airbnb的电话面试题都给看到了,虽然最后把airbnb的onsite
推掉了,但电面直接碰上原题的感觉真的好tmd有成就感。最后回馈一下版面。

整体感觉,国人面试官真的都非常的nice,老外大部分也都很nice,甚至碰到的三哥三
妹都很nice,没有感觉恶的。个人感觉面试的时候还是要多说话,不要让面试官说话,
更加不要让面试冷场,这个还是挺重要的,否则面试官一尴尬,直接就觉得没有
chemistry,反馈不可能很好。

我自己由于刷题刷得太烂,根本不想刷,看着就烦,只是把ccr和leetcode答案给看了
几遍,一遍都没写过,别的网站看都没看。所以可能不适用刷题刷的nb的同志们。基本
每家公司每道题都有时间复杂度分析,建议注意。

airbnb电面两轮,一个是house robber,一个是csv parser。

fb电面也是两轮,一个maximum continuous sum for an array, career cup面经原题
,一个是简单的trie,还有一个是n个元素中求包含k个元素的组合,dfs做,follow up
提高performance,被国人大哥挂掉了(不怪他,怪自己刷题太烂了)

狗家电面:求二叉树的最小深度,国人大哥非常nice!

Netflix onsite:
打印二叉树的每一个节点的深度
实现一个线程安全的读写锁
设计一个咖啡机
还有几道题忘记了

不知道是不是我的特殊情况,狗家题基本没有刷题的题,也没有什么偏题,挺好的,刷
题基本没用。大多面试官都很nice,全程和你聊天,他们面试属于打发时间(20% free
time,所以他们很放松),题都不难,但我个人感觉每个面试官都特别注意和你的交
流,经常还会开个玩笑啥的,说话一定要大声点,个人感觉自己神侃的还不错,每个面
试都是在大笑中结束的。anyway,给我offer我也不会去了,祝好运。狗家的食堂真tmd
好啊。

all question with time complexity questions

1. implement one method register_job(func, args, clocktick) in C (严肃的美
国小哥)
it puts the method func into a job queue, after clocktick time, run this 
function with parameter args and remove it from the queue.
Provided API:
current_time() returns the system time
timerfunc() is a hook called by the os for each clocktick.(This function 
should be implemented by yourself)

No usage of existing data structure
follow up: register_job and timerfunc both operate on the queue, thread 
safety issue.

2. Given time range: (Nice的美国小哥)
class Range
{
    int start;
    int end;
}
Implement a library, provide three methods, add range, remove range, inside 
range;
Range *addrange(int s, int e)
void removerange(Range *range)
bool insiderange(int time);

add or remove can have some freedom on performance, the insiderange method 
must be as fast as possible

3. Given a dict vector<string> dict contains all the words (nice的东欧小哥
,听口音)
when user types words on a phone, provide the user with suggestion. 
vector<string suggestion(string input, vector<string> dict)
first don't consider performance, questions about how to decide which words 
will be shown to user(ranking by popularity maybe)

then performance consideration, two methods. 
class trie
{}
void preprocess(dict)
vector<string> suggestion(string input, trie) //just return all suggestions.

implement everything

4. expression calculation (nice的国人大哥)
int calc(char *input)

3-->3
( + 3 3 )-->6
( * 3 2 ( + 1 2 ) 55 )-->3*2*(1+2)*55

only support + and *, each number and operator separated by space. 国人大哥 
is a c guy, doesn't know c++ very much, but I did it in c++ anyway.

5.utf-8 validation (nice的国人大哥)
in utf-8, for each byte,
starts with 0 means the character only contains one byte
0XXXXXXX
starts with 110 means the character contains two bytes with following
110xxxxx 10xxxxxx
starts with 1110 means the character contains three bytes with following
1110xxxx 10xxxxxx 10xxxxxx
starts with 11110 means the character contains four bytes with following
11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
......
continue until 7 leading 1s

implement one method
bool judge(string input) to check whether the input is a valid utf-8 string

6. implement a malloc with alignment in c (nice的国人大哥)
void * amalloc(int size, int alignment)

7. design question(三哥)
design a web server system, how you will do it if traffic keeps doubling. (
the webserver and the database system)

Monday, May 4, 2015

http://www.mitbbs.com/article_t/JobHunting/32960525.html

发个新鲜面经,顺便求bless

1. 一块矩形面板上有黑点, 白点, 红点
       给一个起点,找出和这个点颜色相同,且相连的点组。 求这个点组的周长
    给一个字典,一个字符串, 找出可以由这个字串合法转成的最长单词。 转换操作
时删除一个或多个字符

2. 设计贪吃蛇
    怎么定义蛇, 怎么移动, 怎么吃, 怎么判断时候活着, 怎么定义游戏版

3. 设计售票系统, 要求
    1. 每次返回5张可选最为
    2. 保证不会给两个不同user返回同一个可选座位
    3. 用户2分钟之内,没有购买,重新开始

    moving average 
    要求, 内部用一个 固定大小数组

4. letter combination of phone number. 
    我写了递归的, 要求继续写迭代版本的。 这个在它提示下,才做出来了, 很
tricky , 没练过

5. 一个circle 列表。Circle 有x,y,r
  1  ------------------------

0    ----------------------------
  判断是否有一条路径可以从 负无穷到正无穷。
   如果一个活多个circle完全block了通道,就没有路径


除了  letter combination of phone number. 的iterative版本 答的不好,其他的都
答的不错
求bless

Sunday, May 3, 2015

http://www.mitbbs.com/article_t/JobHunting/32956215.html

电话1;
How many distinct path to go from left upper corner to bottom right corner 
in a matrix. input(row, col) --原题在glassdoor上都能找到的。
follow up 存这个中间结果矩阵啥的浪费空间,是否可以压缩一下。
How to save the internal results . -- In hashmap
How to implement the hash map  key/values what the structure, how to 
override hashcode & equals 
deep structure of hashmap
Build the own equals method and talk about hashcode
What happened if there using default hashcode and equals method
equals 结构:
public boolean equals(Object o) {
    if(o instance of ***) {
}
if( this. *** )
}

电话2:

给了一道题要check generic type
    因为type 不对,所以应该输出 compile error
给出top 10 个linux command  --Unix/Linux  是其中一个要求
public double power(double n, int p) 
直接上手lgn,写完了没事干了。面试官说,一般大家都是先用循环做的...


面试

1 Design tiny URL  then talk about how to design distributed web app system
2. SQL and database table questions. 设计个图书馆需要的表格,写一些sql找到某
个作者的所有书之类的。
3. Given a String, mark all words/sign/digis as W, S and D print out the 
words and Type
4. Using linkedList to achieve a stack function.
5. How to achieve a Singleton with read/write access control
6. Find out similar between two set -- set.retainAll
7. Code insert into heap 

每轮两个人,在一张很小的纸上写code。面试还是很专业的,中间有个国人大哥很帮忙
,就是自己刚开始面试,还是很挫的。。。
经验是简历上面的每个算法啥的都会问,会问你给我介绍下XXX, 写个公式啥的。我自
己对之前的东西准备的不充分,也该挂... 每轮1小时两个人问,茫茫多问题,写的很
慌。
他家的电面题库小,在glassdoor上面都有。看看就好了。就是简历比较难过关。投了
好多,就一个组给了面试。