美团offer流程记录
从4月中旬投递美团到现在,终于收到了面试以来第一个offer(QAQ),感动。投递美团的时候没有找学长要内推码,有点亏了。把找实习以来美团的这几次面试经历稍微梳理一下吧。
笔试
笔试4.9,当时感觉题目是怪简单的,全都是签到题的感觉,大家可以去搜一下力扣上的帖子,包括不限于“寻找图中的两个节点是否有直接相连的通路”。赛马那个平台不会用,所以不知道当时是多少分,感觉像是AK。
第一次一面(约45min)
第一次一面4.13
开始的时候没选好位置特别吵,面试官听不清,然后换了个位置面试,耽搁了点时间。
非常传统的JAVA八股,好像是美团到店还是到家那边的SpringBoot的技术栈。当时对面的面试官一看发型就是资深程序员了。现在也回忆不太起来,基本上就是轮番的八股拷打,例如mysql索引,hashmap,concurrenthashmap,linkedlist与arraylist,线程与进程的区别等等,基本上你们看别人的面经也能总结出大半,不得不说背八股文还是尴尬啊。写的一道题是二叉树层序遍历。
后面面试官也问了下会不会学springboot,我说这几个月会看的,如果工作要用那肯定得学。
一面之后的两星期
一面之后两个星期直接杳无音信。听说那段时间美团也没啥hc,还在裁员啥的,搞得特别紧张。直到24号才收到面试邀请,然后我选了28的面试。
29号的时候美团招聘公众号发了个文章,春招最缺人的6个岗位,里面有个后端。当时我心想,这不会是真裁人腾出来hc吧。
第二次一面(约1h)
到第二次一面的时候看到左上角的“一轮”感觉就不太对,后面发现是转部门了。对方是安全风控部门的,不过面试还是得正常面。第二次一面的记录之前也做过,只有这个记得详细一点。下面是原文。
面试官很亲切很认真,也一直在笑,消除了我的紧张感,感觉非常亲和亲切,不会紧张与不适。他自己也自称比较“奇葩”,也会避免那种八股,问我的问题已经算他出的题比较常规的了,个人感觉他把八股文偏到应用一点上去了。
首先是自我介绍,研究生做的项目也讲了会,他也是第一个对我本科编译原理课设感兴趣的面试官- -,问了下我编译原理实现的C0语法支持哪些类型(然而我自己也忘了),用的啥语言(C/C++),词法分析怎么做的(硬做。。),有没有运行时优化,LL,LR那些词法分析还记得吗(当然不),用的啥教材(学校自己的狼书)。既然当时构建语法分析树那啥的,那就写个题吧,看你笔试做的还不错。就出了一道简单的偏应用一点的题目。
编程题:解析LISP表达式(问我有没有听过,我说PL学过这个语言,很多括号)
操作数都是字符串,操作一共两个,
+(CONCAT, 简化了一下) 字符串拼接,接受>=1个参数;!(REVERSE)字符串翻转,接受一个参数。
(+ "aaa" "bbb") => aaabbb
(+ (! "abc") "111" "222") => cba111222
字符串字面常量:"aaa",支持escape character(转义):"\\" -> \ "\t"->tab "\n" 换行
其实确实不是很难,不过我没有预料到会出这种,有点猝不及防。不过写起来不是很难,因为LISP是括号语言,所以读到(递归寻找)就行了。就是写的有点慢,中间给他说了下思路,他说你觉得能写对就接着写吧。还好后面写出来了。
时间复杂度空间复杂度呢 (O(n)吧,毕竟只遍历了一遍),转义我没实现,但是和他说了一下思路,反正一遍 遍历是肯定能实现的。
然后看还有点时间,问一些问题吧。先是提了嘴
1.JAVA多线程,所以就问了常规问题:
volatile关键词是什么含义(真的挺常规的,复盘一下是今天最常规的八股):指令重排、线程缓存
Semaphore(依稀记得是信号量)在哪里用的(PV操作),说一下PV:P(<=0阻塞)
completableFuture(然而并没有用过)
2.问下计组相关吧,不知道还记得多少(忘完了QAQ)
C/C++里面
sizeof(char)=1
sizeof(float)=8
sizeof(double)=16 (然而我不清不楚)
float和double区别在哪里呢,或者float全称(这东西还有全称啊?下来后自己看了下,单精度浮点数)。他的构成第几位第几位一组啊就不问了,比如浮点数相加,1.0+1.0=2.0嘛,但是有一类特别的浮点数运算时会得不到想要的结果?(我当时想的0.1这种,在计算机没法准确存储,他说不是,这种是可以运算的,没法运算的)或者你知道现在浮点数用的标准是什么吗(他后面打出来IEEE754),浮点数在计算机上是怎么表达的(我提了嘴下小数点后面的数字)(提了嘴CSAPP没怎么看过)(下来翻了一下浮点数的构成以及有inf和nan)
3.计网学的怎么样(还行吧)
中国到美洲的光缆,10TB/s,延迟比较高150ms,丢包率也很高50%,现在需要传一个10GB的文件。设计TCP拥塞控制协议,让文件可以最短时间到达。
(第一次见计网这样出的,他就提示了下TCP的拥塞控制。)
(我就说了下TCP的拥塞窗口congestion window慢启动、拥塞避免嘛,如果超时窗口就掉到1重新开始阈值减半,这种丢包率高的情况那肯定不能窗口到1,减一些就好了)
(不过他后面说窗口到1是教科书上的理论值hhh)
又看了看简历想了想该问点啥,C++的Memory Barrier内存栅栏(没用过hhh)
4.vector与list有1亿条数据,顺序遍历一遍,哪个快。(差点没反应过来)
(想了想vector,毕竟内存是连续的,因此容易命中缓存,他问是命中哪个缓存,....页表缓存?然后list因为是不连续的,所以利用不到程序的空间局部性,这个词似乎是关键点。然后他又提了嘴CPU的L1 Cache与L2 Cache)
因为我说我平时就刷题啥的,他就问有没有用到L1 Cache与L2 Cache优化的题目,我说没,还没优化到那么细hhh,他说其实在竞赛里面还挺常用的。
面试总长1个多小时,大部分时间是lisp那题,面试官人很好,和他交流感觉也学到了挺多hhh,与上一次美团一面的纯八股感觉区别很大。
第三次一面(约45min)
28号之后就是放假,自然也收不到消息。5.10的时候收到了面试消息,自信满满的以为是二面,进去之后发现左上角还是“一轮”,心态有点炸裂。对面好像是做数据的一个部门,也没听得太清楚。
再次没选好位置,耳机也出毛病了,导致面试官还是听不清楚我说话,于是再次换位置,仍然不行。最后把耳机扯了,对面好了结果我听他那边有点困难了。(环境比较空旷有一点点嘈杂)对方人也挺好,说实习生的面试大概就45分钟,然后也是自我介绍+问问题+写道题。
这是我发挥最差的一次一面了,当天没有睡好,脑子有点乱,心态也有点崩。。。。前面是扯自己在干的项目啥的,中间的基本问题都答得很烂,连hashcode和equals这种基本问题都答得很卡壳,线程切换和进程切换也答得不好。最后写的题是螺旋打印数组,结果我一上来就按照方阵写的,写一半面试官问我是不是误会了,没说是方阵hhh
然后秒改个n,m上去。总之的话就是最里面那层需要特判一下。
最后的时候问了下面试官是几面,他说我到他们部门是一面。然后我和他说这是我第三次一面了,所以有些紧张(面试官也笑了)
没想到当天下午就收到邮件让我选面试(不知道是几面)时间,我就姑且当是二面了,选了11号,11号收到面试官电话他临时开会,所以推到12号。
二面(约45min)
这天早早落位,把备用耳机带上了,果然没出问题了。心态平复。二面的话基本流程还是自我介绍+问问题+写道题。这次面试气氛感觉也挺轻松的,开始介绍的时候对面也看了简历+一面记录,所以也问了点问题,我也稍微说了下。顺带一提之前的项目跟大数据有一点点关系,然而当时看的spark啊spark streaming啊那些我都忘了,毕竟大部分计算不是我做的是学长做的。还是有一点点尴尬。后面问问题的时候也出岔子了,连int的字节数我居然说了个8个字节(脑子瓦特了),int转byte的时候会不会出啥问题(我不到啊),后面面试官说有的实习生因为不知道转换的时候计算机位数的影响,导致高位丢失了。然后背八股的时候也挺尴尬,感觉真正用过的东西理解起来和背的东西差别还是挺大。
写的题是无重复元素的最长子串,居然写的时候还出了点问题,不过也很快秒了。
最后照例问了部门,好像是风控那边的数据部门,向美团提供数据,所以可能会用到大数据相关的一些工具,比如flink,hive这些。然后问了下几面,他说是二面,补一下流程的,因为之前leader已经面过我了hh,听到这句话我就知道大概稳了。不知道是第二次一面的还是第三次一面的面试官,总之就是非常感动。
hr加微信
5.13收到hr微信告诉我实习面试通过了,感动,终于不是0offer了。
总的来说的话,在我面过的几家里面,美团面试体验还是最好的(虽然我就面过腾讯字节美团,腾讯一面就挂了)。面试官人都挺好的,都挺和蔼,而且整体的面试气氛都挺轻松,面试官也会认真听你讲(哪怕是胡扯(bushi)),出现问题的话面试官也会纠正。四次面试的体验都不错。而且感觉面试官对实习生的要求没有那么高,可能也是知道我几斤几两。(还是太菜了,接下来要好好复习基础知识+学习新知识了)
既然拿到offer心里也稍微稳一点了,可以专心自己的项目了,毕业要紧。下周一还有字节的面试(没错,还是一面),在想还要不要接着面。。。
大家没有offer的也不要放弃希望()
#2022春招##美团##春招##实习##面经#