2017web前端面试总结
2017web前端面试总结
从今年3月份开始面试笔试找实习找校招到现在也半年多了,拿到了不少offer,也有了自己的一点心得体会,这里写出来分享一下,拙见勿喷。
注意一下,以下的观点仅代表我个人的体会不代表任何人任何组织和任何公司。
关于流程
一般的实习&校招招聘大体有这么一个流程:(这里我个人都是走的官网投递的渠道,没有经历过宣讲会的环节,这一部分我没啥经验)
笔试
笔试作为招聘的第一个环节,一般考察的都是专业基础知识,这里会着重考察你在学校的计算机相关基础,也就是很多人会发现,我明明考的是前端的卷子为啥前端的知识点考的这么少,而且有时候也会发现,前端的卷子考的没有前端的知识点。
笔试也是有种类之分的,像我参加的360和阿里的校招,笔试都是分为能力测试和技术笔试的,这里的能力测试也就是我们以前经常无视的逻辑思维题或者是分析题之类的;而技术笔试呢,顾名思义就是考察计算机基础和专业基础了,这里不废话了(提一点:可能你会遇到有的笔试编程题选不了js,这里就自己斟酌了)。
关于基础知识,这里就是计算机网络、操作系统、数据结构、数据库等。
关于笔试的建议就是多刷题(超级学霸请无视我),这里推荐几个网站:牛客网,leetCode,赛码网。
注意:像牛客和赛码这里要注意一下,很多公司的笔试都是用的这两个平台,建议多熟悉下这里的编程题的在线环境。
一面
恭喜你,如果如果笔试过了那你就迈过了一个大坎,要知道很多同学都是连面试的资格都没有的。到了面试阶段,考察的大多是专业知识了,当然也不排除考计算机基础知识的。
一面这里考察的知识点比较基础,这里你的面试官会分析你的技术基础能力扎不扎实,你这个人的性格如何如何然后汇报个组里的老大决定你是否有机会参加下一轮的面试。
注意我提到的性格,大家都不愿意和一个怪异的人一起工作,一定要有热情乐观积极上进,这点真的很重要!
这里我的建议就是,基础我就不用说了一定要很扎实,面试官一下子就能看出你到底是会不会了,不要不懂装懂。但基本上一面要是被问住太多了的话那确实很不乐观了,但是也不排除一种情况,你的基础非常的扎实,面试官觉得这些基础知识点问了也是浪费时间于是开始深入问你,这个时候要注意,确实会闻到很多你不会的知识点,不要放弃尽可能的尝试,但也不要过于自大,面试官希望看到的是你的潜能和面对未知问题的解决能力。
二面
恭喜你通过了一面,你的基础还不错,接下来你将遇到的是组里的高T或者是业务方向的老大了(和大牛面对面)。
二面也会考察基础知识,这里基本都是匆匆过一遍了。注意了我可以很负责任的说,二面你会遇到很多的困难,二面会考察你的项目,面试官会根据你简历上的项目经历找一些他感兴趣的来问你,简要的说并且说重点,从使用技术栈到项目架构的设计到技术难点的实现,分点说。
面试官也是人,他也会好奇一些神奇的项目是怎么实现的,所以我的建议也就是平时多做一些有水平的项目,不要把todolist、图书馆管理系统这种烂大街的项目写在自己的简历上。
这里透露一下,你的二面面试官,很有可能是你未来的leader,它们问的问题很多都是平时遇到的技术难点啊,自己踩过的小坑啊啥的,有心的同学自己默默记住这些问题回去多看看,对自己的提升会有很大的帮助(毕竟你能网上搜到的问题都是些烂大街的问题,这时候大牛遇到过的问题和你探讨这种机会不用说都知道很难得吧)。
这里还要废话一下,不要遇到难题就放弃说不会,多尝试一下,还是那句话,面试官想看到你对未知问题的解决能力,我一般都是先说出我的想法把我的实现方法说一遍,这时候可能会遇到直接怼对了的情况那么只能说恭喜啦,但是大多数情况下你的解决办法都不是最优的,这时候面试官会一点点把你往正确的方向引导,这一探索的过程才是面试官看出你这个人的软硬实力的关键。
三面
恭喜你到最后一步了,这里是HR或者技术经理面啦,这里表现最真实的你就好,和hr或者老大聊聊天,说说自己的基本情况啥的,这里就不多说了。
注意:其实还是要注意一点,很多同学都说我三面都过了为啥最后还是被拒了呢,这里其实不是你的第三面被拒了(当然你如果人品有问题啥的我就不多说了),这里据我所知有这么几种情况:
- 虽然真的面的很不错,但是公司的hc有限,只能说很遗憾;
- 还是hc有限这个点,但是这家公司是根据笔试+一面+二面+三面的综合评分决定的,只能说你很厉害但是有比你更厉害的人;
- 其实你的二面一面就不怎么样了只是说技术面试官不忍心拒绝你,往往hr更懂得拒绝别人;
总结
这里就简单总结一下吧:
- 自我介绍言简意赅,体现自己的个性和亮点,会什么着重说一下;
- 基础知识(计算机基础 + 专业技能基础);
- 对待问题的解决能力;
- 不要表现自己的负面情绪,积极乐观;
- 沟通技巧;
注意:你的暑期实习经历对你的校招面试很有用,一定要争取找个暑期实习。我当时面暑期实习时候也是没有啥经验处处碰壁,后来实习了几个月后校招基本上是横扫,面一家过一家。
(web前端学习交流群:328058344 禁止闲聊,非喜勿进!)
关于技术知识点
这里就罗列一下我之前遇到的知识点,我的其他文章也写到过详情可以去看看(有些公司面试完可能忘了就没写)。博主上一次面试距今也有几个月了,忘的差不多了,这里就罗列一点我突然想到的哈,请谅解。
html + css基础
- 基本的布局(中间自适应旁边固定啥的)的几种实现方法;
- 垂直居中的几种实现方法;
- 盒模型;
- position;
- 行内元素和块元素;
- BFC(块级格式化上线文,和浮动一起考);
- animation;
- 伪元素伪类;
- less、sass、stylus这种预处理器;
- ......
js基础
- 原型链;
- 闭包;
- 类和继承(es5实现方法 + es6实现方法);
- let、const、var;
- promise;
- 异步处理方法;
- 写一个方法遍历所有文档树所有节点(考察递归);
- cookie和webstorege;
- jsonp和跨域;
- sort排序相关(注意ascll这个坑)
- 数组和对象的深浅拷贝;
- String + Array的一些基本操作;
- 写一个数组去重的方法;
- 冒泡和捕获;
- 事件代理;
- this相关(注意箭头函数的this指向问题);
- call、apply、bind;
- 变量提升;
- 高阶函数;
- 动画;
- setTimeout、setInterval和requestAnimationFrame;
- 模块化开发;
- 引起内存泄漏的原因;
- ajax;
- map、filter、reduce相关;
- Map和Set;
- 移动端开发相关;
- ......
框架和工具相关
- vue数据绑定原理;
- vue父子组件和兄弟组件的通信问题;
- vuex的原理;
- vuex的action和mutation的异步操作和同步操作问题;
- vue的事件监听;
- vue-router获取自定义参数;
- vue-router的go相关;
- vue组件设计相关;
- 模块化的工具;
- webpack打包优化;
- 设计一个自己的打包工具需要设计哪些主要功能;
- babel相关;
- mvvm的好处;
- jquery的一些基本用法;
- lodash相关;
- vue和react的对比;
- vue和jquery的对比;
- ......
技术拓展
- 设计模式相关(单例、发布订阅等);
- 浏览器渲染过程;
- 性能优化相关(这个点很大,设计很多方面,不要自以为优化就是网上经常看到的那一套);
- 设计一个模版引擎;
- 设计一个打包工具;
- 设计一个mvvm框架需要注意的case;
- 源码阅读相关;
- ......
项目相关
这里说几个我面试经常问到的项目。 - 仿饿了么购物车(本地购物车和全局购物车和本地存储,不是网上一艘就能搜到的哪些哦);
- Chrome插件开发lettalk;
- rn开发的一个简单的社交app;
- 仿vue mvvm框架(阅读vue源码时候仿的);
- 仿Jquery类库(阅读jquery源码时候仿的);
总结
我能想到的也就这么多了,还是差很多东西的,请大家谅解。希望大家都能拿到自己满意的offer。