EE转CS求职之路

avatar 40802
asdfg
18211
37
Remark:如果贴链接到站外,请不要在引言里提到关于我背景的具体细节(也就是不希望小伙伴们刷着人人突然看到一条说咦这不是那谁吗快去围观!)就这一个要求谢谢啦!

本科研究生都是EE,而且做的是information theory的research,读研两年来主要的工作就是推式子证bound,写过唯一的代码是拿Matlab画了个折线图…
今年年初开始,觉得自己的能力实在是不足以在这个领域做出什么有意义的东西,自己的性格也不太适合做这种看不到阶段性成果的工作,加之上一个冬天玉米地的严寒实在让我心生畏惧,于是说时迟那时快,跟老板摊牌quit,商量好下半年做TA拿MS毕业,然后就开始了找工之旅。(老板真的是好人,主动提出让我当他的TA解决这半年的funding,并且说如果需要推荐他可以帮忙,而且最后的找工结果表明他真的给了至少是positive的推荐。)

决定找工后要做的第一件事就是强化简历。前边也提到了自己几乎没有什么编程经验,所以做了如下几件事:
1) 既然自己科研和课程里都有不少数学的东西,编程比起CS科班来明显弱很多,那就不试图在求职中走以卵击石的纯码路线,而是定位为“对theory有了一些研究和了解后,觉得自己还是更希望把学到的东西应用于实际make more impact,加之一直对编程也很有兴趣,所以希望找到一份能够结合理论和应用的工作”。这个定位有几点好处:
a) 强调优势(数学背景,解决问题能力),合理化劣势(编程经验少,而且本来也不想做纯CS)
b) 体现自己对career path有一定想法和规划,而且这种“和理论比起来觉得工业界更有意思”的论调确实很对公司人的胃口
c) 用来应对所有“为啥你研究生做的东西这么理论现在来找码农工作”的问题(这个对于转专业的人几乎在每一场面试都会被问到)
d) 我确实就是想做这样的工作啊 ^_^
2) 把自己已有的项目尽可能包装得和编程相关,比如理论推导后写了个程序simulate,在简历里分两条写成 a) 设计了XXX算法 b) 用YYY语言实现,对多大scale的数据进行仿真
3) 暑假里选了一门Distributed System的课,做了一个分布式文件系统+MapReduce的project写到简历上,这样简历一下子就显得CS了很多,被问到“最喜欢的项目”的问题就有得聊了~不然我难道要和公司的engineer们聊统计分布编码理论信息论极限么……

当然,如果在找全职前能找到一个实习就再好不过了,只可惜我动手太晚来不及了……小伙伴们不要学我……

然后就是刷题了,这个实在没什么可多讲,就是看了一遍CC150,刷了大约两遍LeetCode。这件事说起来简单,重要的是认真去做,不要骗自己,把每道题做到可以清楚地讲出来思路和每一步为什么要这么写、各种优化和改条件的follow up都问不倒,才算是真的刷好了。这件事我也不是一开始就理解的,面几次试以赛代练,面完后总结经验教训,然后你就知道刷到什么程度才是OK的了。

里里外外大约面了十几家公司,结果如下:

Offer(时间顺序):
Amazon (HR 联系), Expedia (career fair投), Oracle (HR 联系), Facebook(内推,应该就从这个了吧 :))

电面/on campus后被拒:
Google: 求职第一面,dream company之一诱惑太大,七月份题都没刷好,HR联系一下就欣喜若狂“面面面”,然后就炮灰了,题很简单,design a deck of cards + shuffle
Tower Research Capital: career fair投到的,一家高频交易公司,on campus连续面了两场,跪在各种C++细节问题上,数学题做得很high...
Qumulo: career fair投到的小公司,on campus题做得很struggling,而且后来发现面试官的要求是错的……
Wolfram: career fair投到,感觉是HR搞错了,找了个写前端的组来面我,我和面试官都很痛苦,然后就没有然后了
SnapChat: 跟gg一样,八月HR一联系就冲昏头答应面,结果没准备好跪了(不过就算能过电面,onsite以我的水平也搞不定啦)
Bloomberg: career fair投到,on campus第一轮过了,第二轮问的LRU,那天脑子晕乎加上对纽约本身兴趣不大无心恋战写得乱七八糟,挂掉
Dropbox: career fair投到,周五下午投完晚上通知周六面试,周六面完通知周日面第二轮,题基本上做出来了,有点小bug,不过感觉挂的原因应该还是bar高根本没看上我……
Twitter: 内推,电面聊了一半时间简历,最后十分钟做了一道clone graph,然后收到了拒信,感觉被拒原因和上边一样,就是bar高没看上……

直接拒简历:
LinkedIn: 内推后拒的,据猜测是三月份面实习,题都没刷过面得太烂进了小黑屋(所以童鞋们面试还是要慎重,综上我因为自己没准备好就急着面搞砸了三家……)

自己decline掉面试:
Yelp, Two Sigma (都是career fair拿到)

综上所述,我拿到面试的渠道 career fair > 被HR套磁 > 内推,似乎就没网投过……

总结一下几个offer吧:

Amazon:
这个实在没有总结,看过版上那个Video高楼的就知道是怎么回事了……我是那个楼主……
莫名其妙被HR联系,做完OA莫名其妙收到Video,然后莫名其妙收到offer……
最大的收获是为版上贡献了一个无比欢乐的沾喜气高楼 XD

Oracle:
这个也没有太多好总结的,也是被HR主动联系的,验证了如下两点:
1) 他家确实是学校+GPA控
2)【基本上】拿到他家onsite的都能拿到offer,加括号是因为我听说过一个反例

他家的面试是把你的简历发给各组,然后把所有对你感兴趣的组的信息发给你,你从中选择自己想要和哪些组聊。聊完后你再发一个对各组的ranking给他们,排序最高的给你offer的组就是最终的offer组。
和每个组chat的过程真的几乎没什么可准备,最多是写几行简单的代码,或者问一些基础知识,还有一个组问了我一道brain teaser...
唯一的challenge就是一天从早聊到晚快要虚脱,到最后一个组聊得嗓子都哑了,心里苦苦哀求你让我白板写道算法题好不好好不好……

Expedia:
对我来说很重要的一个offer,因为这是第一个我从投简历到onsite每步都亲手做了一遍的offer...
在学校的career fair上投的简历,当时和engineer聊得很high,拿到了on campus interview,然后拿到了onsite.

这次经历给我的一个主要教育就是,让我意识到自己之前career fair的队都白排了 >_< Career fair不仅仅是换个地方排队交简历,重要的是你要在很短的几分钟谈话中impress对方,我不算个中高手,只分享几个自己觉得有用的小窍门吧:
1) 提前做好功课,然后把自己的背景往对方的需求上靠,类似“我看到你们在做AAA我对此很感兴趣你看我简历上的BBB项目和你们是个good match”。
2) 一个没话说时的小窍门是问对方问题,比如“你们现在在做什么呢”,然后对方的回答里一旦出现了自己可以发挥的关键词,就自然地接下话来:“是啊我也做过一个类似的项目呢,我觉得我这里用的CCC和DDD方法和你这个思路是相通的”……
3) 公司非常看重你是不是知道自己想做什么,所以就算你心里想的是“我就是想赚钱买包包啊随便哪个组给我个offer就好”,也一定要表现出你对自己领域的exclusive的热情。比如另一个公司的engineer在我说完自己对什么有兴趣后,就明确跟我说,it's very good to know what you want to do. 当然如果你担心你说完了我就是喜欢data analytical结果人家是想招web developer,可以在说完兴趣后补充一句“当然啦,我其实对用coding解决各种问题都很有兴趣,我也很喜欢学习新东西新工具”~

他家面试题很简单,差不多就是3 sum难度,也没有变形……

Facebook:
真正上心准备了的一家,因为拿到onsite时这已经是FLGT中我硕果仅存的一个了……
估计大家对他家都会比较感兴趣,所以说得详细点。不写原题了,一是NDA,二是没有任何新题。
本来本帖只想写几个tips,结果一写写了这么多,面经放在下一层……从面经中也可看出我就是这样一个自high的话唠……
  • 34
37条回复