2019届本科生秋招经历百度、腾讯、网易、滴滴、快手、美团等11家互联网公司的前端岗位面试心得

很长的前言

2020.03.11更新

已经入职百度转正两个月了。重新回顾这篇写于前年的记录当时的求职过程的文章还是比较感慨的。现在这个时间,2021届已经都在找春季实习了。赶上疫情,有一些公司可能推出的岗位比较少了。但是大厂的机会还是很多的,并且一般采用线上面试,比较灵活。我建议各位大三、研一、研二同学积极地去找实习,尽量早点入职,春季实习生还是有比较大的希望直接获取秋招offer的。打一个百度2020春季实习内推软广:百度2020春季实习生项目开始啦,快来投递你心仪的职位吧( 链接地址:https://talent.baidu.com/external/baidu/index.html#/intern/12?source=NEITUI&recommendCode=u25xr9 ),找到名称带有“2020春实习”的职位,填入内推码投递获取内推名额~我的内推码:u25xr9

2018.12.19更新

已经入职百度实习了两周了,无论是技术氛围、行政关怀、部门风格等等所有都非常棒,我的选择是正确的。希望我的加入,能够为部门、为自己,带来令人惊喜的改变。

本人是某985大学软件工程专业的一名大四女生,从5月开始一直在某大厂做前端实习。在我忙于实习时没想到今年是互联网秋招寒冬,忙碌的实习让我没法分心顾及我关注各大公司的秋招行程,开始奋起直追时也屡屡碰壁。很多公司我直接错过了网申期限,有些公司投了简历但是没时间做笔试或者没好好做笔试,有几个得到内推的和做了笔试的公司,有幸得到了面试机会,更多的面试机会是我在BOSS直聘、实习僧上沟通得来的,跳过了笔试直接去面试。

经常借口请假甚至趁工作午休时间电面的我,秋招也是不太顺利。到现在(1117)我面试了3次实习,得到了一个实习offer,面试了14次秋招,其中一家公司因为内推结束我无法走后续流程,其中一家公司给了口头offer,下星期开始联系HR发放offer,希望可以顺利拿offer,是一家非常nice的公司,因此我也在另一家公司打电话来问如果给offer是否愿意实习时说了要考虑。

这17次面试我面试了11家互联网公司:腾讯、美团、奇虎360、猎豹、猿辅导、快手、百度、一点资讯、滴滴、人人、图森未来,这些公司的面试官和HR都非常亲切友好,即使在面试时他们可能是严肃的,但是在面试前后都非常地礼貌热情,尽管很多家公司的面试结果都不理想,但我都对他们印象良好,真的是非常宝贵的经历。

准备充分,及时复盘

除了秋招寒冬这个客观因素,每次面试后往往没太多时间复盘,只能匆匆在备忘录里记录一下不会的问题,就赶往工作地点或者下一个面试地点,没有充足时间去准备也是秋招不顺的原因之一。

自信乐观,态度友好

有些面试的失败往往不是因为面试表现出的知识储备不够,而是态度问题。有几次只是个别问题没有答出来,我就心灰意冷,情绪开始低落,靠面试官来调动我的情绪,这样肯定是有不好的影响的。面试失败次数太多也打击了我的自信心,很多面试我是硬撑着去面的,往往也没有好结果,明明是擅长的知识点,回答了问题本身就不想多发散了,没有突出自己的实力。

深挖项目,突出自己

身体原因也是有的,有一次面试我是从医院看完病赶过去的,全身起疹用非常糟糕的形象和状态完成了面试。我的优势之一是时间较长的大厂实习经历,但我对自己的实习做的项目的理解不是很深刻,也不能向面试官传达出自己所做的贡献,导致我介绍自己的实习经历时往往难以引起面试官的兴趣。项目经历薄弱也是一大败因。

好像我已经一无是处了,不过我还是没有灰心的,如果心仪的大厂没有顺利发offer下来,我会继续战斗,我还有春招,好在我是技术岗,春招还是有一些机会的。面试这么多次,薄弱的地方自己早已知道,接下来就是在实习和准备毕设的间隙去努力学习。

对一些公司的秋招策略的感知

  • 京东实习转正概率大。京东,我的实习单位。实习2个月后开始发起转正流程,无答辩。转正概率比较大,我刚开始转正失败了,但是在公司继续实习,后来领导看表现的好,跟HR部门报告了一下,给了个校招offer。有了这个保底之后我秋招只投大厂了。

    京东的社招有个硬性规定,五二(五三?)原则,五年内呆过的公司不超过2(还是3?)家,这一点已经挡住了很多简历。

  • 腾讯提前批机会很多。字面意思,提前批感觉招了很多人。并且提前批和正式之间的间隔还是比较长的。

  • 美团、奇虎360内推失败无第二次机会。内推免笔试直接面试,但是失败了之后就不会再有机会了。

  • 滴滴emmm。我滴滴笔试好像没过,后来在BOSS上沟通了面试机会,走的是部门定向内推流程。面试两轮通过了,后来面试官告诉我HR说定向内推结束了,我只能在滴滴实习2个月后走跨部门转正流程(我当时正在滴滴另一个没有校招hc的部门实习)。2个月后我面试的部门也不一定有hc(部门不会为我保留hc)。这是人家公司的制度,我无话可说,像京东那样的领导说一声就直接发offer的比较灵活的制度不是每个公司都有。

  • 头条的笔试做两道就可以有面试机会。因为我算法贼烂本来都打算放弃头条了,在最后几次笔试机会了随便A了两道竟然发面试通知了。

面试记录

腾讯提前批

  • 面试时间:8月4日
  • 电话面。腾讯提前批,面试官在腾讯简历库里看到我的春招简历就给我打电话了,结果我第一个问题就忘了就推到了周六,说要改一下简历,面试官也很好脾气地答应了了。牺牲了面试官的休息时间真的很抱歉
  • ‌面试结果:一面挂。非常惨,基本上作用域,闭包,继承,计算机网络之类基础问题我都记不清了。但是面试官并没有在系统上终结我的腾讯提前批流程,而是选择了取消面试,因此我有了第二次腾讯提前批面试机会。
    ‌Q:您问的一些关于继承之类的知识,我在实习的时候没有用到过?一些框架可以为开发带来很多方便,为什么还需要掌握这些基础呢?
    ‌A:我想只是因为你实习的时候遇到的需求比较简单或者你没有深入地思考你的需求。当我想要抽象我的代码或者让代码更简单时,是一定需要用到继承这些比较底层的东西的。像你说的框架,如果不深入了解框架底层,只是使用的话,也只是背API而已。当你深入理解一个框架原理,能够掌握了解它的优缺点,那么你再学习别的框架会变得很简单。

美团内推

  • 面试时间:8月20日

  • 现场面。约在了周一六点。

  • 面试结果:一面挂。美团的要求比较高,除了基础知识要扎实,还问了git上有没有开源项目,有没有研读过哪些框架的源码等。

    Q:现在应该MVVM框架是大势,为何您会问我一些jQuery框架的用法和原理?

    A:前端框架的发展不是一蹴而就的,你现在赶上了好时候,都在用MVVM框架。但是它之前的像jQuery这样的框架,去研究一下还是非常有必要的。

奇虎360

  • 面试时间:8月23日
  • 内推简历通过后的现场面,望京的360公司,大批次面试,一轮挂了。
  • 问了对可视化的看法;二维数组怎么降维。

腾讯提前批

  • 面试时间:8月30日
  • ‌深圳某部门,没有专门的前端部门,需要组建。正在招揽人才。‌一三轮电面,二轮视频面
  • ‌一面:约到了周六,面试官似乎有事在忙,很多基础问题问的都不深,我说的不好的地方也没有追问。问了逻辑题:六十四匹马,八个跑道,只能排名次不能记录时间,找出前八名快马。
    ‌二面:视频。出了代码题,实现五子棋,一个数组代表棋盘,黑白对应不同数字,判断输赢或者平局。思路是不能暴力遍历棋盘判断。二面面试官似乎不是前端,对js语言不太熟悉的样子。
    ‌三面:问了排序算法,出了两个题,一个是一面的赛马,一个是寻找数组的逆序对个数。
    ‌Q:我理解排序应该是后端的工作,前端为什么要问?
    ‌A:前端可能并不会排序,但是这是你作为计算机专业学生的基本能力。

猎豹移动

  • 面试时间:9月14日
  • 好像是在BOSS上投的,然后约了视频面试。加了HR的QQ面的,会写一些代码。两轮挂。
  • 涉及问题:怎么知道12:00访问www.xxx.com的用户人数;数组去重;

猿辅导

  • 面试时间:9月21日
  • 通过笔试后打电话约的现场面试。工作地点在望京,挺不错的环境。

腾讯正式批

快手

百度(offer)

  • 面试时间:10月29日
  • BOSS上投了简历直接去面试,两轮技术面加起来将近三小时。面试官非常nice,因为是晚饭时间去面试的,第一轮面完之后还请我吃了晚饭给我买了饮料,非常贴心亲切。
  • 面试完过了一周零两天突然部门领导(也是二面面试官)打电话问意向?我有点懵逼表示很想进百度,领导说你好好考虑。问了一些建议,两天后回电话表示给校招offer的话会马上和现在的实习单位领导谈离职。领导表示可以发offer,又交待了几个框架让我看,让我再给他回电话。我很不安,大致看了看制订了学习计划。又给他打电话,他表示满意,明确说会给offer,后续再联系。之后又通了几次电话他一直在跟我说一些offer进度。校招offer和提前实习offer平行进行发放。终于在面试三周后HR部门开始处理了,联系了我说开始补招流程,我已经完成了面试,只需要补一下笔试和测评就好。现在(11月23日)已经距离面试快1个月了,好期待正式的邮件offer呀~好期待之后去百度实习,提前感受部门的氛围!
  • 面试官非常非常好。而且实习生成本投入还提高了,实习薪资比起第一次跟我沟通时多了数目不小的房补,非常感谢相关的为此做出过努力的部门领导、HR部门等。

一点资讯

  • 面试时间:11月1日
  • BOSS上投的直接去面试了,大小周上班。工作地点在望京,看办公室情况一个大办公室人有点多有点挤。三轮技术面一轮HR面。
  • 预检请求;对Vue.js的认识;

滴滴

人人

图森未来

  • 面试时间:11月15日
  • 网申后直接两轮电面。问的都很基础,让我对公司前端的要求有些不安。HR打电话问愿不愿意实习再看表现转正我拒绝了,又问给正式offer的话会不会来,我说要考虑,然后挂了...

面试问题

简单总结了一些面试过程中会遇到的问题,记忆有限可能不够完整和详细,我的git上有部分总结的答案,比较长,可惜git无法显示目录,可以一看->前端知识图谱

计算机基础

  • 进程和线程的理解,区别,通信方式?

前端相关

  • 前端优化方案

    这个问题可以说出很多条,不需要死记硬背,良好的思考顺序可以让你说的更多并且展现你知识的深度。推荐一本小册前端性能优化与实践

  • 一般前端页面由哪三部分组成

  • 前端安全威胁(CSRF与XSS)的原理,常见场景与防范策略

HTML

  • 浏览器端缓存(cookie、localStorage、sessionStorage)的生命周期、存放数据大小、使用场景等。(还会问到相关的session、HTTPONLY)

CSS

  • @import与link区别

  • display属性的计算值

    一个行内元素的样式如下时,display属性的计算值是?

    - float: left // 
    - position: absolute // 
    - position: relative // 
    - visibility: hidden // 
    - display: block; display: inline; display: xxx; float:left; // 
    - display: flex;position: fixed 
    - inline-flex // 
    - grid // grid
    - inline-grid // 
  • 盒模型

  • BFC的形成方式、作用(解决边距折叠、高度塌陷等)

  • 弹性布局概述(搜索阮一峰 弹性布局)

  • 清除浮动的方法比较

  • 水平垂直居中方式(单行文字、行内元素、已知高度和高度未知的盒子等情况)

  • 用CSS画一个三角形、梯形等(除了利用border,还可以考虑旋转变换等)

  • 文字截断

  • 雪碧图

  • 响应式布局方案

  • 移动端布局方案

JS

ES

把ES6好好看看真的是非常有必要的,借助阮一峰老师的《ES6入门》真的是帮助很大呀,在很多问题中都找到了新的解。

  • script标签的async与defer

  • 数据类型(注意ES6的Symbol)、typeof运算符、null和undefined区别

  • 类型转换

  • 运算符

    [] == false、 但是!![] == true

  • 变量提升和函数提升

  • this的判断、绑定规则、优先级,箭头函数的this

  • arguments与剩余参数比较

  • 闭包的概念、应用

  • JS垃圾清除机制

  • instanceof的原理,实现方式

  • 如何区别对象与数组

  • call、apply、bind的区别,自己实现bind

  • 原型链、对象、构造函数

  • 继承的几种方式及优缺点(原型链继承、构造函数继承、组合继承、class extends)

  • 遍历对象的属性的方法(for in、Object.keys、for of、Reflect.ownKeys、Object.getOwnPropertyNames(Symbols)等)

  • 浅拷贝与深拷贝(使用场景、如何实现)

    JSON.stringify(JSON.parse(obj))是有局限的

    • null、任意的函数、正则表达式、symbol值,在序列化的时候会被忽略(出现在非数组对象的属性值中时)或者会被转换为null。(null可以被拷贝)
    • 不可以拷贝原型属性。深拷贝后constructor变为Object或Array
    • 无法正确处理循环引用问题
  • 数组去重方法(ES5方法和ES6方法Set)

  • JS的Event Loop。可以看看下面两篇文章。

    JavaScript事件机制 宏任务、微任务

    详解JavaScript中的事件循环机制

  • 箭头函数

DOM

  • DOM事件流与IE事件流
  • target与currentTarget
  • 事件委托
  • 事件监听方法
  • 取消冒泡和取消事件的默认行为

HTTP

  • DNS
  • HTTP2.0与HTTP1.1的区别
  • HTTP状态码
  • HTTP缓存策略
  • 内容协商
  • 预检请求

Browser

  • 跨域方案
  • 不同浏览器窗口的通信
  • 在浏览器地址栏输入URL到呈现页面,会发生什么。
  • 重绘和重排(注意补充图层知识:普通文档流看成一个图层,特定的属性生成新图层。不同图层的渲染互不影响。频繁渲染的元素可以单独生成新图层,提高性能。但不能生成过多图层,反而影响性能。)

Vue

  • 双向绑定原理
  • watch和computed的区别
  • Vue.$nectTick的应用,是微任务还是宏任务?
  • v-show与v-if的区别
  • 生命周期钩子
  • vue的key的作用

其他

  • 常见排序算法及其复杂度
  • Nodejs、webpack、bable、CSS预编译工具、typescript、rxjs等
  • 常见框架的了解和使用?