前端开发应届生面试指南(含各大公司具体指南及面试真题)
先介绍一下本人应届前端开发一枚,非科班出身,专业是化学,大学期间开始自学前端开发,在今年春招实习和秋招的时候投了一些公司,拿到一些Offer(京东、拼多多、虎牙等),总体来说还算满意,特地写一篇文章来总结一下面试的那些套路。
一、简历的书写
1、简历的精髓在于简洁,内容应该控制在一张A4纸内
2、简历的排版有设计基础的可以自己设计,没有设计基础的可以找找模板,推荐500丁这个网站
3、简历的内容的编写应该和岗位有关,没有关系的内容其实可有可无,大量没有关系的内容反而降分。
4、个人能力的编写应该谨慎,有些面试官会一条一条问你,所以不是有把握的技能不要写成熟悉、精通之类的,甚至不要写,不过可以在面试中稍微提一下自己了解过
5、找师兄师姐或者有经验的人帮忙修改修改
二、获取招聘信息渠道
1、公司官方网站(最可靠)
2、招聘网站以及他们的微信公众号,如:实习僧、大街网、智联招聘、拉勾网等
3、公司的招聘微信公众号(不过根据我的经验,很多公司的招聘微信公众号要不就是不管理了,要不就是信息会延迟几天)
4、公司员工的个人公众号、个人票圈
5、相关的QQ群、微信群
三、获取内推资格
1、寻找认识的师兄、师姐
2、通过公司内部的人员(可以关注一些技术牛人的公众号或者加他们微信或者QQ好友,他们发布招聘信息的时候,不仿请他们内推,一般简历合适都会帮忙内推的)
3、通过一些技术网站,如牛客网,有一些人员会在这些网站发布内推信息
4、实在没有内推可以试着发邮件给公司的HR(如果你知道的话)
5、部分微信公众号会有内推信息(有一些公众号会要求分享推文、截图等要求的,一般是没用的,我发过2次,都没用)
四、笔试准备
1、笔试前一定记得练习,练习网站推荐牛客网
2、笔试一般在公司内部开发的网站进行或者外包给一些公司,常见的平台有牛客网、赛码网,牛客网上体验很好,赛码网体验很不好,所以收到赛码网的信息就各安天命吧(这里真的不是黑这个网站,我一直觉得有些公司会选这个网站和这个网站的背景有很大关系,因为这个网站是由一个人力资源公司孵化的)
五、面试准备
1、找已经面试过的认识的人了解了解面试过程
2、面试前可以去刷一刷面经,如在牛客网上有大量面经
3、根据自己的简历准备准备
4、如果是大厂,前端同学记得要去刷一刷后台同学的面试问题,至少要了解
5、提前时间到达面试地点,很重要
6、前去面试一定要准备两、三份纸质的简历,因为首先面试官可能不是一个人,再者面试官作为一个人当然是愿意看纸质的简历了,反正带着准没错,另外记如果是彩色的简历一定要彩印,本事彩色的却打成了黑白,实在太难看了
六、面试中
1、自我介绍和职业规划是一定需要的,最好提前准备好说辞
2、紧张是难免的,记得调整好自己的心态
3、把控好节奏,说话不要太快,自己想好后再说
4、不懂的问题不要不懂装懂,被拆穿就很尴尬
5、难免会遇到自己没办法掌控的局面,调整好心态
6、注重沟通,面试官也是人,技术水平差不多的情况下,肯定选会说话、聊得来的人
七、项目和作品
1、项目和作品往往是面试的敲门砖,对于专业不对口的同学来说更是如此
2、项目应该突出自己的亮点,当自己技术能力不足的时候如果你的项目有足够的亮点来吸引面试官,面试官会忽略其他的(比如当我在面试YY的时候,我将图书系统的整个开发过程以及这个项目在模块化方面的实践,面试官听了很开心)
3、项目和作品一定要记得保留
4、常写文章和活跃在各大社区往往会获得面试官的加分,面试官招的是人,一个面试过程只能判断一个人的能力,却很难判断一个的兴趣和为人,长期写文章、活跃在社区至少可以证明你是一个真正喜欢这个领域的人(至少我在面试YY、阿里、网易、腾讯的时候都被面试官当场打开过github和博客)
八、平时积累
1、拓展自己的知识面永远只有好处
2、对某个知识点不要浅尝辄止,一定要了解原理
九、前端面试相关知识
1、JavaScript相关:闭包、跨域、继承、原型链、设计模式、正则
2、CSS相关:选择器权重
3、HTML相关:盒模型、viewport、块级元素、行内元素
4、构建工具相关:gulp、webpack了解一个
5、Node.js相关:HTTP模块、File模块、创建服务器的原理
6、网络相关:HTTP、TCP、UDP、DNS、WebSocket
7、框架相关:jQuery、MVVM框架了解一个
8、数据库相关:关系型数据库必备一个、MongoDB、redis等非关系型数据库选择了解
9、工具相关:Chrome开发者工具、fiddler
10、设计知识:基本的设计原则、基本的设计规范
11、Web安全:XSS、CSRF、SQL注入
12、性能优化:CDN加速、负载均衡等
12、其他需要了解的:Linux、计算机组成原理、操作系统、一种或多种后端语言(推荐必备Node.js,再加C#、PHP、Python、Java、go中的一门)
十、其他
1、多和师兄师姐交流请教
2、多和其他人交流,不要把自己打造成一座孤岛
3、求职过程其实挺难熬的,不仿找到一两个人一起,即可分享求职经验,还可以互诉情绪
十一、各大公司具体面试指南
阿里:阿里招的应届生不多,内推的人几乎已经把坑占满了,所以尽量找内推,而且阿里的前端笔试题会难到你怀疑人生。阿里的面试是电话面试,对于没有电话面试过的来说紧张是难免的,而且这个面试的电话随时有可能打过来,当打过来的时候如果没有准备好可以和面试官约一个其他的时间,这样就可以有针对性的准备一下,另外阿里还特别喜欢让你手撕代码,而且非常喜欢问原理性的东西(模块加载器原理、gulp原理、react原理等),而且如果你有github的话还有可能打开你的github直接问你项目的代码,这点非常有挑战性。
腾讯:腾讯每年招的前端貌似都很多人,腾讯给我的印象就是特别喜欢问网络知识,所以TCP、UDP、HTTP这些常考的内容必须掌握,此外腾讯还挺注重计算机基础,因此计算机组成原理啥的也准备准备,腾讯的面试难度在于一面,过了一面,二面可能非常水(像我就是二面只问了我一个问题),因此搞定一面面试官是关键。
网易游戏:网易游戏我是只面过他的一个平时实习,网易的话有可能会当场让你做题,他们会准备好一份卷子,但是可能不会让你全做,而是问问题,选择性的让你做。网易游戏前端这块会很注重数据库和后端,而后端他们常用的就是java和python,数据库这一块就是喜欢给你一个场景,然后让你手撕SQL,一般这个场景会涉及很多限制条件。如果你的后端和数据库基础不牢,那么到了二面可能会被狂怼,所以面试网易准备好后端和数据库还是很重要的。
YY:YY的前端面试的话,不会太难,如果你能找到一个点让面试官有兴趣的话,(像我就是讲的gulp在项目中的实际运用),会很有帮助。
华为:华为的前端主要集中在南京,华为面试很看笔试成绩和面试者的学习成绩,如果笔试成绩好,能够AD所有的笔试题(一般有三道)那么面试基本不会问啥问题(我AD了三道,面试只被问道一个问题,5分钟解决)。
虎牙直播:虎牙直播的前端面试很看重一个面试者学习的广度,一般会有三场技术面试,如果厉害的话还有可能被加面。另外虎牙直播的面试很考验一个面试者对于知识点的总结,他希望面试者回答问题的时候能够有条理的分类回答。也很看重面试者对于前沿知识的关注,会问些当前的前端新闻、前端技术。如果你表现出你还懂后端,很有可能会被当场叫一个后端来面试你,依次来评估你的综合能力,另外V8知识记得看一些。
京东:京东的笔试我没有参加过,直接面试的,因此笔试难度我就不太清楚了,京东的前端会看重面试者创新的思维,会问很多开放的问题,让你提出解决方案,或者手撕代码。另外如果你提到有Github那么有可能会问你在github上都做些啥,所以最好有一些PR能够经得起吹。
以上就是对于整个求职过程的所有总结和建议,另外由于面试题太多,我特地分类整理了所有的面试真题,放在了github上:https://github.com/huruji/FE-Interview,如果你也有github,不妨来个star吧,快点上车。