2020届本科应届全职前端.
拿到了美团offer,总结一下我的春招,贴一下时间线.
一共面了美团/猿辅导/帆软/ThoughtWorks四家,全都给了offer.
时间线
除ThoughtWorks外我的简历全都是2020年3月13日投的.
ThoughtWorks
请参考我的另外的帖子.
投下面简历的时候已经拿到ThougtWorks保底offer.
猿辅导
- 1与2面连着 3月21日
面完当场觉得自己凉了,也是被问到胃痛.去买了m记压压惊. - 3面(leader) 3月25日
- hr电面 3月26日
- oc 3月27日
帆软
- 3月18日晚笔完
- 就1面聊人生 3月26日
- oc 3月27日
快手
- 笔3月22日19点
ac了3.4题. - 1面4月11日,我主动终止了流程,没有参加面试.
美团
- 3月21日(周四)笔,5个编程,因为全程感冒我就只ac了签到题,剩下没调出来.
- 1面3月23日
这面我被问到爆炸,小姐姐拉清单问.请参考logtxt大佬的一面.我感觉除了算法,我答出来的只有50%左右.当场觉得自己凉了. - 2面3月25日
这面突然轻松了许多...基本都能回答上来了. - 3面3月26日
很轻松.
面试官最后说接下来没有技术面了. - hr面3月30日
- 电话试探1, 4月1日
- 电话试探2, 4月3日 - offer mail,4月7日
美团技术面流程非常快,一周结束.基本面完第二天就有推进.hr面以及hr面之后就非常慢.
试探的时候问我意向,手头offer,以及期望薪资,我就随口说了个当时offershow上的前端最高薪...然后问理由.
唯一不之间间隔了许多许多许多天,可能是我前面的大佬都拒了offer终于轮到我了.真给了,这我是没想到的,然后就发现我报少了.
无反应
我不知道是我简历被TOP2大佬吊打沉底还是表面hc,没有一点反应...
- 爱奇艺
- 小米
状态是等待部门筛选,等了快一个月了.就当无反应了. - 所有的网易,内推之后连笔试都不给.
难道是我操作错了?又变成无内推状态了? - shopee新加坡 (牛客网上邮件发简历内推的)
没反应,也没回信被鸽了?
面试体验
美团和猿辅导流程飞快,一周基本面完了所有技术面,我给许多好评!
共性面经
我从这么多面试以及中总结了一点常见的问题,不仅仅是前端同学,如能对后来的所有技术同学有一点点收获我就满足了.
JS基础
- 闭包
问这个问题就能问出你对闭包理解的深刻程度了.
如果面试者回答"函数A内返回一个函数B,这个函数可以引用A的变量",那就属于理解不够透彻.闭包其实不需要返回函数.
如果面试者能回答出"词法作用域",再能展开说说"内存泄漏"与"箭头函数"等关键词,方显基础扎实. - this
- 类型转换和
==
/===
- ES6
一般常用考点是Promise
,let/const
,()=>
,async/await
- 各种继承的手写代码实现以及优缺点
- 原型链继承
- 构造函数继承
- 组合继承
- 寄生组合继承(重点掌握!)
- ES6的继承是哪种继承?Babel成ES5之后是什么样的?
- 事件循环(event loop)
这个东西非常重要.有多重要呢,基本全都在问.请务必深入理解.
还会有各种变式,比如说让你分析代码输出.
捡来的图.
- 手写原生apply,call,bind实现
- 手写防抖节流实现
- 顺便一问,你们知道现在的ES有几个原始数据类型吗?
CSS基础
我是纸糊CSS选手,不会CSS的.
推荐熟练背诵104道 CSS 面试题,助你查漏补缺.
也可以阅读CSS Mastery, CSS Secrets这两本书.
vue全家桶
我明确地在简历上写了"vue全家桶"6个大字,没有提React/Angular,因此面试官基本只问了我vue,但是还是挺细节的.
- vue的双向绑定.
所有敢在简历上写vue.js的人都有必要背诵,不然一面挂的概率提高许多.- vue2.x中,为data对象动态添加新属性对响应式的影响?数组又是如何实现响应式的?
- vue3.0如何实现响应式?
- vuex是如何实现响应式的.
面试官刚想问双向绑定,然后看我有马上回答的趋势,笑着说那这你应该会了,来说一下vuex的响应式是如何实现的吧.
...? - vue-router如何实现前端路由?有几种模式?
- vue-router为啥要用history模式?
为了好看啊! - history模式中,刷新之后,明明服务器上没有这个页面,却能加载出页面!这是为啥?
- 在? 组件的keepalive知道? 如何保证页面组件在切换路由之后存活?keepalive用多了会有什么缺点?如何解决?
- vue-router为啥要用history模式?
- vue的组件间通信.
父->子,子->父,兄弟之间通信. - vue组件生命周期.
- 在什么事件中能够访问定义好的data?
- 美团:vue diff算法.
一些不够典型的问题.
- 猿辅导:vue的各种
slot
12面都问了很深.可见他们日常使用slot. - 猿辅导:
<style scoped>
解释一下?是怎么实现的?
1面开场问这个.我是没有想到的!
还有webpack相关.各位大佬可以了解一下.我说我从来没配置过水过了.
操作系统
- CPU的进程调度算法.
这东西也就猿辅导的leader面问了.我不会,口胡了一个trivial的FCFS. - 什么是进程什么是线程,它们什么关系.
网络协议相关
- http/https
其中,https的加密过程需要大概了解:用非对称加密交换密钥,用对称加密来加密传输内容.这是因为非对称加密涉及大质数,性能并不好,相比而言,对称加密的性能就很优秀.- http报文大概啥结构? 用什么分隔?
- GET和POST区别以及其他http动词
http动词我觉得只要掌握四种,GET/POST/PUT/DELETE以及它们的对应语义.问其他的都是耍流氓.(CORS preflight相关除外) - 跨域
- http1.0/1.1/2.0的区别
特别是2.0的改进需要掌握.至于http3.0嘛...我没被问到. - TCP协议,以及滑动窗口拥塞控制.
猿辅导leader面问了这个. - 各种层
虽然我是没被问到,但是我提供一个利用首字母记忆5层结构的方法.@NLP => 读作ATNLP => Application/Transport/Network/Link/Physical
NLP就是自然语言处理(逃)
然后你需要知道,Application还能再细化成其他3层(Application/Representation/Session),形成OSI 7层模型.
- TCP握手/挥手
真的是高频考点,虽然我没被问到.可能会问:为啥2次握手不行,4次握手多余? - 从URL输入到页面加载完毕发生了什么?
我被问了渲染树.页面的渲染过程需要了解一下!
关于渲染这个知识点,可能还会和页面中CSS/script的加载顺序,以及是否中断结合起来问. - http状态码?没!有!问!到!
我既不会背,也不会背.但是看起来挺常见的. - XSS/CSRF等安全问题
- 防御方式
- 攻击方式
算法
都是easy级别的题.
问到的算法题有:
- 猿辅导:树的左视图
给你一个树,让你输出从左边看起来/有些节点会被挡住的样子... - 猿辅导:如何实现一个bind函数
(这居然是算法?)
面试官说:那好,接下来做算法题吧,先从简单的开始.
然后就出了这个,我当时连bind是啥有啥参数都忘记了2333写了一个***版的,不带柯里化的那种. - 猿辅导:给一个有序整数数组
A[0...n]
,和一个整数target
.返回A中与target
的差的绝对值最小的元素的下标,若存在多个则全都要输出.- worst-case的时间复杂度?
- 美团:输出不定数目的集合的直积.
[A,B,C] [1,2] => [[A,1],[A,2],[B,1],[B,2],[C,1],[C,2]]
一个dfs. - 美团:数塔(dp,题名是矩阵最短路).
出了牛客网上的题目,面试的时候就在牛客网上交.
这题毒性很强.我用Python,3分钟写完,然后被卡到呕吐,只能WA过25%的case,真是让我百思不解!然后我发现没救了,就和面试官说,能不能让我用c++重写一下?然后就被阻止了,表示只要把思路讲清楚就行,我分析边界条件,讲完,也没啥问题.
最后我事后补题,发现似乎是后台数据没有按照给定的格式给,居然把所有输入都塞到一行里面了.像Python/JS这种需要按行读入的语言就只能原地去世?我用c++写了一个就过了.
但是我发现好像也有人用Python过了.这就让我超级不解,本地过了就是过了,一定是OJ的问题.jpg.有没有大佬给我解释一下?
项目
- 能开源的项目请务必开源,贴上仓库地址.Github/Gitlab都行.
- 对每个项目都预先复盘,为项目本身添加动机.
被问到项目的时候陷入回忆,就会给人一种不熟悉项目的感觉.
所谓动机,就是你为啥要做这个项目,好的动机可以展现你对编码的热情. - 在简历中为项目描述添加技术名词,可以引导面试官的提问.
- 问到没有实现的/没有想过的功能,需要现场想象一下.
我就被问了许多的后端问题.明明我是个前端."我没有做这个功能,但是让我做我会(说出技术方案...)"
或者"我做了,是这样的:(当场瞎编一个解决方案)" - 如果有量化成果的,请写上数字.
HR面
几个经典问题. 我也都被问到了.
- 老师同学是怎么看你的.
- 你都是如何学习的.
- 期望薪资是多少?手头还有什么offer?
要回答这两个问题,你需要事先在offershow(一个微信小程序)上面查好对方公司的薪水,基本上分为几个档次.你可以依据自己的面试表现/以及HR的反应开价.如果HR暗示你的表现还不错,那就可以悄悄地往高开(如果你没有其他大厂offer去argue很可能都会被压价,除非你的面试结果非常好)
通常,开完价之后,HR会问你的这样开的理由.这个时候收割机们就可以说,我有贵司竞品的sp offer! 一般人...或许会稍微美化一下? - 你对本公司的了解?
美团HR:"说说你对美团文化的了解?"
错误示范(真实): 我:"开水团啊"(即答)
正确回答(虚构): 美团是一个牛逼企业!!!!它的价值观是:(省略列举)!我非常喜欢!!!!特别是首席科学家夏华夏老师,他的精神(省略精神),他的事迹(省略事迹),是我的偶像.
- 你的职业规划?
- 你为什么选择前端?
这个东西,也有可能会在前面被问到.请准备一个或真实或虚构的故事,表现一下你为前端事业献身的决心.
通用反问环节
不要作死 不要作死 不要作死.
这死都不是我作的,我只是提醒一下各位如下要点.如果没有做到很可能会留下负面印象.
- 不要把别人公司名字说成其他公司的名字.
不要在美团的提问环节把美团说成饿了么. - 不要问加班.
你真的想进这个公司,最好就不要露骨地问"加班"什么的了.公司里面加不加班也不是你一个问题能够改变的,反而可能会留下负面印象.
但是,你可以问工作制度(出勤时间,下班时间,是否弹性,大家都是几点上下班的?),福利(有些公司提供晚上9点之后回家出租报销服务,有些公司时间阈值是9点30)有无:房补?餐补?交通补? - 不要在非HR面问薪资.
据说,一般的面试官都被要求不能谈这个. - 问一些比较积极的问题.
比如: 对应届生的期望?会承担什么样的工作?对新人的培养是怎么样的?技术栈是什么样的?会有内部的技术交流吗?贵部门主要做什么样的业务?还有上面提到的关于工作制度和福利的问题和面试反馈的时间. - 没问题了咋说?
"好的,谢谢.我其他的问题我都从前面的面试官那里了解过了,我没有其他问题了!"
结语
一般来说,本科校招还是主要看的发展潜力.如何判断?私以为主要看如下几点,如果能在面试当中表现出来就可以大大提高通过面试的概率:
- 理解/沟通能力.
有些时候,面试官可能会提出一些非常宽泛的问题,这个时候你可能就需要进行问题的细化,"您问的是不是..."或者"这个问题分为几个部分,我逐个回答.".注意,请千万不要抢答,请一定等面试官说完再回答. - 代码能力
代码能力表现为算法与项目.代码手速快的话就给人一种很强的感觉.
算法的话,如果没有icpc经历还是刷leetcode吧,提早准备,多刷几遍.
而项目:害搁这电商仿站秒杀系统呢?尽量不要整一些有培训班气息的项目,自己思考.我觉得哪怕是生活实用小demo都比这些项目要强.当然,技术栈最好要全都用上.
剩下的,其实还有被问到不会问题的时候的慌乱程度以及对后续面试的影响.我来举个虚构的例子:
好的,你vue源码有没有看过?来,手写一个diff算法,要能跑的那种.
平衡树了解吗?AVL树介绍一下?会写吗?会写啊,那来写个splay/RBT吧.
webpack的loader和plugin有什么区别?
你确定吗?你真的确定吗?这就是你的最终答案了吗?
面试者需要保持冷静,完全不知道的知识点就快点说不知道.我美团一面/猿辅导12面加起来说了起码50个不好意思我不知道,麻木了,我就直接当自己已经挂了继续回答下面的问题.如果崩了,就输了.
我没参加秋招,也没有公司的实习经历,有春招的其他大厂也因为各种原因错过了.最后去了哪?你需要观察一下我的认证.
附录
美团今年2020年实习生的录用比(已经收到的简历数:拟招聘的岗位数)
来自https://tech.meituan.com/2020/03/26/meituan-tech-corporate-recruitment.html
客户端人少,算法(特别是CV)人多是很明显的趋势,不仅仅是美团一家.
所以,如果你的背景比较弱,也可以剑走偏锋学习ios客户端开发并且打好CS基础进大厂.前端面试之道
前期看看用来打基础不错.但是实际上你会发现这深度还是不够面试官问的,而且有些错误(比如:关于setTimeOut的时间下限为4ms的描述不符合MDN描述).掘金
多看看别人写的总结吧.MDN
API文档,也有一些tutorial,但是我感觉质量都不是很高,不适合复习面试.You Don't Know JS(YDKJS)
很有收获的JS小书.Github上有开源的英文版,中文版翻译不太理想.
如何让你的简历脱颖而出?
害,这能有什么办法,简历是HR手动筛的或者是自动筛的,无非是靠学历/实习/荣誉/排版这些HR能看的懂的东西啊.可能(纯是我的幻想)有些HRBP还懂一点技术关键词,能看看项目.
如果有需要我帮忙看一下简历(当然是无偿的)的同学请注意保护个人隐私,把姓名手机删掉,最好上水印,防止简历被人拿去乱投(以至于)最后被列入大厂黑名单.无时效性加班表
无时效性,本人不负任何责任,FYI.
全部评论
(10) 回帖