原文地址:http://www.cnblogs.com/chkkch/p/3401015.html (mark一下,打基础做准备!)
Accept的公司:Facebook, DeNA, SAP, Intel, ARM
Fail的公司:阿里巴巴,腾讯,百度,Google,微软,平安科技,豆瓣,雅虎,Amazon,NVIDIA,EMC,VMware,还有各种说不上名字的小公司
今年(确切的说是从去年暑假开始)的工作实在不好找。随着国内的经济形势下降,公司的招的人也随之下降得厉害。腾讯,阿里这些往年招生大户今年只招精英,阿里在上海似乎达到了个位数!而我的求职经历应该是从9月开始,而准备则是8月底就开始了。
Dream Offer
Facebook:说起面FB可能也是当初不经意地投了海外的HR邮箱,然后就安排了skype面试,再之后就是onsite面试。当初还真没想过去美国工作。每当被那些个公司reject的时候,我总是一咬牙,让他们成为我面最后的BOSS公司的垫脚石吧。
Skype的面试大约是10中旬,而得到HR的通知则是在9月底了。那时候我还在刷着九度的OJ,刷些不痛不痒的硕士机试题。心想再这么下去不行,铁定要挂了。于是制定了为期2周的突击算法复习。把LeetCode上的题都给刷完了,再把career cup上的FB的板块的题都给看了遍。这2周真算得上地狱式地做题,早上9:30或10:00醒来,吃饭,做题,12:00,午间新闻,做题,18:30,晚间新闻,做题,22:00左右休息。唯一的娱乐可能就是新闻了。那时候的专注可能这一生也就那么几次了,没有周末,每天都在赶进度上的各种题目,生怕完成不了。但最后竟然奇迹般地挺过来了。Skype的面试倒是不难,很快就把代码写完了(由于FB的保密协议就不能透露太多了)。一面的反馈也很正面,就等着11月底的onsite。
在等待终面的onsite期间,我又制定了更为长远的复习计划了,大约1个半月复习。复习中可能被各种突发事件打破,笔试,面试,实习等等都是最为头痛的。所以每次要去面试一些小公司的时候,心里都十分挣扎,去面吧,我的时间真的太宝贵了,不去吧,可能少了这次面试经验,说不定那题在以后的面试中出现了就亏了。总是在这种痛苦的挣扎中反复。于是,我把FB的算法复习题同步到Evernote,然后在公车站看,在地铁上看,在面试的公司看。几乎把每一点能够榨干的时间都用来复习算法了。那时候真的好累好累啊,有时候甚至都想快点结束吧,即使结果再坏也快点结束吧,都快要窒息了。最心灰意冷的可能就是,一次又一次地去笔试,面试,可到了最后又一次又一次地被无数的公司拒了,甚至连无名小公司都不要我,这种打击现在想来能挺过来,可能就是靠着一种信念,一种希望。
在一天30道算法题的训练下,我挺过来了,把LeetCode上的题重刷了一遍,把Career Cup上的Google, FB的板块的题都看完了,把何海涛的题重新复习了一遍。就是在这一遍又一遍不厌其烦地复习中,我一个人默默地走,终于走到了11月底,进入最后的onsite。
Onsite前一晚,没睡好,可能只有3,4小时睡着了,各种情感的交织,那是怎样的感受呢?是一种长期的压抑,一种长期的积累,希望有一天能够被人所承认。
一面的面试官,看上去人不错。直截了当,上来就是算法题,不浪费时间,我就喜欢这样的。第一题写完,被发现bug,然后继续改,改完还是有bug,再次改,发现还是有bug,不过面试官说差不多了,出了下题。第二题倒是一次AC了。最后聊天时面试官说了,可以用中文,发现还是学长,那真叫一个他乡遇故知的感觉,然后是为什么要从Google China跳到FB的谈话之类的。
二面的面试官,也是中国人,感觉是交大的(后来才知道清华的)。第一题秒杀。然后是第二题,以前从没见过,有点慌了,不过从最简单的方法入手,说了自己的想法,然后要我改进,用了hash的方法把复杂度降到O(n),似乎还希望我把空间也降下来,然后给了个提示,于是,灵光一闪找用了DP的方法解决,然后balabala一通,代码写完,没什么bug。总算过了二面……
最后一面也是很年轻的一位工程师,一看他的卫衣上的CMU就差点想叫了“Great University!”。之前谈了很多之前实习的事,心想不会是没coding了吧,艾,最后一句“let’s sovle a problem!”。梦想破灭。这题做的非常不好,最开始的时候想错了好几个解决方法,还一直在谈数据结构,而面试官一直说Data Structure is not important, please write the code.然后,在mac air上写code,键盘太软了,实在不习惯,当时才发现thinkpad的键盘真心好。或者前几面在纸上写都要好的多。最后写了个有重大bug的code,发现这下搞砸了,然后聊天的时候几乎也是草草收场了。
回家的路上真是心如死灰呀,说是一个星期后给结果。这一个星期真是异常的难熬。
最后听到结果的刹那,终于释然了,这几个月的奋斗,一切的一切都在此刻,值了!!!
有帮助的网站:
LeetCode:www.leetcode.com(我blog上几乎有每一题的解决代码)
Careercup:http://www.careercup.com/
何海涛:http://zhedahht.blog.163.com/
九度OJ:http://ac.jobdu.com/
这次面试的最大的感受就是:不要放弃希望和努力。当你快撑不下去的时候,对自己说在一天就好,只要撑过今天。就这样,你多撑过了一天,一个月,一年。然后,回过头,你发现原来竟可以撑那么久。而现在的你和当初也大不一样!
====================如果想看看那些惨痛的失败经历,请继续======================
第一站:微软。通过学校的内推名额进了一个秋令营活动,为期4天。满心欢喜地比同届的同学少了好几轮的笔试和面试。心想要是拿到了MS的offer那是真心好啊,虽然MS近几年不景气,但看看它在紫竹的办公环境,各种小零食,还有福利,能进去我也就不用再为今年的面试再操什么心了。
在经历了第一天的各种MS员工盛赞公司文化和技术的过场后就是第二天的面试了,早上是为期一小时的过场笔试,不是很难,两道代码题,一道和树有关,一道搜索。之后就是下午的面试了,心里那个紧张,甚至手都在发抖,而且不停地想去厕所。1面是一个看上去是senior manger,开场是一些项目,之后就是写code了,这道题想到最后感觉要用区间树做,我说了下,他让我写,只能承认好久不写区间树了,而且这代码也够长,写不出。感觉这印象就一下down到谷底了。之后又让我写了一个2Sum的问题,想了半天都没想出他想要的解,当时感觉脑子就乱成一团(现在看看,那真是经典到不能再经典的问题了,经过了之后几个月魔鬼式的code)。最终,我的一面以时间不够而草草收场,面试官走后,那种几乎窒息的心情就知道自己完蛋了。好吧,终于2面的面试官几乎在我快绝望的时候来了(迟到了45分钟以上)。然后来了道atoi。我满心欢喜地code,然后写满了一黑板,以为这下完美了,各种test case都想到了(之后几天回去看了linux源码,无地自容,如此优美和简单的实现被我搞得无比复杂)。然后balabala一通,心想过关了吧,然后坐等三面。然后呢?然后就没然后了……
这次的打击和教训对于我异常的深刻,由于是第1家面试的公司,又是十分迫切的心情,而且又准备不足。无论在心理,准备,经验上都处于完全的劣势。最后导致了完败。但也是由于这一次,让我深知自己算法和徒手写代码的能力已经退化得全无了,促使我开始了之后的魔鬼训练。
P.S.微软的面试流程一般有4~5面,最后一面是大BOSS,大BOSS会看到前面所有面试官的评价,并作出最后决定,一般有超过1位reject就悬了。同样的,第n面的面试官会看到前n-1面的面试官的评价,同时会问你评价上的弱点。真是非常非常变态的面试方式。
相对来说,Google和Facebook面试官都无法看到前面的面试官评价的,最后会有一个审核委员会决定你是否录用。感觉不像MS的一锤子买卖。
在经历了微软的reject后,就拉开了本年度最心酸,最紧张,最跌宕起伏的求职经历的序幕了。
被秒杀的公司:
阿里巴巴,同样是内推,同样是算法,一面的一道旋转排序数组找数,概率问题,直接把我秒杀。Fail。之后又是网上的初试笔试,题目都不想说了,政治题都有!最后,我们学校才2个最后拿到offer。
腾讯:笔试直接挂。哎,总之被拒的如风一般凄凉。
NVIDIA:依然是笔试,NVIDIA还办了9,10月两场。据打听,同学也没一个去面的。NVIDIA今年是怎么了?
豆瓣:一直用着豆瓣,对豆瓣的工程师文化和苹果文化也非常喜欢。怎奈,笔试就被拒了。
雅虎,Amazon,VMware也同样是跪倒在笔试。
神公司Google,失之交臂
好吧,这段经历我都不想再回忆了。去年的暑假前去面了实习生,席间面试官提示时很鄙夷地问道:知道动态规划吗?已经被划入不懂算法的行列。
而10月正式员工面,一面就被刷。一道题硬是卡住,没想出来面试官的最优解吧。只搞了个次优的。而且回去一讨论,竟然还是我面百度实习生的题目,我同学都记得,我却忘了。然后是各种懊悔……
只感觉,Google就像是在天上飘着,永远够不到。
我鄙视的面试:
百度,笔试直接挂了,之后又是内推才去的面试。一面先是问了各种C++的问题,答对答错各一半,然后又是一道编程题,最后一道“哥尼斯堡七桥问题”,这题真心忘了怎么解。然后又是二面的一道字符串的问题,最让人气愤的是我明明答对了,还把DP公式都写了,他非说我这是复杂度计算公式,我的时间复杂度不对,这题我回来之后又在LeetCode上做了一遍,AC所有数据。但这傻逼的面试官似乎自己都没理解题目还拿出来给我做,操!然后,他看我执意自己的解法。找了个台阶,那我们换到题吧。于是又写了到树的题。最后,又是一个45分钟的迟到,三面来了。问了些无关紧要的,就结束了。从我同学那了解到面得一般,在boardline吧,等消息。我也知道基本无望了。那时对于offer的渴求真是饥不择食啊,一个offer都没有,似乎是在10月底的时候了!而身边有些同学在那时愁的是,去百度呢,还是腾讯呢,又或者大众点评啊。
EMC:EMC的笔试之变态,试过才知道!感觉是毫无希望的,说是进了面试的话就铁定能录了。好吧,我就是那个进了面试,竟然没录的。一面和二面比较水,都是问些项目和个人发展的问题,三面来了到类似交换块数据的的编程题,给出数组A = A’A’’,怎样原地的高效交换A’和A’’。基本上把题意建模就是写出这个核心的代码。想了个比较绕的递归算法,但面试官硬说我的时间复杂度不是线性的,看来又是个都没把题理解透彻的家伙。哎,也是我当时不争气,没有把代码想清楚,回家实现了递归版的,确实是线性的。但编程之美上有个tricky的解决方法。当时,面试官就跟我说了这个解题办法。好吧,看来是不写出这个他是无法满意的。最后,你懂得!再次被鄙视。
那些无名的小公司:
平安科技,平安的一个技术IT部。说实话那时真是只为积累点笔试,面试经验才去的。最后连笔试都没过。
早安科技,刚开始就问我是哪里人?为什么来面试?对创业公司怎么看?那时真是一个火大呀,真想骂:他妈的,快点出题!老子才不想进你们公司那!
还有些海投的,通知面试,实在是没体力没时间去面了。
日本的公司:
DeNA,一个日本做游戏的公司,招聘的职位在东京。估计也有很多人没听过这公司了。日本公司的文化感觉就是等级森严,毫无活力吧。公司的面试就能窥见一斑。不过DeNA也算是学习美国的文化了,1~2轮技术面。日本公司似乎比较重视项目,面试问了很多项目的问题,还让我把代码给他们。后来一想,其实也看不出什么代码的意图,也就是看看风格和代码是否简洁。还有一面就是coding了,这个我喜欢。一道atoi,好嘛,这微软的仇在这里报了,在linux源码的基础上写了个能处理溢出的。面试官还问了这个溢出的处理,balabala一通,说是看过linux源码,说是源码有bug,然后改进之。那真叫一个爽啊。然后一道最近公共祖先,先沉思状,然后一个O(n^2),当然不满意啦,然后又来个链表的O(n)解法,最后一个递归的O(n)解法。完美收官,你懂的,面试官就喜欢这种逐步完善的思考方式,一下子来个终极解就没意思了。
之后嘛,日本公司的文化就来了。各种什么性格问题啊,人生问题啊,甚至还问你的家人,女朋友的各种隐私问题都来,这是我最讨厌的了。还有一轮是团队合作的环节,真是感觉毫无意义,根本没有那种轻松合作的氛围,不过只是各自展示自己比队友强的一场show。这场团队合作是之前层层筛选下来的5人。原以为会有3,4个留下的吧。没想到最后只剩2个了。
好吧,我挺到了最后。拿到了offer,然后是一周后到北京签约,但日本公司却还无耻地说去北京也是算面试,所以balabala。真是非常忍受不了这种表面的功夫。
最后,各种原因。我还是拒了DeNA,其中过程就不表了。不过这是我reject offer最爽的一次!
终于拿到Offer:
Intel
接到Intel的面试完打来的电话就知道有戏了,感觉终于是要触底反弹的前兆了。Intel的面试3轮,每轮45分钟。1,3轮是技术,中间的有个BOSS级的人物吧。算法什么的基本没问题,字符串处理,最小堆,还有些只说想法的算法。头疼的是C++的细节,线程,锁,调度等等,这些我全然没有复习,也不知道怎么复习。感觉国内的公司为了区分合格者专问偏门的语言细节,可能一辈子都不用的,以此来决定去留,这实在很让我讨厌。谁叫中国人多呢。
最后感觉面的还不错吧,至少没有重大失误。最后顺利拿到offer。
第二个Offer:
SAP
SAP的面试也算是内推吧。这面试真感觉不算正式,主要是二面竟然是当场从网上找题,出的还是我知道,然后又换了到算法导论上的。面试官自己都没理解题目还让我做。
一面则是两个人,一个问得问题就看出很牛了。各种C++的类的函数啊,一些不为人知的特性等等,然后黑板上写C代码,然后数据库,一个变形的链表的复制,SQL语句等等,什么都问,而我几乎只懂算法,其他的只能敷衍了事。
总体感觉一般吧,可给offer可不给的那种。
然后没想到,FB面试的那天下午HR打电话来了,那时我心情极糟都不想回答任何问题了,还问了我一大通项目,offer,英文交流,1个半小时。真是被搞死了。
最后顺利拿到了offer。