从谷歌面试翻车到实习offer收割的心路历程

首先声明,这只是个人播客随感,其中没法避免有一些我的色彩的看法,请不要在乎,我尊敬任何的互联网公司,尊敬研究生期间的老师同窗,我只但愿给在求学路上的CS同窗一些启发。前端

先介绍一下背景,我是ACM铜牌退役狗,在某985读研,今年找暑期实习。过去两年一直准备去谷歌或者其余好的IT外企实习,坚持刷了两年CF,kickstart, codejam,今年CF升到紫名了(这个月没练,实力又降低了hhh)和leetcode全球排名前300。可是今年遇到了谷歌翻车以及面试碰壁等各类状况。
git

从2月初到4月中旬,已经两个月,终于实习面试即未来到尾声。今天微信HR面结束,而我暑期实习的面试除了一个外企金融公司已经所有面完,有些offer已经发了下来,有些还在路上。虽然从结果上看暂时只有谷歌翻车了,可是整个3月和4月初的煎熬,伴随今年疫情的蝴蝶效用,2020必将是一个无比魔幻的一年,让我一辈子难忘。github

2.1 - 3.5 准备谷歌面试到谷歌翻车

2月份大多数时间在干两件事,一个是组里的大项目,另外一个就是准备谷歌的一面。因为以前参加过a day with google的活动,而且1月份我还去google上海参加了谷歌机器学习冬令营,凭着这些经历还有hs学长去年成功转正的经验,我也但愿可以顺利进入谷歌实习,刷了大约一个月的CF+leetcode,在3.5迎来了我人生第一次谷歌面试。面试官上来给了这么一道题。面试

给你一个数组errors, 和一个时间点 time(0 <=time < errors.siz()), 和interval,以及threshold。
问errors数组中是否存在一个连续的区间,这个区间的长度为interval,且包含time位置,且这个区间的最小值大于等于threshold

对此我提出了滑动窗口的作法,用multiset动态维护窗口的最小值,复杂度o(nlogn)。谁知面试官表示不知道set,multiset,更不懂滑动窗口。以后我想到了能够直接维护窗口大于threhold的数的解法,复杂度O(n)。让人崩溃是我解释20分钟本身的想法,面试官才勉强弄懂。以后的follow up题,面试官一开始讲漏了一个重要条件,让个人解法偏向了复杂的线段树数据结构,以后发现的时候个人心态已经崩了,这也致使本身的解法不是最优解(我提出的是nlognlogn,正解估计是n)。算法

在复盘的时候,我发现这题有一个更简单的作法,直接从time位置往左往右统计大于threshold的个数,复杂度也是O(n)。若是我当时一开始想的就是这个解法,或者面试官提示我他的想法,估计结果也不是如今这个样子。可是这不是面试官低能的理由吧,我有理由相信,大多数竞赛出身的人都知道set,multiset,滑动窗口,刷过100道以上leetcode的人,应该也知道这些。至少说明面试官不怎么刷题,也不会STL(甚至C++也不会?),这种人怎么进谷歌的?面试官出题的时候是否只准备了一种解法?面试结束以后面试官对于一开始不理解个人算法表达了歉意,但也表示这会影响个人面试评级。数据库

大约两周后HR跟我反馈一面结果不够理想(估计learning hire),考虑今年的严峻形势可能没有二面。这件事对我打击的太大了,虽然我ACM退役以后坚持刷题不彻底是为了进谷歌,可是这两年坚持CF,kickstart, codejam,我认为我是有这份实力的。固然以后很是戏剧的一件事是谷歌由于疫情直接取消了中国区的实习招聘,无人生还 = =。这世界是真的魔幻,我怎能想到我是这样挂掉了谷歌,并且不只我挂了,全部人都去不了。编程

3.6-3.31 海投简历,遭遇打击

以前说谷歌一面翻车,我原本准备谷歌若是能过,其余公司就不投或者只投几家了。可是本身仍是太菜,没有作到未雨绸缪,这个未雨绸缪在于两点,一是没算到个人谷歌会翻车,二是没算到今年外企基本翻车了。我以前的策略是抓刷题,只要会作题,就算谷歌挂了,还能去微软,hulu,intel这些。谁知道最后只有微软,hotstar还招实习生。paypal,google,hulu,intel,airbnb由于各类缘由统统阵亡,有些是自己今年就干脆不招实习生了,好比谷歌hulu,还有就是hc大幅减小,还没轮到我面就已经招满了,好比paypal。外企原本hc就少的可怜,这么一搞,有些公司可能只有个位数。我终于认识到,外企面试真的很看运气,甚至能安排到面试都是一种幸运。因此我只能把重心放回国内企业,还有少数几个外企,开启海投模式。我投的仍是挺杂的,国内的BAT,字节,ponyai, 国外的微软,hotstar,morgan,optiver。并且岗位上来看我C++开发,算法,大数据都有尝试,这不得不说到研究生坑爹的选了数据可视化方向,结果进来发现你们都在写前端。我在组里作的和大数据有些相关,主要是数据可视化所须要用的一些算法的编写和研究,好比交互式数据查询,图布局,降维等等。可是这些经历去投算法,你没有什么ML,DL的经验,去投后台开发,你没有分布式,网络编程的经验,面大数据相关,勉强还算match,但你也没接触过那些大数据框架。因此就很是僵硬,基本去哪面都是靠着本身四做paper,冬令营经历,ACM经从来硬面,这也得看面试官的面子了。在阿里提早批面了后台开发,阿里云API开发,搜索推荐中台开发等部门,我才意识到本身不适合面纯业务的开发,更适合和大数据相关的岗位或者算法的岗位。数组

这段时间有两件事对我打击仍是蛮大的,首先是阿里的搜索推荐三面挂掉,仍是莫名其妙挂掉的,面试官让我写不拷贝内存的链表快排(巨难写,读者能够本身尝试,不能用swap),以后又问了些跟个人方向八杆子打不着的问题,更让人气愤的是面完以后不告诉结果,在阿里的系统开放以前把我当备胎,仍是系统开放以后次日我连发两次邮件才告诉我面试挂了。第二个事是微信一面就挂了,微信这边简直是奇葩中的奇葩,3月初我刚填完简历,我准备让xj学长内推,结果简历直接被微信后台的一个面试官拿走了,我跟他说我想去xj学长那个部门,结果他也没有直接放我走,坚持面我还面的巨难无比。挂掉我以后我犹豫了下,准备想先去微信的ML岗位试试水(由于字节当时面算法面的还行),结果被数据分析的捞走了,我拒了数据分析的人以后,又被PCG的算法岗位捞走,并且PCG那边锁了我三周没有给我面试,气的排到我以后,我直接拒了面试。这件事说明腾讯那边必定要好好利用HR的资源,让她帮你解锁简历,提醒面试官面试。bash

整体来讲这段时间的压力是愈来愈大,我原本以为就算谷歌挂了,好好努力看基础知识,3月结束前拿个offer应该是问题不大的。谁知道阿里搜索三面挂掉,腾讯那边由于各类奇葩的缘由基本就没面,微软面完以后迟迟没有结果,就算是面的比较好的字节,也在面完以后收到告终果清明节以后才会出的通知。看到同窗都至少拿了一个offer,我内心很是没底。微信

4.1-如今 经历考验,offer收割

我以前认为3月份至少会有一个offer,从结果来看当时已经面完了字节,hotstar,微软,可是结果彻底不知道,清明节后的那个星期,我压力巨大,这几家公司颇有多是把我当备胎,翻看了下牛客网,也有各类所有面完流程最后被拒的帖子。我想若是这周尚未一个offer,我真得去投一个小公司保底了。幸运的是这周,字节在周四发了offer,hotstar和微软那边也问到了我面试经过的消息。

这里一直没有提阿里,阿里那边搜索推荐挂了以后,蚂蚁数据技术部的lead又找到了我,这位lead以前就经过github认识了我,我由于想去搜索推荐部的缘由婉拒了,以后他看我系统开放以后没有投递就又来找了我。真的很是感谢这位lead,我在蚂蚁那边的面试很是顺利,再加上笔试也是满分,据说是我是他们大部门第一个拿到offer的人。因此清明后那个星期忽然就得到了四个offer,个人压力也终于缓解了下来。

腾讯那边的状况依然一波三折,PCG把我放了以后,我终于被内推到xj学长那里,谁知道一面就面了30分钟,就把我挂了,理由彷佛是我不太懂数据库相关知识。我寻思我面哪一个部门不是硬面的,不都不懂那些框架吗 = =。并且更讽刺的是3月初bgg学弟还邀请我去企业微信,说帮我跟lead说下确定能过,我由于想面xj学长那里就拒绝了,结果折腾一个月终于去面告终果被秒挂,真的是够讽刺的hhhh。以后我找HR yy帮忙又推回了微信,很幸运的找到了一个比较match的部门,如今终于面完HR面了,很是感谢yy。

拿到几个offer以后,我找hs,yc,gucci等同窗以及一些职场的老人都谈了下,字节那边是算法岗,蚂蚁和微软都是大数据相关。考虑到过去一年自学ML无果,冬令营被虐,跟Z博搞科研直接被抛弃的惨痛经历,我知道我过算法岗纯粹靠刷题,因此决定先拒了字节的算法岗,这个决定其实挺起来挺蠢的哈哈。大部分人应该会接字节的吧,最核心的广告部门的算法岗,应该是搞算法的人最想去的地方之一(身边不少人都去了)。考虑到今年外企的形势,杭州比较方便,蚂蚁lead对我还挺好,最后决定accept蚂蚁的offer。

从结果上来看,我除了谷歌以后投了9家公司,截止今天有3个已发offer(阿里,字节,微软),有2个比较稳的口头offer(微信,hotstar),还有2个不知道结果的(morgan, optiver),还有2个由于时间关系组里项目繁忙不许备再面了(百度,ponyai)。

国内公司:  
字节/广告组/推荐:已发offer,已拒  蚂蚁CTO线/大数据:已发offer,accept  微信读书/OLAP:等offer
百度/C++:笔试过了,不许备再面
ponyai/SWE: 面到四面,最后一轮是team match, 就拒了
国外公司:
微软/azure storage:已发offer,已拒   hotstar/推荐引擎:口头offer 
optiver/SWE:HR面已经面完  摩根/SWE:面完等待最终结果 谷歌/SWE:一面结束,已挂

对研究生期间的反思

回望这两个月,感受本身不容易,也太菜。首先在家办公,本身的效率估计连学校的一半也没有,自从去年投稿结束以后的一系列破事,个人身心状态也没有刚上研究生那么好了,对于组里的科研和工做一直是很是低的效率。其次,这两个月不只要准备实习面试,还有3月组里的项目以及4月的投稿,有时候确实没法同时兼顾,这也是我初期挂了几回面试的缘由,由于我项目比较忙,因此就没有报一些小公司练练手,本科时候考研也没有实习面试过,因此一开始仍是个小白。

若是你是一个准备读研的CS本科生,我认为在选导师的时候应当更注重这个方向在工业界的match程度和这个方向是否适合你的发展,导师的名气有时候是次要的。回想我当时选导师的时候,也投了3,4个老板,当时以为如今的老板要我已经足够幸运。说白了当时仍是太嫩,或者说是运气不够好(固然运气也不算差了hhh,能考研录取不算运气嘛)。

个人结论是若是你不想读博,最好找一个无论你的老板或者是软工那种能够直接出去实习的,课上完后直接去大厂实习,远比每天在实验室待有前途,你读研最大的收获就是一张文凭,其余经历并不值钱,不少和工业界作的相差太大,还不如大厂实习经从来的香。

若是你想尝试学术,像我这种在有名气的学术老板那里读研的,也能获得一些锻炼,可是其实不如一些年轻老师的机会大。反观咱们实验室一做顶会论文的研究生,基本都是年轻老师那里的,老师须要论文,也有空每天辅导学生,这样学生才能最大程度的发展。

可是从另外一个方面说,若是你的本科是双非,不过你的本科经历丰富与否,能去985读研拿到这个文凭对将来的发展确实有很大的帮助,就算你由于各类缘由研究生期间混的不够理想,也是一笔稳赚不亏的买卖

顶级大厂看中什么

有几项是若是立刻要面试没法改变的,你的性别,学历,过往的竞赛和论文经历,这些每一个公司看重点不同。还有些是能够在短期提升,好比计算机基础知识,刷题,面试技巧。不过最硬通货的仍是学历,985CS出身,基本不会被刷简历,就算你大厂由于自身能力不足过进不去,小厂也是横着走。对于顶级大厂,竞赛和论文若是要很是有说服力的话,竞赛通常是ACM金银牌,kaggle金牌这种,论文通常是CCFA类一做or二做,有说服力,再次一点就不太行了。计算机基础和面试技巧,你们反正到时候多面面就上来了,刷题若是你不是竞赛党建议仍是提前准备,今年阿里都要求必须笔试了,刷题必须得过必定的bar才行。其次的话建议你们尽早投递,早挂早积累经验,早过早拿offer。你面晚了就有可能进备胎池,进备胎池就是养蛊。

下面我会比较具体的谈一下对于几个公司招实习生的不一样风格的见解:

阿里

阿里的部门很是多,并且每一个部门是本身招聘,堪称百团大战。面试流程通常是3-5面,看评级和具体部门而定,总体流程较慢,基本只能面1-2个部门(一个部门挂了才能转去另外一个部门面嘛)。坊间一直流传阿里的面试喜欢谈人生,问些HR喜欢问的问题。我确实遇到过一些这样的面试官,可是阿里的面试官风格仍是各不一样的,水平也良莠不齐。阿里不太喜欢面试的时候手撕代码,对于基础知识比较看重,对学历和经历也比较看重,整体是比较熬人的面试经历。

字节

字节算是最近几年煊赫一时的独角兽,字节的面试风格偏外企,通常是先问一些基础问题,而后写一道题,大约leetcode medium-hard难度。面试风格大多相似,面试官水平也较高,面试安排也很快,并且是疫情下惟一招这么多岗位的大厂了。若是想作推荐算法,字节的广告组是很是好而且不是很难进的选择。不过字节通常挂了就没法再面了。

腾讯

腾讯这边理论上是能够面不少部门的,只要没有坑爹部门捞了你而后忘了面试,提早批面个3,4个部门都问题不大。我主要面的是微信事业部,微信这边通常会有2-3轮技术面试,其余事业部通常2轮。前文也说了,我被腾讯的坑爹招聘系统坑惨了,你们若是面试发现5,6天都没有更新,就尽快去找HR问问。微信这边面试广泛不是很是尊重人,喜欢丢几道leetcode medium-hard题,而后挂电话让咱们本身写,问题是有时候那题意也不清楚,我能问谁去= =。有些部门不只题目难,问计算机基础也难的要死。这种部门说白就看运气,碰到好的面试官就能过,我也遇到过比较nice的人。固然你就是大佬除外,遇到谁都能过。

谷歌,微软,hotstar

这几家放一块儿说吧,谷歌相比其余外企更重视交流能力和代码细节,对于一个问题也但愿能探索更完美的解法,这也是它bar最高的缘由。可是谷歌今年直接取消实习,看这个趋势,之后大厂一哥的位置早晚不保了,国内自己hc就少,将来几年也不要报太大但愿。微软在中国的hc一直挺多,也有不少重要的业务,面试也就是算法题,懂的都懂,算是一个比较中肯的选择。hotstar是北京一家面的印象挺不错的外企,作的跟hulu差很少,也是视频推荐网站,听说给的很高。这些公司面试基本就是作题,可是跟竞赛题仍是稍微有些区别,建议竞赛爷仍是应该熟悉下leetcode hard题的套路。只要多加练习是竞赛党理想的去处。实习的话,谷歌是两轮技术,微软和hotstar都是三轮技术面。外企相比国内企业安排面试慢,出最终结果更是慢,不过面试比较规矩,难度比较平均,不会出现特别变态或者特别水的状况。

morgan, optiver

大摩和optiver都是金融公司,外企金融公司都是英文面试,面的我头皮发麻,并且这两家的最终结果还没出。大摩的面试过程上看,仍是体验很好的,面试官通常会问一些你的项目,延伸问一些计算机基础相关的知识。主要是你得用英文做答,就比较僵硬。大摩有一轮笔试,很简单的那种,leetcode easy。后面有四轮面试,其中一轮也会让你写道题,也不是很难。其余轮就须要你用英语和面试官吹牛逼(太难了)。说白了外企金融公司比较看重英语交流能力和计算机方面的综合素质吧。这种公司你们就面面碰运气吧。

总结就是国内企业尽可能能找内推找内推,国内的公司内推大部分仍是能免去笔试的,固然你能认识HR,部门lead更能帮你省去很多事,说白了国内企业嘛,都有些人情世故。固然能不能过仍是得靠实力与运气。IT外企通常就是拼刷题,水平到了基本没问题,说是没问题,可是如今好多外企都不招了hhhhh,因此能不能进也只能看命吧。外企金融我就不太了解了,若是你不是特别想去这个领域,那就面着玩呗。

若是是刷题很强,又以为今年外企机会很少的,能够尝试去字节,ponyai进行投递。今年的大环境太差了,但愿你们在这种状况下还能保住饭碗,保住狗头吧。

相关文章
相关标签/搜索