已拿阿里、美团、京东实习Offer 回馈牛客~
过程回顾
战果
已拿阿里、美团、京东Offer,腾讯微信事业部提前批三面卒,拼多多三面拒,字节笔试阶段放弃
岗位
都是Web前端开发岗
感悟
大公司对于实习生的要求并不高,主要看重你的可塑性,也就是你的基础知识扎不扎实,当然,如果会主流的框架是加分项。
计算机网络知识很重要!!!一定要花很多时间去复习。然后就是JS基础,ES6等等,CSS3与HTML5掌握最重要的知识即可。
算法题把剑指Offer刷一遍,LeetCode把热门题目刷一刷基本没问题。
过程
由于个人原因,从4月初才开始正式复习前端知识点,这一个月投递了腾讯、阿里、字节、京东、美团等公司的前端开发岗,5月份确定实习岗位——阿里。
自己的实习经历还是蛮坎坷的,4月13号投递了腾讯微信事业部的前端开发岗,当天中午就得到面试通知(一周后开始一面),开启了自己的第一次面试。
腾讯微信事业部面试
可能微信事业部是核心部门吧,要求比较高,当时自己应该准备的更充分再投递的。基本每次面试都是2h左右,除了二面半个小时。。
一面
首先一个小时做算法,远程在平台上做,一共四道题,自己做出来了两道,都是动态规划的算法题(类似于股票问题),其余两道都是JS算法题,一道是实现 add(1)(2)(3)().res = 6, add(1,2)(3)().res = 6,一道是实现superBaby,具体解法可以到我的个人博客中查看,博客链接
然后自我介绍,开始问技术问题,大概有以下内容:
- https协议及原理。
- http状态码。
- 浏览器缓存相关。
- 前端优化方法。
- 你了解过Vue,简单讲一下双向绑定原理。
- 网络安全相关
- 忘记了。。
二面
小哥哥发现我做的研究是个体移动轨迹相关,用的模型是深度学习模型,然后跟我讨论了半个小时模型,包括为什么选用深度学习模型而不是传统机器学习模型,模型的迁移能力等等。。感觉最舒服的一次面试体验了。
三面、
应该是小领导的面试?上来问我对于排序掌握多少,然后问我快速排序,包括复杂度分析。这里我回答的并不好,快排都快忘记了,就扯了一会。然后给我1h,让我手撕代码。。估计觉得我算法不好,然后一共三道题,第一题是给一个多级嵌套的html节点结构,写一个算法用js对象表示(我采用的是递归算法);第二道是js文件互相之间有依赖关系,写一个算法能够推断出入口文件(最开始引入的文件),然后能够输出每层依赖的个数,并找出一个文件,删除它可以最大限度的减少文件依赖;(我这里想法是构造一颗依赖树。。然后面试官说我太复杂了)第三题是开放题,在一个网格中想一个随机制作障碍物的算法。
然后讲自己的算法思路,问了其它一些基础问题。。
再次一面
然后就被刷了,我记得两天后提前批就截止了。结果打开官网一看,显示是初试,原来是原先的部门满了,又把我推荐给事业部另一个部门。由于面试官时间问题,改到了晚上10点半,面到12点40才结束。。
上来先写一道算法题,大数相乘。之前我写过大数相加,没写过大数相乘,原理差不多,但是逻辑更复杂一点,45分钟,自己最后还是撸出来了,代码详情可见我的博客。然后又自我介绍,问了我网络安全相关,XSS及CROS等问题,传输协议等等。
然后第二天就灰了,当时还是有点小伤心的,毕竟腾讯四次面试加起来都有6个半小时了。。不过经历的地狱级难度,后面的就砍瓜切菜了。。
其它公司面试
公司的面试讨论都差不多,如果是内推可以免笔试,我阿里跟拼多多是内推的,然后京东跟美团都是做了笔试,字节笔试8道题直接放弃。。
美团的面试
美团面试官比较友好,当初我填的是成都美团,他们是北京总部这边,问我愿不愿意(肯定愿意啊),然后每次面试前都跟你约定好面试时间(阿里不一样,想啥时候打给你就啥时候打给你,霸道总裁啊)。
问的问题蛮基础的,由于面试了好几家互联网公司,感觉关注点都差不多,就是网络协议、网络安全、JS基础等等,然后就是从你的项目入手问你项目的难点等等,如果了解框架还会问你的框架问题。这个后面我总结一个全面的知识点供大家参考。
美团印象比较深的就是问我一个智力题:小明跟小王玩一个游戏,每人依次报一个1-9的数字,然后结果不断累加,谁先加到100就先获胜,例如小明先报5,然后再小王报8,此时结果为5+8=13,依次累加,如果小明先报数,给一个策略,让小王必胜。。。
我花了几分钟就给出了答案(小得意),小王每次报的数要是 10 减去小明报的数。
拼多多面试
涉及到的算法
- 实现一个函数,可以展开任意层级(展开层级自定义)的数组
- 输入一个json对象,里面定义了节点值及孩子节点,构造一个js对象对其进行描述。
京东面试
一面二面涉及到的算法(很简单)
- 实现一个函数,可以实现数组的扁平化、排序以及去掉最后的一个元素。
- 一个数组,删除第一个重复的数。
阿里菜鸟
好像没问算法相关,问了计算机网络安全、计算机协议以及js的一些基础问题,还有根据项目的点展开了问。
知识点总结
由于时间较长,很多公司的问题都混在一起,这里就集中做个总结。
网络协议及安全/浏览器相关
- XSS及CROS攻击及预防措施(很重要,基本必问)。
- https与http的区别,https的工作原理、加密原理和加密算法。
- http的状态码。
- 304缓存的原理。
- TCP与UDP协议的区别。
- DNS解析原理。
- TCP三次握手四次挥手(个人觉得蛮重要,但是都没提到过。。)
- 什么是同源策略,如何实现跨域访问(方法越多越好)
- 输入一个URL后发生了什么(尽可能详细)
- get与post区别
- 事件代理或事件委托/如何阻止事件冒泡
- 一些位置计算相关的属性(如clientHeight等)
- JS节流与防抖
- 浏览器内核有哪些
- 重排与重绘
H5及CSS3相关
- H5新特性
- cookie、LocalStorage、SessionStorage、Session的区别
- cookie挂载在哪个对象上,怎么设置
- WebSocket相关
- canvas及SVG
- CSS3新特性
- 如果实现水平垂直居中
- 动画与过渡效果
- 清除浮动与BFC
JS基础与ES6
- ES6常用的特性
- let与const的暂时性死区及为何增加这两个关键字
- 继承的实现方式
- 什么是闭包及其应用场景
- this的指向问题
- 箭头函数及其应用场景
- Promise的原理及为什么用Promise
- js文件的异步加载(defer及async)
- 数组对象push方法与cancat方法的区别
- bind、apply及call的区别
- 对象深克隆
- 什么是原型与原型链
- 如何判断一个数据是否为数组
Vue框架
- 双向绑定原理
- v-if与v-show的区别
- computed与watch的区别
- 父子间组件通信及跨组件间通信
- 路由的两种方式
- Vuex相关
- 父子组件的数据加载与渲染的先后关系
- Vue的生命周期
- 与React的区别
其它
- 常见的设计模式
- 前端工程化看法
- git的使用
- npm命令相关
- node相关
- webpack相关
- 文件打包
最后
我的实习经验就先分享到这啦,大家有什么问题可以评论区留言啦!
#2020暑期实习##美团##实习##京东##面经##前端工程师##阿里巴巴##春招#祝大家都通通上岸,拿到满意的Offer!