注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号
x
今天刚刚考完CMU最后一门,应Warald的要求补上我找工作的帖子~~~
主要回忆一下我准备面试的过程,面各种公司的经历和机经。 . ----
暑假在湾区samsung mobile实习的时候,白天上班,晚上玩大菠萝或者去打羽毛球,周末和同学游山玩水,小日子过的有滋有味的。8月初结束实习回国,闲暇之余update自己的简历,开始看cracking coding interview,上手写了一下自己认为比较重要的几章,同时开始在网上投简历,问学长要refer。有些公司反应很快,那几天每天晚上都有phone screen,来真的一点的是google doc coding test,在国内就拿到一个start up的offer,算是好兆头!
------------------------ . check 1point3acres for more.
开学第二周回到学校,job fair那两天把比较感兴趣的公司都投了,有些公司会当场决定给不给on campus interview,这样的机会比较宝贵,他们通常会把你做过的项目问的比较细,并且提出一些问题。由于暑假的project还算做了点东西,自己有底气,job fair上考的算法题也不难,当时就拿到了twitter, bloomberg, cisco, kotagent, flury, ASTI, Ebay 的on campus interview. 老东家也要再把我面一次。
Twitter: Given a list of make file dependency, implement method to print out compile order.这个题答得不好,代码写了一半bloomberg那边的intview马上又要开始了,面试哥哥让我晚上写好代码回头发给他,晚上想了一个不是最优的算法,通过了自己的test case, 把style写的很好发了过去,没过几天收到拒信-_-!!!很奇葩的是到11月初twitter又让我去面试,我那个时候已经从了apple果断没鸟他们
Bloomberg: 如何用stack实现queue,瞬间做出来,然后又问我在一个整数数组中,找出一串sub array和最大,DP经典问题,cracking coding interview上有原题,可是那个哥们死活听不懂我的思路,磨叽了半天时间到了,感觉要跪了,果然第二天的第二轮on campus没有我。。。。
面完Bloomberg又冲到楼上面cisco,我擦又是bloomberg问的那个DP,原题有木有! 我当时觉得尼玛今天跟这个题干上了,不过这回表达的还算清晰,面试官又看我写过state machine,就让我写一个投币机的状态机,轻松搞定,又问我如何test ATM,限时3分钟说出所有方法。感觉面的不错。说一周之内有结果,结果12月初offer才发过来,等的花都谢了….
.--Kotagent: 面我的是一个很和蔼的白人小伙,聊了一下实习经历,还有学校的project,没有问算法题,说下来要给一个coding assignment,写完后决定给不给on site。后来那个算法题是让写一个spreed sheet,有兴趣的同学可以上wiki上搜一下,要求不高,就是graph的搜索,一个晚上写完拿到phone screen。
flury: 实习经历,还有实现一个随机数产生器,后来就没有音讯了….
ASTI: 拿着list问我底层C的概念,然后说等下一步通知,后来onsite因为candy来袭泡汤了,改为on campus,问了我如何实现hash map,如何处理collision,android activity, application, service的生命周期,如何设计一个广播,如何设计java object的getHashValue(),还是很轻松的,后来收到邮件说over qualify了…..
Ebay: 如果一个array的size超出了memory,如何sort。Quick sort选pivot时候如何避免worse case,这个我记得在《数据结构算法C语言版》里讲过,就是选3哥pivot,去中间值,避免去到minval或者Maxval。这一面面的不错,后来拿到下一轮面试
-------------------------
Job fair完了以后phone screen Apple,第一轮在电话里问我
然后我把这三个on site合成了2个,apple和storm8一起去加州面,Epic单独去madison面。Epic的on site非常阔气,第一天晚上Epic的工程师和recruiter陪着我们几个吃了晚饭,逛了一下madison市中心,madison真心小,感觉10分钟就能把downtown走一遍,第二天去面试,30分钟一轮,先去参观Epic的campus,却是很漂亮,然后看他们的产品,尼玛现在还在用VB做UI,数据库也用的什么没听说过的,感觉不是很好。中午有engineer带我们去吃饭,尼玛Epic里面怎么全都是白人,几乎看不到阿三和中国人在里面。吃饭的时候可以放开问各种问题,通行的一个白人哥哥直接就问你最不喜欢Epic的是什么。后来拿到他家的Offer,按madison的物价却是很高,但是做的东西不是很有技术含量,估计有加州offer的人应该都不会去。
第二周就去加州了,第一天面storm8,做mobile games的公司,
第二天收拾心情,开车来到infinity loop的apple总部,这个是此行的重头戏,recruiter下来后给我过了一遍面试流程,全程面下来估要8轮,如果表现不好中途就会结束,所以坚持的越久,希望越大。前4轮都是工程师2v1在面我,第一轮用C写一个删除链表倒数N个Node的算法,有一个corner case没有考虑到,但是被指出以后立马更正了。第二轮过了我的实习和project, 就我project如何设计visualization问了一个问题。第三轮没开始前两个哥哥先把我带去吃了一顿中午饭,我一直在问他们关于在apple工作的问题,吃完后回到办公室里开始第三面,问我safair的loading web page的time degrade了,然后让我提问,找出问题。我问网络是否正常,服务器端有没有问题,compiler是否一致等等,排除了外部问题后开始分解browser的各个模块,比如shoot http request, parse DOM tree, presenting to UI,最后打出了这个题。面试官很满意。第四面问了我遇到最难debug的问题,我就讲当年写底层C的一个project,各种pointer满天飞没把握搞死。这一面完后我的体力已经严重透支,想想从早上10点开始面到下午2点,一刻不停地在说话,非常累,所以面试前一天晚上一定要睡好。第五面是临组两个manager,显然没有提前准备什么,就让我讲实习的project,然后challenge各种design choices。第六个是我们组的manager,让我用C写一个字符串翻转,还问我pointer移位为什么+1就移动一个char,很基础的知识。还问我在之前面试中觉得答得最好的问题是什么,答得不好的问题是什么。第七面是manager的Manager,一进来问我how are you,我直接就跟他说so tired~~问了我如何测试一款apple的IOS app。完了以后跟我说第八个大manager在开会,所以今天就面到这里。我当时以为是我面挂的托词,心里挺凉的,没想到第二天recruiter跟我说昨天面的非常好,所有的feedback都是positive的,后来跟我schedule的manager的manager的manager的phone intervew。到这个级别一般就不会问算法题了,果然那天一个被加密的号码打了过来,大老板问我喜欢三星还是喜欢苹果,喜欢android开发还是IOS开发,自己的职业规划是什么,还问了我在纽约模联的议题是什么,我是如何游说别国代表的,问的很刁钻的,我答得满头是汗。最后让我提问,我就问如果在apple新员工入职的时候您有机会给大家一个演讲,你最想给这些年轻人的忠告是什么。后来有惊无险的拿到offer。
那一阵还在学校面的Lab126,面的前一天网上查了一下才知道是Amazon的子公司,在加州cupertion,做Kindle,貌似很牛逼的样子。on campus两面,直接决定要不要。第一面一个印度姐姐问我如何比较两个tree是否相同,很基础的recrusion,后来问呢那个忘了。感觉很好,要是第二面也是这样offer基本上就到手了。不过没想到第二面的印度大叔问的全都没有答出来,问,在多项式里,比如 3x + 4y + 5z = 10,3, 4, 5是系数,x, y, z是变量,现在给两个array,第一个是系数值,第二个是变量值,再给一个target值,问这两个数组内元素交换顺序后,能否产程这个target,多项式3x和4y之间可加也可减。这个题出了暴力方法外我一筹莫展,墨迹了半天后跟面试官说我不会,大叔慢悠悠的问我,你学过数据结构算法课吗?我汗,我说我学过,但是学了一半推了。他又问我你知道图论的算法吗?我说我不知道,但是让我在用图的思路想想这个题,又想了一会还是没想出来,于是彻底放弃。这是唯一一次我彻底没有思路的面试。结束后大悲。2周之后确神奇得拿到offer,补充一点Lab126的待遇比Amazon本部好,第一年全部加起来可以拿到15万。
Yelp在学校job fair的时候没有鸟我,后来给我了一个phone screen,就是传说中的recruiter拿着list问,第二面是Skype,用java实现hash map,处理各种collision,轻松拿下,拿到on site。
然后Google在匹村的on site,之前感觉DP的问题一直答得有点虚, . 1point3acres.com
后来Bloomberg又给我发了一个on site,那个时候已经拿到Apple的offer,就去纽约完了一圈,面试的时候让我写一个memcpy C函数,还问了实习时候MySql Database的设计方法,如何优化table使得搜索某个attribute避免O(N)时间。不知道为什么每次b公司的程序员都很不友好,而且尤其喜欢把一个很无聊的细节扣得很细。面试遇到这种场面人马上就没有情绪了。面试完赶紧闪人,跑到对面的中央公园全去咯! 一周之后收到拒信
然后又去面了一次Yelp,Yelp在三番市区里,我按他们的地址找到了一个连yelp标语都没有的大楼,进去后我问recruiter为什么找这么隐蔽的地方,他说他们要low key,避免很多店家缠着他们改搜索算法提高排名。
Ebay后来跟我联系的组是做Machine learning的,三姐发现我没有这个背景,就问了我如何判断linked list有循环,而且只能遍历一遍。我说用2个node,一个node走的快,一个走的慢,两个碰到一起的时候不就说明有loop么。三姐很满意,然后又问我如何算一个matrix里submatrix的和,cracking原题,轻松搞定。三姐说你很厉害,但是背景不合适。把我转给pricing team了。后来prciing team跟我联系,一共两面,第一面4轮,和engineer,第二面3轮,和director。Ebay第一面问了我java singlton,tree的遍历,还有java继承和接口的概念。第二面主要是behavior,还有一个题是8个一样形状的球,有一个比另外7个沉,之称2次找出最沉的那个。面到Ebay的时候感整个人对面试的把握已经有了,有种应对自如的感觉了,简单的题自然不用说。难的题也能静下心来相处思路,遇到瓶颈就先说一个不是最优的,然后问面试官要hint,然后改进。一周之后拿到offer.
--------------------------------- 最后一共拿到了7个offer, Apple, Samsung Mobile, Lab126, Ebay, Cisco, CareEvolution, Epic. 从了Apple. 本人没有神奇的天赋,哪些平时不怎么学,去面试一面一个中的牛牛,我十分膜拜。自己只能靠打不死的小强的精神坚持下来。希望我的经历能给广大普通人启发。 .
1. Cracking coding interview是本好书,不过不必要做好几遍,把关键的几章自己写一遍就好了,如果面了一段时间,发现自己那一块不好,可以重点突击 2. 面试以考代练的效果还是很好的 3. 口语很重要,从我的观察来看,身边口语好的人通常能拿到更过的offer 4. Google很慢,而且一催就挂,不要拖太晚面google,否则人家觉得你的deadline太早会把你拒掉。 5. 有人在做leetcode,我自己做了一下觉得挺难,一般公司考不了那么难得题 6. 如果很想要一个offer,寄得给recruiter写thank you letter和follow up letter。 我samsung return offer, Epic, Apple的offer都是follow up+ thank you very much出来的。 7. Apple很少给new grad发interview, 我的面试就是refer出来的 8. GPA貌似没人看,3.5以上绝对够用,没到3.5的同学也照样拿到好的offer,不要为了GPA选水课,几乎每个面试都会过简历,没有有技术含量的project会是硬伤
最后说说CMU ECE这一届找工作的情况吧。我认识的人都有了工作,平均下来每个人有2-3个offer, 我就报一下大家最后去的地方
Google 1 Apple 1 Amazon 3 Oracle 6 EA 1 Ebay 1 Salesforce 2 Linkedin 1 Intel 1 NetApp 1 Boston某公司 1 LA某公司 1 . 1point3acres
最后感谢Warald一直给我的鼓励和帮助,希望坛子越办越好。 .1point3acres
|