暑期实习面经

2016暑期实习面经

目前研二下学期,一开学就开始准备各公司的暑期实习应聘。以下是我应聘各公司的面经,一方面是记录下面试经历方便下学期校招时候回顾,一方面积攒人品。

Google

很遗憾地挂在了Google的初试上。年前就找师姐帮忙内推,结果还是到3月份才排到面试,今年面谷歌的同学真是多啊。作为IT人的技术殿堂,如果能拿到谷歌的实习机会,想必校招时能增添许多筹码。

面试官非常年轻,闲聊了几句就开始出题,手写代码,出了一道LeetCode上的easy题,问Excel上的第k列的标签是什么。第一列是’A’,第二列是’B’,第26列是’Z’,第27列是’AA’……咦,不是据说不考Leet题么。平复一下心情,朝着进制转换的方向的思路,很快写好,面试官看完我写的代码之后,让我设计几个测试用例,我想当然的写了几个,结果检查的第二个就不对。后来始终没想明白到底哪儿不对,想想当时在Leet上做这道题的时候也没用多久啊。经过面试官善意的提醒之后也将就着写完了,此时时间也已所剩无几了。心想肯定跪了,第二天就收到了拒信。这种感觉就像是表白女神,结果被发好人卡一样。

吸收到这样几点教训:
-Leetcode上的题一定要熟练,哪怕是Easy题
-卡住的时候不要慌,很有可能现在的思路是错的,深吸一口气,重新做这个题目
-有时机会只有一次,必须要以百分百的状态去应对

阿里

谷歌挂了之后,回去之后好好准备了几天,Leet上的题目也都快刷完了,在群里看到一个蚂蚁金服的师兄帮忙内推,就果断发了邮件过去,师兄挺热情地就帮我内推了,师兄说简历要经过审核才能参加他们部门的面试,审核不过的话还可以帮我内推到阿里其他部门。还好简历过了,我猜想大概和我在优酷的实习经历有关吧,毕竟现在优酷已经是阿里的人了。

阿里的面试一共有三轮,都是电话面,不过也有同学是面了四五轮的。

一面的面试官上午提前打了电话过来,约在了下午面试。问了栈和堆的区别,这个后来我在无数面经上都看到的问题当时居然没答出来,后来又问了虚拟内存,问了Java中Integer和int有哪些区别。不得不说基础答得一团糟,所幸后来问了两道算法题还是答出来了,一道是Rotated Array(参考Leetcode)中查找某个值是否存在,二分法搞定,不过当时花了好长时间才给面试官解释清楚,我猜想的是面试官想让我先找出转折的那个点,然后再对其中一段进行二分查找。一道是[a, b]中所有数的与,这道题在Leetcode上做过,思路就是每次比较a和b得到最后一位的值(a小于b的话,最后一位必然是0),然后将a和b右移一位。面试官显然没意料到我说出这种解法,问我有验证过吗?我坦诚说自己做过这道题并且这种思路是自己想出来的,后来想想这句话有点多余。

二面的面试官是晚上打过来的,大概面了一个小时,主要是围绕着我在优酷做的项目。我在优酷做的是日志实时统计,用的是Storm的框架。面试官应该也是非常了解Storm的,问了很多跟storm有关的问题,例如Storm由哪些组件构成?日志实时统计的拓扑图设计?Storm如何保证每个tuple均被处理到?最后这个问题还好在优酷实习的时候,闲暇时候了解到的,隐约记得是每个tuple在进出组件的时候做一遍异或操作。后来又考了我LRU的设计和实现,这个题在Leetcode上做过。还问了ConcurrentHashMap,由于这个数据结构在我参考以前优酷同事的代码时看到过,当时第一次看这么高端的东西,果断百度之,看了几篇博客之后总算有了初步的了解,没想到在此时却被问到了,不过由于时间略久遗忘较多,被面试官面的左支右绌,还好最后没有太为难我。

三面是HR面,据说阿里的HR和别的公司的很不同,算是体会到了,问我是否了解他们部门,以及他们部门的产品,我说之前有去搜索过,她问了解多少呢?我就balabala地说了一通。后来问我如果我在阿里的实习和实验室工作冲突了怎么办?我试图用实验室允许一定时间的实习来回避这个问题,HR还是坚持让我回答,我只好实话实说,回答做阿里的实习,也不算违心。但这个回答显然不是最好的。后来问了996是否能接受,我回答说能接受,毕竟时间越久学到的东西越多。

接下来就进入了漫长地等待,从3.11到4.20,每天都刷一遍阿里的招聘网站看面试状态,后来想起当时一面二面的表现确实差强人意,深以为自己已经挂了。直到4.20号晚上才收到阿里的offer。不出意外地话这个暑假就去阿里了。

网易游戏

较早地让去年在网易游戏实习的师兄帮忙内推,后来还是被告知需要参加笔试,所以内推不内推,对于今年的网易来说,似乎没有什么区别。

网易的笔试题还是挺难的,Leetcode中等难度偏上吧。时间结束后还是没有AC一道题,后来看了下每道题后面的通过人数,也是比较惨。所以网易临时延迟了半个小时,也就是在这半个小时之内,AC了两道题。通过笔试。

一面是电话面,问了操作系统、设计模式、计算机网络非常基础的知识,例如tcp/udp区别。并没有预想中那样和我扯半天游戏。出了两道算法题,第一道是找出一堆数的中位数,用快排的思路来做。第二道题是在10亿个数中找出前100大数,沿着上道题的想法,我几乎立即就答了用找中位数的思路来做。后来想想这种做法空间复杂度很高。面试官让我想想有没有别的思路,我想到数据结构中的最大堆,我说维护一个大小为100的最大堆,将这些数依次插入进来,最终剩下的100个数就是最大的100个数。后来想想空间复杂度其实是10亿的,那么按照最大堆的思路来做的话,空间复杂度是10^9,时间复杂度是建堆的代价10^9,加上检索出100个最大数的时间代价,100log(10^9)。面试官在我说出最大堆的时候说了句“你说的是最小堆吗“,我当时坚决的否认,我说我说的是最大堆,自己咋这么愚呢?面试官后来提醒我,你考虑下最小堆。我茅塞顿开,维护一个大小为100的最小堆就可以了,每次新数与堆顶比较,比堆顶小则不用进堆,比堆顶大,则移除堆顶元素,插入新数。最小堆确实是一个空间更加节省的方案。但是后来和同学在讨论的时候,同学提出了其实如果假设10亿个数可以放进内存中的一个数组,其实最大堆的时间代价是小于最小堆的。之前已经分析过最大堆的时间代价,最小堆的时间代价应该是10^9 * log100。可以看出最小堆的时间代价要大于最大堆的时间代价。之后,我又提出可以使用桶式排序(后来看到其实是一种被称为位图的算法)来解决这个问题,时间有限也没有表达清楚。最后面试官让我问他几个问题,就结束这次面试了。

一面完后自我感觉良好,心想除了那个找前100个数那个题答得不好,别的基本都答出来了。结果过了一个星期之后收到网易的拒信,低沉了好几天,最终接受事实,那道题确实处理的不好。看样自己与网易游戏无缘了。

腾讯

腾讯面的是后台开发的岗位,不得不提的是腾讯和网易一样,无论是否内推,都要参加笔试。笔试的题目比较难,全是不定项的选择题,所以当时做完选择题之后相当没谱。笔试之后一个多星期就收到腾讯的面试邀请。在苏州街的一个酒店。

一面的面试官是个年轻小伙,上来跟我说他们是游戏部门的,想招个开发游戏后台的,问了我一些简历上的经历以及一些linux上的命令,如何动态地追踪一个文件的末尾,tail -f。去掉一个文件中的重复行并显示,uniq用的不多没答出来。似乎我笔试成绩很好,他没有考我太多技术上的知识。

二面的面试官也比较年轻,但是应该是主管总监级别的。同样地没有考我技术,但是我简历上的四个项目,每个项目他都问的特别详细。从项目背景问到项目具体实现细节。最后问了我玩过哪些游戏,夸夸其谈了几分钟。问我是否考虑过读博士,我详细解释了下国内博士和硕士的主要区别,以及自己想implement something而不是write something。

二面之后就是HR面了,基本就是聊天。问了个成语接龙的项目,这是我业余时间搞的一个小项目,也是简历里面唯一和游戏相关的,其实技术难度并不大,二面的面试官也表示就是个toy,但是对于HR来说,项目的动机和过程还是比较重要的。

总的来说,我的这次腾讯互娱面试并没有考察很多技术,不过也有面客户端的同学被问了很多技术。目前还在等通知。

微软

微软的笔试没有做好,本来申请的ASGEA,后来被调剂到OSG,听同学以往去过那里的师兄说是搞嵌入式的。此时还没有收到阿里的offer,于是抱着试试看的心态去参加了微软的现场面。

微软的效率还是比较高的,大楼也很fashion,整个面试流程是在同一天结束。

一面面试官让我先介绍下在优酷做的项目,接着就开始出题了,但是出的题目基本都是Leetcode上的原题,easy难度。深深地体会到,刷好Leetcode以及有一个拿得出手的项目,是多么地重要。

二面面试官上来就问了一道两个链表相交的问题,接着就问了数独问题,这题Leetcode上有,列一下回溯的大致思路,写了一段伪代码。面试官让写的详细点,于是我就不断展开伪代码实现直到面试官满意为止。期间还接了个腾讯的电话,由于在面微软之前的一个小时收到了腾讯三面的通知,三面是在两个小时之后,所以这就很尴尬了,没办法只好回了邮件说来不了了。微软二面的时候腾讯打电话过来,我只好接了,感觉这是一种很不尊重面试官的行为,后来再三道歉。不过好在面试官不以为意。二面面试官让我设计一个杀毒软件,当时就晕了。对杀毒软件的认识实在是非常有限,所以只好想到哪说到哪。比如一个文件下载下来之后,首先要和病毒库进行比对,还可以放在沙盒里面跑一段时间。还可以观察病毒进程是否有违法操作(这里扯了几种违法操作的定义),是否导致了内存和硬盘容量的变化。不过在这个问题中,和面试官进行着良好的沟通,所以虽然我知道我答得很烂,依然很有信心地和面试官扯皮。

二面之后就回到之前的小屋里面待着,由HR宣布是否能够进入三面(总监面)。过了一段时间后大家都面完回到小屋,HR宣布了几个人今天的面试已经结束(估计是挂掉了)。剩下的由于时间紧张安排在明天面试。第二天如期到微软参加三面,三面的面试官是从海外留学回来的,所以对于国内的一些情况都不太了解,一些专业名词也希望我翻译成英文跟她讲。考了Leetcode上的easy题,我猜她主要是想考察写代码的能力,而不是写算法的能力吧。话题仍然是围绕我做的几个项目。问问题环节问了她微软OSG部门的工作内容,回答说包括微软小娜,windows phone以及windows 10的中国市场支持(本地化),Edge浏览器,以及广告。如果去微软的话,可能比较想做微软小娜吧。还问了内部转岗政策,是这样的,如果对方部门缺人并且你的实习表现比较好,且对方部门对你简历评估良好的话,就可以参加转岗面试,通过的话就可以转岗,但是似乎这个几率并不是很大,还不如校招时候参加面试直接面期望部门要好。

其他

在没收到阿里offer之前,心态不好,海投了好几家,比如大摩、滴滴、hulu、百度。大摩由于没怎么准备,又是全英文对话,所以挂掉了,hulu和滴滴还没有面试通知,百度参加完笔试。总的来说,今年已经找到自己理想的暑期实习了,后续的面试应该都不会参加了。

最后

面试的几点经验:
-通过搜索对面试的公司和岗位有充分的认识
-刷LeetCode,多看Discuss
-基础知识一定要牢靠(操统、数据结构、计算机网络、数据库),刷课件
-有几个拿得出手的项目并且对其非常了解

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值