又到了金三银四找工作的季节,最近听说了很多公司裁员的消息,大家是不是觉得今年的就业环境更难了。
就我的经历而言,找工作的过程还算顺利。不过每个人的实际情况有所不同,如果大家有跳槽的想法,可以根据自己的情况提前做好计划。
下面就跟大家讲讲我的面试经历吧~
ps: 如果不想看前面的面试总结,可以直接跳到最后看美团、腾讯、商汤科技等七家公司的面试题哈
个人面试情况
我是本科四年工作经验,投的前端岗位。我从去年12月底开始面试,面试流程走了一个月左右,年前基本都敲定了offer。
其中技术面试大部分集中在前半个月,后半个月就是HR面,聊薪资,定级别。我面了七家公司,大厂有腾讯、美团、商汤科技,中小厂有酷家乐、神策、天眼查,还面了一家国企,中国人寿。
完整走完流程的有三家,因为拿到比较满意的offer了,面试也挺累的,其他的流程就没有继续走下去了。
整个流程走下来,给我的最大感触就是累,比996还累。因为每天大脑都处于极速运转中,面完还要针对每场面试做复盘和反思,有时候也会自我怀疑,觉得自己是不是太菜了。
不过大多数时候都打鸡血鼓励自己,如果你都不相信自己,那面试官更不可能相信你了。所以良好的心态非常重要,是斩获offer的秘诀之一!
机会留给有准备的人
如果你近期有想跳槽的打算,一定提前开始准备面试。准备越充分,面试就越有信心。准备可以从这几方面入手:
01
八股文
八股文是一定要准备的。在短短的一个小时内,面试官要完全地了解一个人非常难,只能通过关键的知识点去考察一个人的技术实力。
而我们平时在公司里埋头苦干,很多基础知识已经忘记或者印象不深刻了。这些基础知识如果在面试时答不上来或者含糊不清,就会给面试官留下基础不扎实的印象。
我是从12月初开始准备基础知识的,准备时间一个月左右。我囊括了几个重点方向:
1. JavaScript 基础,包括原型与原型链、继承、事件循环、作用域、ES6语法、垃圾回收与内存泄漏等。
2.网络通信,重点有浏览器缓存、Http2.0、Https通信过程、TCP与UDP、DNS解析、CDN缓存等。
3. HTML和CSS,这块被问的内容比较少,重点从布局入手,比如单位、盒模型、定位、响应式布局等知识点。
4. 前端框架,框架的底层原理是一定会问的,至少要深入掌握一个前端框架。目前业界内比较流行的框架是 React 和 Vue,React 的知识点有 React diff、生命周期、Fiber 架构、Hooks 等;Vue 的知识点有Vue diff、响应式原理、Vue3.0新特性等。
5. 打包工具,主要围绕Webpack展开,比如loader和plugin原理、webpack构建流程、热更新原理、性能优化等。除此以外,打包界的新宠esbuild也可以了解下。
6. 加分项,除了JavaScript外,还了解哪些编程语言
02
算法
就我的面试经历来看,前端考察的算法难度一般,都是比较常用的。但是算法能不能做出来很重要,很多公司都非常看重算法的实现。大家不用抱着很难的算法啃,但是要掌握一些基础的算法题,比如排序、递归、链表、动态规划等。
算法题能锻炼自己的思维能力,我建议大家尽早去 LeetCode 上刷,最好提前两个月。这样在面试中就算遇到不会的算法题,也能找到一些解题思路。
03
简历
简历是面试官认识我们的第一步,也是面试时沟通的桥梁,所以写好简历非常重要。一份好的简历要做到以下三点:
1. 有用的信息
我们要把最有用的信息写上去。首先个人基本信息要写清楚,这个方便HR联系你。教育经历无论学历高低都要写上去,不要觉得自己学历低就不写了,就算面试的时候不会被问到,背调或者入职的时候也会检查。
其次专业技能很重要,HR筛选简历的时候会看你的专业技能是否与岗位匹配,面试官也会围绕专业技能对你提问。所以专业技能应该按照熟练程度从前到后写,把最熟悉的技能写在前面,对于不熟的技能可以用“对xx有一定了解”等术语。
最后是项目经历,项目经历不在多而在精,可以挑2-3个有亮点的项目重点描述下。在面试前一定要对对这几个项目认真做功课。
2. 信息的真实性
面试的内容基本都会围绕简历展开,如果你为了提高简历含金量,虚构一些项目经历或者技能,那很可能就会出现一问三不知的情况。
千万不要抱着侥幸心理,认为这些东西有可能不会被问到,如果被问到又答不上来,会让人怀疑你简历内容的真实性。所以简历一定要贴合自身实际,不要打肿脸充胖子。
3.信息精简
面对每天上百份简历,HR和面试官筛选简历的时间非常有限,均摊到每份简历的浏览时间就更少了,所以切记不要在简历上长篇大论,这样容易导致HR抓不住重点,错过关键信息。简历页数最好维持在2页左右。
04
自我介绍
每轮面试都有2-3分钟的自我介绍,可以先礼貌地跟面试官打个招呼,然后再介绍自己的一些情况,比如基本信息、工作经历、离职原因等。自我介绍有两点需要注意:
1.不要聊项目细节
自我介绍阶段不要聊项目细节,很耽误时间。面试官如果感兴趣,自己会问。让你自我介绍只是想对你的情况有个大致的了解,如果一上来就开始滔滔不绝,反而打乱了面试官的面试计划。
2.脱稿自我介绍
有??的人可能没准备自我介绍,等问到的时候才打开简历照着念,这会给面试官留下非常不好的第一印象。大家可以提前把自我介绍背下来,等问到的时候就可以信手拈来了。
面试总结
面试其实就是一个不断积累的过程,面得越多,越得心应手。我经历了十几轮面试,总结出了这几点经验:
1.项目经历要仔细准备
不同的面试官会从不同的角度去考察你的项目经历。所以对于曾经做过的项目,一定要认真准备,把可能会问到的点都准备一遍。比如面试官在问到我开发的其中一个babel插件时,就提了以下问题:
这个babel插件的适用场景有哪些
开发这个babel插件遇到了哪些问题,怎么解决的
为什么会想到用babel方案去开发这个插件,调研流程是怎么样的
这个插件还有哪些可以优化的地方,怎么优化
babel的preset和pollyfill可以互相替代吗,为什么可以/不可以
babel7相较于之前做了哪些优化
一连串问题问下来,差点没扛住....
2.每场面试结束都要及时复盘
每场面试下来一定要及时复盘。如果在家视频面试,可以提前录下面试过程。这样就能知道我们在面试中的表现。对于没回答上来的问题,一定要去做功课,完善自己的知识体系。
其实面得越多就会发现,考察的核心问题就那几个。面得越多,对这些问题的理解就越深刻,回答起来也更游刃有余。
3. 直面问题,不要答非所问
对于面试官的提问,一定要提炼出关键问题,然后针对关键问题作答。如果没有听懂,可以再问一遍 “能再说一遍你刚刚的问题吗”“您看我这么理解您的提问对不对....”,确认你的理解没有问题后再作答。
如果确实不了解面试官问到的问题,明确表示不了解就行。如果你答非所问,反而给面试官留下不好的印象,觉得你理解能力不行。
4. 分阶段准备
技术面一般有三面,我们可以分阶段准备面试。一面面试官是一线开发,会考察很多技术细节,所以这面要着重准备基础知识。
二面面试官是比较资深的开发,可能会问到框架底层原理,项目细节,当前流行的技术解决方案,比如微前端、SSR。我们要着重准备项目经历、技术实现方案和算法等。
三面面试官是技术负责人,负责人更多的是从宏观层面来考察候选人,比如候选人的学习能力、逻辑思维和表达能力。这些东西难以量化,需要长时间的培养。不过无论能力强弱,只要保持开放谦逊的态度,也能增加面试官对你的好感。