[never ever give up]大陆弱校低gpa拿到f/g offer的经验

avatar 58011
scv119
22075
60
1月4号收到google正式offer,加上12月底拿到的facebook offer,终于算是完成了这次工作申请。受W大嘱托,只能废话一下自己的申请经历。最后打算去facebook

背景:211本[gpa 2.3], mse 硕, 互联网创业两年。无acm/出国经验

我是国内本硕,本科在北京北五环外一所211大学,p大mse,毕业后创业两年后开始准备出国,所以把工作和学校一起申请。结果还算不错,google/facebook都拿到offer, amazon拿到onsite但不打算去了,应该会从了facebook吧。我的经历颇为丰富,从本科的gpa2.3,到软院读研,再到创业;这是一步步成长的过程,希望我的经历,经验和教训能够帮助到大家,对我自己也是一个阶段性总结。

就从本科说起吧:

03年来到北京,对学校只有一个感觉,就是彻底的失望----我们学校的计算机系不管是基础设施还是教育水平都是极差,宿舍没有网络,学校只有3个机房,甚至比不上我中学机房的机器数量;教学水平也好不到哪去,没有博士点,学历最高的老师是清华大学谭浩强(写c语言那本)的硕士学生。我想地里也有很多同学的本科环境和我类似吧。大学前两年我基本都在网吧度过的,不是敲代码,而是练枪法,练微操 :D。 在一个弱校里,没有老师的指引,我的同学很多都像我一样迷失了自己,当然毕业工作也肯定不会满意,当年跟我一起早出晚归混网吧的同学们,基本上都回老家做和计算机无关的事情去了。

在大学里浑浑噩噩混到大三,眼看魔兽水平达不到grubby和moon的水平,马上也面临很现实的问题,那就是要毕业了。我同学们大都打算回家找工作,我却做了一个惊人的决定,就是考top2学校的研究生。当时的我真是不知天高地厚,成绩一塌糊涂,很多成绩都是60分,但是确要吹牛。这可能是我骨子里的不服输的性格吧,本科学校这么操蛋,一定要去top2学校读研。考研是我第一次成长的过程,早上6点起床去图书馆排队自习,基本从0开始复习高数,复习专业课。当时的我还是极其不靠谱,不去上课,但是大半时间在玩游戏,看小说,小半时间在复习;但是这差不多是我真正找到对计算机的热爱和感觉的开始吧。这段时间里,我编译原理奇迹般的考了90分,但是一些操蛋的课还是可耻的60分,比如urlencoding都搞不懂的老师教的计算机网络就差点挂科。
少壮不努力,老大来填坑。 我本科阶段挖的坑太深,考研虽然通过了初试,复试毫无疑问地挂了。现在想起来,那时我确实什么都不懂,考研专业课能过是靠连蒙带猜再加一点运气。最后调剂到北大软院,成为了p大的二等公民。

很多人提起软院,都是嗤之以鼻。实际情况确实好不到哪去。实际上国内top的学校里,最厉害的是本科生,研究生次之,像软院这种想法子挣钱的,学生质量又差了很多。我记得很清楚有同学来实验室第一天就翻开thinking in java,开始写hello world... 失望归失望,但是我比本科的时候理智了很多,而且老师和学校还是给了我一个更高的起点。这段时间里我找到机会去中关村实习,认识了在google,baidu实习的同学,也第一次真正意识到自己和他们之间的差距。也正是这一阶段,我很多中学同学甚至小学同学都纷纷出国留学,所以我也跟风开始准备出国。

如果说之前我都在走霉运的话,那我从这个时候开始走好运了。虽然我在中科院实验室待了两年,发了几篇不痛不痒的paper,而且差不多拿到了加拿大学校的phd offer,但幸运的是,我没有出国。因为我在做research的时候就知道,我不是做research的料,我出国读phd不是出于对research的热爱,而是盲目跟风而已。事后也证明,我很多盲目出国的同学,或者在很痛苦的做research,或者国外待了一两年又回国找工作了。

我没有出国,是因为朋友邀请我加入一家创业公司。当时一个很脑残的念头冒了出来"5年以后phd毕业,和创业发大财,选哪个?" 对创业一无所知的我选择了后者。这是最天真的决定,也是最幸运的决定。天真因为,创业哪有那么简单?幸运是因为,正是创业的不简单,让我这两年里得到真正的锻炼,也找到了自己的目标和奋斗方向。

创业之苦,不便详述,但是我经历了一个公司从5-6个人,跌跌撞撞成长为一个60-70人的公司,拿到a轮融资,估值过亿(一般互联网公司融完a轮估值就过亿了)。最终由于种种原因,我离开了这个和我一起成长的公司。
这段创业结束以后,我对自己的目标也明确了,就是技术上提高自己,能成长成为创业公司的CTO。我之前的投资经理邀请我去他们公司帮忙,我也开始谋划自己的下一站,那就是去硅谷工作----我想硅谷对于程序员来说就是朝圣者的麦加吧:D。在我做这个决定的时候,已经是2012年6月份,这个时候我没有gre成绩,toefl已经过期,于是我做两手打算,一边准备英语申请学校,一边委托我的朋友帮我推荐工作。

认真准备的时间大概只有三个月,每天早上8:00-10:00,晚上10:00-3:00是准备英语和练coding的时间,白天还要在公司里带一个小team干活,每天只能睡5个小时。7天复习考完托福,一个月刷完要你命3000,做阅读36套,刷填空,从0开始做leetcode,当你把心中的梦想当作信仰的时候,所有需要做的只是跟随你的内心。3个月下来,托福106分,gre 156+165+3.0, 我也熬出了胃病,用拇指大的管子从喉咙伸到胃里做胃镜;还得了一次肺炎,在医院输液了7天。时间所迫,不建议大家把时间安排得这么紧张。。。

很快就迎来了丰收的季节,我10月底收到facebook phone intervew, 然后是google和amazon的phone interview. 虽然申请联系好了推荐人,开好成绩单,我却不打算继续申请,感觉即使今年不能拿到offer,再准备一年应该差不多。面试比想象的简单,等待结果的时间是漫长的,不过最终f/g还是都顺利拿到了offer。 我想2012年对我是人生最重要的一年吧,不管是准备的经历还是结果,对我都是一辈子受用的正能量。

不知道还能说点什么,我很愿意解答大家的问题
================================
Q&A: Full time面试时除了coding外,有问过Design类问题吗?想请教下Design类题目该怎么练习,有什么经验心得吗?
主要是coding, facebook和google面试风格还是不一样;facebook更注重基本代码能力,算法不会出现dp,至少我没遇到;但是对质量要求很高,如果被面试官抓到非typo的bug那就凶多吉少;相比而言,google会更难很更广,OS,网络相关也会涉及,而且量会更大,我遇到了DP,计算几何相关的问题,难度超不过算法导论。我一天google onsite完少说写了12道题,所以说代码量还是很大的:D

至于design问题,如果是fresh graduate 一般facebook就不会考,我是工作两年多的人,所以两边都问了和我工作相关的一些设计题,例如如何设计facebook某个功能。这个我也没把握,基本上我只能从small scale的设计往大说,说可能会遇到什么问题,需要怎么改进。amazon我只面了一轮,感觉风格和f/g差异比较大,问了很多jvm的细节,和test case写法,可能相对需要准备的东西会多一些。
  • 38
60条回复