军马未动,粮草先行
面试前准备
准备项目
如果,我是说如果,你现在还没有离职,或者处于待离职的状态,那么在你离开公司之前的这段时间,对于你接下来无缝衔接找工作特别重要。首先,你要好好总结一下你之前做过的所有的项目,把该项目涉及到的业务,代码逻辑,架构,难点,亮点,统统的研究一遍。当你在简历上写项目的时候,你就会得心应手,不会因为知道写什么而苦恼了。你只要去好好的研究了,自然而然的你就知道写什么了。如果你不知道,那就是没研究明白。不是如此,如果你入职了一家新公司,你平时除了完成公司的任务,你还要经常做总结,为你以后做铺垫,平时多烧香,用时不慌张。
准备简历
简历是你进⼊⾯试的敲⻔砖,也是留给意向公司的第⼀印象,所以这个很重要,必须在这上⾯做⾜了⽂章,⼀份优秀的⾯试简历是整个⾯试成败的重中之重,我们要认真准备简历才能保证简历不被刷掉。 简历通常有这⼏部分构成:
- 基本资料
- 专业技能
- ⼯作经历
- 项⽬经历
- 教育背景
简历模版
简历模版推荐选择清新简约风格,不要花里胡哨,各种魔幻效果,还有一种是表格样式。有的面试官可能会因为你的简历风格而心生厌恶。简历格式确保发给hr一律使用pdf。如果你发的doc格式,可能她打开就是样式乱飞的场景。 写简历有几个不错的平台推荐,它们都提供了比较不错的简历模版可以使用:
- boss简历(免费):cv.zhipin.com/resume/html...
- 木及简历(付费):www.mujicv.com/
- 老鱼简历(付费):www.laoyujianli.com/(导出pdf样式会错乱,谨慎选择)
我一般使用的是boss的模版,简约大气,看着很清晰的风格。
个人信息
个⼈信息部分主要包括姓名、电话、电子邮箱、求职意向、求职城市、工作经验等。 主要信息告诉hr,你是谁,你要找什么工作,在哪工作?怎么联系你? 还有一件事,就是关于个人照片,我的建议是,男士最好别放,女士长得还不错的就放一放,并且是经过专业拍摄的头像才能放,自拍的就不要冒险了。
教育背景
应届⽣可以写得更详细⼀点,在校参与过的大赛,或者做过什么比较有亮点的事迹,平时的学习获得过什么奖项,拿过几年奖学金等等,要把自己包装的有亮点一些,才能在竞争者当中更为突出,或者更多的面试机会。社招就不要写太多了,简单的⼊学时间、学校、专业即可,⽽且写最⾼学历即可,没必要从初中就开始写学历流⽔账,没有⼈看的。 如果是自考本科,专升本这种的,直接写你的本科学历。如果你是研究⽣或者985/211学历可以突出⼀下写一下。
个人技能
专业技能就是作为前端工程师需要掌握的一些知识。这个相信大家都懂的,但是需要注意一些细节:
一、对于了解、熟悉、精通的使用
- 了解:使⽤过某⼀项技术,能在别⼈指导下完成⼯作,但不能胜任复杂⼯作,也不能独⽴解决问题。
- 熟悉:⼤量运⽤过的某⼀项技术,能独⽴完成⼯作,且能独⽴完成有⼀定复杂度的⼯作,在技术的应⽤层⾯不会有太⼤问题,甚⾄理解⼀点原理。
- 精通:不仅可以运⽤某⼀⻔技术完成复杂项⽬,⽽且理解这项技术背后的原理,可以对此技术进⾏⼆次开发,甚⾄本身就是技术源码的贡献者。
使用案例:
-
以Vue框架为例,如果可以⽤vue写简单的⻚⾯,单独完成某⼏个⻚⾯的开发,但是⽆法脱离公司脚⼿架⼯作,也⽆法独⽴从0完成⼀个有⼀定复杂度的项⽬,只能称之为了解。
-
如果有⼤量运⽤vue的经验,有从0独⽴完成⼀定复杂度项⽬的能⼒,可以完全脱离脚⼿架进⾏开发,且对vue的原理有⼀定的了解,可以称之为熟悉。
-
如果⽤vue完成过复杂度很⾼的项⽬,⽽且⾮常熟悉vue的原理,是vue源码的主要贡献者,亦或者根据vue源码进⾏过魔改(⽐如mpvue),可以称得上精通。
二、不要写流水账
很多刚培训的学生写简历的时候,不能说一摸一样,只能说大差不差,我一眼就看出来,这个肯定是刚培训的学生写的。还有之前培训过的,工作一两年内再写简历,还是跟之前一样,没有任何改变。
反例:
- 熟练使用e6+新特性,如 promise、箭头函数、模板字符串、解构赋值、扩展运算符等
- 掌握TypeScript基础语法。接口、泛型、常用的Utility Types,如Partial、Omit、Record、ReturnType等
- 熟练使用ajax,axios等技术实现数据交互,并操作数据,渲染到页面
说的太累赘了,恨不得把所有的es6的新特性都写一遍。生怕面试官不知道你会哪些。
三、技能要分类
我们写技能的时候,一般需要分类来写:
- 基础知识:html、css、javascript
- 前端框架:vue相关、react相关
- 工程化:webpack、vite、rollup
- 小程序:微信小程序、uniapp、taro等相关
- 可视化:echarts、canvas、webgl、threejs
- 代码管理:git、svn
- 微前端:qiankun、无界、microapp
- 数据结构/算法/设计模式
- 后端:Nodejs、Mysql、Nginx、Docker
你会哪些,就写哪些,一个分类写一行,不要一行这个写点,那个写点。
反例二:
- 了解ECharts、AntV、NodeJs、Java基础
- 熟练掌握前端基础知识HTML、CSS、JavaScript、ES6以及前端常用的工具。熟悉HTTP协议。
下面是好的个人技能介绍:
案例一:
前端基础:精通JavaScript,CSS,HTML(🔥基础扎实)
熟练掌握Vue/React,并研究过其内部实现(🔥基础扎实)
熟悉⼯具脚本开发,有cli⼯具集开发经验,熟悉Webpack,Vite打包工具;
具有低代码平台、微服务、服务端渲染等相关技术的实战经验,熟悉各⽂档平台搭建⽅案(dumi,vuepress);
前端规范:熟悉编码规范,可以封装前端lint规范库;
前端管理:熟悉针对业务线⽬标的任务拆解,熟悉项⽬管理流程,有业务推动和跨部⻔沟通等能⼒,能组织技术分享,担任过公司核心项目前端负责人;
喜欢分享,写文章,掘金文章输出x篇,多次在团队内部做技术分享
案例二:精通(技术专家以上写比较合适,其他最好写,深入理解、熟练掌握) Vue.js、React、Angular 等多个主流框架,并深入了解其设计思想、原理和最佳实践
熟悉前端工程化开发,掌握 Webpack、Rollup、Gulp 等多个构建工具
熟练掌握 JavaScript、ES6、TypeScript 等语言,熟悉函数式编程、面向对象编程等编程范式
熟悉前端组件化开发,熟练掌握 React、Vue.js、Web Components 等多个组件化框架
熟悉前端性能优化、页面渲染优化、代码优化等多个方面,具有丰富的实践经验
熟悉前端自动化测试、单元测试、集成测试等多个测试领域,拥有良好的测试思维
熟悉前端安全、SEO 等方面的知识,能够针对不同的业务场景提供解决方案
案例三:承担团队技术选型工作,执行能力强,注重前端标准化,在部门内部推行Eslint Commitlint以及标准落地
深入理解 React,Vue,并研究过其内部实现
深入理解Webpack, vite,能够编写Babel Loader,Plugin进行工程化能力输出。
有大型微前端SaaS平台经验,跨团队协同能力强,对前端对性能优化、前端安全等也有一定的应用与思考
喜欢分享,推动团队内部技术分享并担任导师;工作认真负责注重效率,第一家公司获得过年度优秀员工,目前公司连续3个季度获得季度优秀员工。Q1带领前端小组配合后端测试,获得优秀团队称号
工作经历
⼯作经历不要花太多内容去写,也不要写传记,不要把公司做的大大小小的项目经历挨个列出来,恨不得写个短篇小说。⾯试官主要想看的就是每段⼯作经历的持续时间、担任的职责、工作成果、是否有⼤⼚的⼯作经验等。 减分行为:
- 频繁跳槽:⽐如三年换了四家公司,每个公司呆的时⻓不要超过⼀年;
- 常年初级岗:⽐如⼯作五六年之后依然在完成⼀些简单的项⽬开发;
- 工作无亮点: 在工作中没有任何亮点,底层小码农工。
工作经历如果你五年之内换了五、六、七家,那我建议你合并一下自己的经历。不要都往上写,hr看见就直接pass了。谁会要一个平均一年就换一份工作的人?注意,最近的两家一定要是真实的。 工作经历如何描述:
案例一: ABC 公司(2019年至今) 担任前端技术专家,主要负责公司前端技术选型、技术架构设计和前端团队管理。在该公司带领团队开发了多个大型前端项目,如 ABC 云平台、ABC 商城等,成功应用于业务中。在项目开发过程中,我负责前端技术选型、技术架构设计、代码质量管理、团队协作等方面工作。
案例二: XYZ 公司(2015年至2019年) 担任高级前端工程师,主要负责公司前端开发和项目管理。在该公司参与了多个大型前端项目的开发,如 XYZ 网站、XYZ 移动端应用等。在项目中,我负责前端架构设计、组件库开发、性能优化等方面工作,并担任项目Owner角色。
项目经历
项目经历对于我们来说,写在简历上不仅重要,在面试中更加重要,⼀个普通本科可以通过优秀的项⽬经历逆袭985,⼀个⼩⼚的员⼯也可以获得⼤⼚的⾯试机会。 所以项⽬经历的编写非常讲究,这是为后⾯⾯试部分铺路的绝佳机会,也是你给面试官展示你实践能力的绝佳机会。同样,项目写不好,也会让面试官对你的印象一落千丈。 先来看看什么样的简历比较烂。
一、流水账
项⽬经历流⽔账写法是绝⼤多数简历的通病,通篇下来就讲了⼀件事『我⼲了啥』。
反例:
- ⽤Vue、Vuex、Vue-router、axios等技术开发电商⽹站的前端部分
- 主要负责⾸⻚、店铺详情、商品详情、商品列表、订单详情、订单中⼼等相关⻚⾯的开发⼯作,与设计师与后端配合,可要⾼度还原设计稿。
仔细乍一看,还不如乍一看。全都是无用的信息。面试官get不到任何有用的点来跟你聊。项⽬经历是考察重点,⾯试官想知道候选⼈在⼀次项⽬经历中扮演的⻆⾊、负责的模块、碰到的问题、解决的思路、达成的效果以及最后的总结与沉淀**。 **⽽上⾯的描述只显示了我⼲了啥,所以这种项⽬描述⼏乎是没意义的,因为对于⾯试官⽽⾔他看不到有效信息,没有有效信息的项⽬描述基本就没价值了,如果这个时候你还没有⼤⼚经历或者名校背书,基本上也就凉了。
二、项目不要写太多
有的人为了突出自己有很多的项目经验,就写了一堆项目在上面,而且每个项目写的都不咋地。这种以数量突出质量的行为,在面试官眼中就会适得其反。我们的项目要以精为主,一般3-4个即可。1-2个亮点项目,2个辅助项目。 还有一些不能放的项目,比如:
- 后台管理系统不要超过1个,要写就要有难点在里面。
- demo项目:自己写练习项目不要放。
- 培训机构烂大街的项目:仿饿了么、仿qq⾳乐、仿美 团、仿去哪⼉、仿电商⽹站、仿⼤众点评。你写了,你就是刚培训出来的。
- 低质量的开源项目,star数很少,没有啥用户,没有啥技术的开源项目。
- 虚假项目:你如果随便从网上扒拉一个项目,不清楚业务逻辑,不清楚代码,不清楚难点,糊弄别人也糊弄自己,最后面试官随便问问就露馅了,最后害的是自己。
示例:
⽐如你说你优化了⼀个前端项⽬的⾸屏性能,降低了⽩屏时间,那么⾯试官对这个性能优化问题会进⾏深挖,来考察候选⼈的实际⽔平:
- 你的性能优化指标是怎么确定的?平均下来时间减短了多少?
- 你的性能是如何测试的?有两种主流的性能测试⽅法你是怎么选的?
- 你是根据哪些指标进⾏针对性优化的?
- 除了你说的这些优化⽅法还有没有想过通过xx方案来解决?
- 你的这个优化⽅法在实际操作中碰到过什么问题吗?有没有进⼀步做过测试?
- 我们假设这么⼀种情况,⽐如出现xxxx情况,你会怎么进⾏优化?
上面一系列的问题,在你不是虚假的项目情况下,你都有可能懵,更可能你胡编乱造的项目。这时候不仅需要的是我们实际在项目中做过性能优化,而且⼀定是在性能优化领域有⼀定知识储备的⼈。想到这里又想起了一句话:平时不烧香,临时抱佛脚。
三、不要写白话文
切忌使用大量的口语,大篇幅的讲述做项目的心路历程,我见过很多这种,感觉是没话硬讲。
四、合格的项目经历
那上面讲了这么多,什么样的项目才算合格? 合格的项⽬经历必须要有以下⼏点:
- 项⽬概述 :⽬的是让⾯试官理解项⽬,不是每个⼈⾯试官都做过你的那种项⽬,所以需⼀个简述⽅便⾯试官理解。
- 个⼈职责 :告诉⾯试官你在本项⽬中扮演的⻆⾊,是领导者?主导者?还是跟随者,你负责了哪些模块和任务,承担了多⼤的⼯作量,以此来评估你在团队中的作⽤。
- 项⽬难点:⽬的在于让⾯试官看到你碰到的技术难题,⽅便后续⾯试对项⽬进⾏⼀系列讨论。
- 解决方案:告诉面试官你遇到的项目难题使用了哪些解决方案(这一项可选),放在面试过程中也可以。
- ⼯作成果 :⾯试官需要看到你在做了上述⼯作到底达成了什么成绩,这个时候最好以数据说话,⽐如访问量、⽩屏时间等等
最好的⽅法就是⼀⾏⽂字简单得说清楚即可,反正项⽬⾯的时候会问到,到时候把准备的内容讲给⾯试官,掌握⾯试的主动权就是从项⽬经历这⼀栏中开始。 我们在聊项目的时候可以结合STAR法则: STAR法则:Situation, Task, Action, Result(情境、任务、行动、结果)的缩写,用于回答开放式面试问题,帮助应聘者清晰、简明地回答问题,同时突出自己的经验和能力。
项目案例一: 后台管理项目介绍:
- Situation(情境): 作为前端工程师参与开发了一款后台管理系统,该系统为企业提供了数据可视化、权限管理、用户管理、日志管理等多个模块,是一个功能丰富、用户友好的系统。
- Task(任务): 在项目中我主要负责前端页面的开发和优化,负责实现产品经理和 UI 设计师的设计稿,并保证页面的响应式和兼容性。
- Action(行动) : 技术选型 :使用 React 技术栈,使用 Ant Design、React Router 等第三方库。 页面开发 :根据设计稿,使用 HTML、CSS 和 JavaScript 完成页面开发,保证页面美观、简洁、易用。 优化体验 :使用懒加载和分页等技术来提升页面加载速度,使用缓存和预加载技术来优化用户体验。 兼容性处理:充分测试页面在不同浏览器、不同分辨率下的表现,使用 polyfill 和前缀来解决浏览器兼容性问题。
- Result(结果): 成功交付高质量的前端代码,保证项目的进度和质量。 页面响应速度明显提升,用户体验得到了优化,得到了用户的好评。 系统在不同浏览器、不同分辨率下均能正常显示,用户使用率稳步上升。 项目顺利上线并得到了用户的认可和好评。
通过以上 STAR 法则的描述,可以突出这个前端后台管理项目的重点:
- 使用了 React 技术栈,并且结合了 Ant Design 和 React Router 等第三方库。
- 实现了数据可视化、权限管理、用户管理、日志管理等多个模块,是一个功能丰富的后台管理系统。
- 实现了页面的响应式和兼容性处理,并使用了懒加载、缓存、预加载等技术来优化用户体验。
- 成功交付高质量的前端代码,保证了项目的进度和质量,得到了用户的认可和好评。
项目案例二: 微前端平台介绍
- Situation:我们团队在开发一款基于微服务架构的前端应用,需要将不同的子系统打包成独立的应用并进行集成部署,同时需要保证这些应用之间的协作和通信。
- Task:在这样的背景下,我担任了前端团队的技术负责人,负责搭建并维护微前端平台。
- Action:我基于微前端架构,使用了以下技术来实现这个项目: 1. 使用 Webpack 模块化打包应用,实现应用的独立部署和升级,同时利用 Webpack 提供的 DLL Plugin,实现公共代码的提取和缓存,减少应用之间的重复加载和性能消耗。 2. 使用自研的框架对微前端架构进行封装,将不同的子应用打包成独立的 JS 文件,并在主应用中进行动态加载和卸载,实现应用的按需加载和动态升级。 3. 使用 React 和 Redux 构建应用 UI 和状态管理,使用 Axios 处理 HTTP 请求,同时基于 OpenAPI 规范设计接口,并使用 Swagger UI 文档自动生成工具进行文档的管理和维护。
- Result:通过我和团队的努力,我们成功地搭建了一套稳定可靠、高效便捷的微前端平台,实现了不同子应用的独立部署和集成,保证了应用的高可用和稳定性,受到了业务方的好评和认可。
在这个项目中的亮点主要是:
- 设计和实现了基于 Webpack 和自研框架的微前端架构,为团队提供了高效稳定的开发环境和部署方案。
- 设计和实现了基于 OpenAPI 和 Swagger UI 的接口规范和文档管理,大大提高了接口的可维护性和可读性。
- 设计和实现了基于 React 和 Redux 的 UI 和状态管理,使得应用具备了高可用、高可维护和高扩展性的特点。
五、如何突出亮点
前端简历中的亮点描述是非常重要的,可以让你在众多应聘者中脱颖而出。以下是一些关于如何进行亮点描述的建议:
- 突出自己的独特技能:在亮点描述中,应该突出自己的独特技能,比如精通某个前端框架、拥有专业的设计能力等,这样可以让招聘人员更快地了解你的专业性和技术优势。
- 描述自己的项目成果:在亮点描述中,应该描述自己在项目中所取得的成果和贡献,比如优化了页面的性能、提高了用户体验、解决了重要的技术难题等,这样可以让招聘人员更清晰地了解你的工作能力和价值。
- 强调自己的领导能力:如果你曾经担任过项目负责人或团队负责人,可以在亮点描述中强调自己的领导能力和管理经验,这样可以让招聘人员更关注你的领导才能和团队管理能力。
- 强调自己的学习能力:在亮点描述中,应该强调自己的学习能力和自我提升的能力,比如通过学习新技术、阅读技术博客等来不断提高自己的技术水平,这样可以让招聘人员更看重你的潜力和成长性。
- 使用具体的数字来量化成果:在亮点描述中,可以使用具体的数字来量化自己的成果,比如完成了多少个项目、提高了多少页面的性能、优化了多少用户体验等,这样可以让招聘人员更直观地了解你的贡献和能力。
我们需要做的就是把我们觉得有亮点的地方,很有条理,很有体系化的表述出来,以及这件事给团队、公司、项目甚至的帮助到同事带来的价值点,外加对这些事情的思考和沉淀,形成体系化闭环就算很不错了,我们做好我们该做的,剩下的只能够交给运气,因为这件事确实存在视野差,就是人性中,你觉得和我觉得,在面试中现实是候选人是弱势群里,我们给够面试官的面子,聊的开心,什么事都可以能发生!
个人优势
最后一栏放个人优势,个人优势不是让你写一些能吃苦,抗压能力强,巴拉巴拉说一堆大家都说的废话,而是写一些自己在前端这个领域独有的优势,或者我竞争这个前端岗位有的优势。你可以放一放自己的博客,或者github,开源项目地址等等,注意里面啥内容都没有的你就不要放了,不要面试官看了很尴尬,也觉得你这人很虚浮,不真实。再比如,你在工作带过团队,当过前端负责人,独立负责过什么大型的、比较有难度的项目,在公司组织过/做过技术分享,制定过团队编码规范等等,这都是你的优势。你要体现的,就是你在之前的工作经历当中,有哪些沉淀过的行业通用技术,然后可以赋能到我们公司当中来。
如何复习
复习是要要计划的进行,分为两方面:基础知识跟项目知识。 基础知识就是面试八股文,找资料背。那很多人就在想,我背了很多,又忘了很多,无法串联起来怎么办?我这里教大家一个方法,就是利用思维导图。先列一个知识大纲,把要复习的知识点列出来,然后一个个知识点去复习,总结出关键字。 哪些知识点复习了,哪些没有复习,一目了然,再次复习的时候根据关键词记忆: 当我们面试之后,把面试的问题总结一遍,把不会的巩固扎实,然后记到我们大纲对应的知识中。下次再面试,会达到事半功倍的效果。因为跟我的面试经验,上一次问到的你不会的问题,下一次面试,大概率还会问到。
如何投简历
能收到更多的面试机会有很多的因素。你的简历,你的工作经历,你的学历都是你的敲门砖。当我们写好简历开始要面试的时候,首先,记住不要直接投自己意向高的公司,先去找2-3家对标公司去试试水,看看面试难度,感受一下面试强度。尤其是你的简历被内推的,一定要提前去面试适应一下再去内推,这样才会事半功倍。要学会取舍。不要什么公司都面,这样会浪费你的宝贵时间,长时间没有offer,会导致精神内耗,自信心受挫。自己意向的公司,一定要做好万全的准备再去面试和投递简历。可以先根据JD(job description),也就是职位描述,来大概了解他们想要找一个什么样的人,他们的业务方向主要是什么(可以问你的推荐人或者HR)?他们用的技术栈是什么?知己知彼,才能百战多胜。
面试中准备
面试注意事项
在面试中,一般根据公司规模、岗位级别、面试轮数和面试官风格,面试的问题,我们可以把它们简单归类为:项目经历、技能知识点和软素质。 一般公司至少有两轮技术面试 + HR 面试,第一轮面试官由比岗位略高一级的人担任,第二轮面试官由用人部门领导担任。 不同轮数考察侧重点不同。
第一轮面试主要确认简历真实性和基础技术能力,包括⼀部分算法和场景设计的⾯试题,所以主要会围绕项目经历和技能知识点;
第二轮面试还会深入考察简历中涉及的项⽬相关的业务知识、扮演⻆⾊、技术取舍、技术攻坚等来确认这个人是否适合岗位、团队,所以更偏重过往经历和软素质。
第三轮面试,也就是HR面,主要涉及⾏为⾯试,考察候选⼈是否价值观符合公司要求、⼯作稳定性如何、沟通协作能⼒如何等。
对于初级岗或者校招⽣会涉及⼀轮笔试,相当多的公司会在现场⾯之前进⾏⼀轮电话⾯试,⽬的是最快速有效地把不符合要求的候选⼈筛除,对于个别需要跨部⻔协作的岗位会涉及交叉⾯试,⽐如前端候选⼈会被后端的⾯试官⾯试,⼀些有管理需求的岗位或者重要岗位可能会涉及总监⾯试或者vp⾯。
关于项目经历
项目经历是最能体现一个程序员能力的部分,因此面试里大部分时间都在聊这个。 在项目经历上,作为面试者常见的问题有以下几种:
- 不重要的经历占比过多(比如刚毕业的时候做的简单项目花了半页纸)
- 经历普通,没有什么亮点(比如都是不知名项目,项目周期短、复杂度低、后台管理系统增删改查)
- 都是同质化的经历,看不出有成长和沉淀(比如都是 CRUD、if visible else gone)
出现这种情况,是因为我们没有从面试官的角度思考,不知道面试的时候对方都关注什么。 而面试官主要关注这三点:
- 之前做的项目有没有难度
- 项目经验和当前岗位需要的是否匹配
- 经过这些项目,这个人的能力有哪些成长
因此,我们在日常工作和准备面试时,可以这样做:
- 工作时有意识地选择更有复杂度的,虽然可能花的时间更多,但对自己的简历和以后发展都有好处
- 主动去解决项目里的问题,解决问题是能力提升的快车道,解决的问题越多、能力会越强
- 解决典型的问题后,及时思考问题的本质是什么、如何解决同一类问题、沉淀为文章、记录到简历,这些都是你的亮点
- 经常复盘,除了公司要求的复盘,更要做自己的复盘,复盘这段时间里有没有成长
- 简历上,要凸显自己在项目面试的挑战、解决的问题,写出自己如何解决的、用到什么技术方案
- 投简历时,根据对方业务类型和岗位要求,适当的调整项目经历里的重点,突出匹配的部分
- 面试时,要强调自己在项目里的取得的成果、在其中的角色、得到什么可复制的经验
关于技能知识点
相较于项目经历,技能知识点更关键,因为它决定了面试者是否能够胜任岗位。 在技能知识点方面,面试者常见的问题有这些:
- 不胜任岗位:基础不扎实,不熟悉常用库的原理
- 技术不对口:没有岗位需要的领域技术
- 技术过剩:能力远远超出岗位要求
第一种情况就是我们常说的"技术不行"。很多人仅仅在工作里遇到不会的才学习,工作多年也没有自己的知识体系,在面试的时候很容易被基础知识点问倒,还给自己找理由说"我是高级开发还问这么细节的,面试官只会八股文"。框架也是浅尝辄止,会用就不再深入学了,这在面试的时候也很容易被问住。
第二种情况,是岗位工作内容属于细分领域,但面试者不具备这方面的经验,比如音视频、跨端等。为了避免这种情况,我们需要打造自己的细分领域技能,最好有一个擅长的方向,越早越好。
第三种情况简单的来说就是"太贵了"。有时候一些资深点的开发面试被挂掉,并不是因为你的能力有问题,而是因为岗位的预算有限。大部分业务需求都是增删改查和界面展示,并不需要多复杂的经验。这种情况下,要么再去看看更高级的岗位,要么降低预期。
一般在面试的人里,通过面试的都有这些特点:
- 技术扎实:不仅仅基础好,还有深度
- 解决过复杂的问题:项目经验里除了完成业务需求,也有做一些有挑战的事
有些人的简历上只写项目经历不写技能知识点,对此我是反对的,这样做增加了面试官了解你的成本。问项目经历的目的还是想确认你有什么能力,为什么不直接明了的写清楚呢?
关于软素质
程序员的日常工作里,除了写代码还需要做这些事:
- 理解业务的重点和不同需求的核心点,和其他同事协作完成
- 从技术角度,对需求提出自己的思考和建议,反馈给其他人
- 负责某个具体的业务/方向,成为这个方面所有问题的处理者
如何面试才能掌握主动权
如何做自我介绍
面试你的⾯试官很可能是刚拿到你的简历,他需要在你⾃我介绍的时候快速浏览你的简历,因为技术⾯试的⾯试官很多是⼀线的员⼯,⾯试候选⼈只是其⼯作中的⼀⼩部分,很多情况下是没有提前看过你的简历的。所以,你要再自我介绍的时候告诉面试官关键的一些信息,来引导他面试你,从而占据主动,把你会的讲出来。
知道了以上原因,我们才能进⾏准备更好的⾃我介绍。 做好自我介绍必须具备以下三点: 1. 个⼈信息 : ⾄少要体现出⾃⼰的姓名、岗位和⼯作年限,应届⽣则必须要介绍⾃⼰的教育背景,如果⾃⼰的前东家是个⼤⼚最好提及,⾃⼰的学历是亮点最好提及,其他的什么有没有⼥朋友、是不是独⽣⼦没⼈在意,不要占⽤篇幅。这个部分重点在于你是谁?
2. 技术能⼒ : 简要地介绍⾃⼰的技术栈,切忌把⾃⼰只是简单使⽤过,写过⼏个Demo或者看了看⽂档的所谓「技术栈」也说出来,⼀旦后⾯问到算是⾃找尴尬。这个部分的重点在于你会什么?
3. 技能擅⻓: 重点介绍⾃⼰擅⻓的技术,⽐如性能优化、⾼并发、系统架构设计或者是沟通协调能⼒等等,切忌夸⼤其词,要实事求是,这是之后考察的重点。这个部分重点⾃在于**你擅⻓什么?**这里面你可以加一些重点项目,或者之前攻克的难点等等,来引导面试官向你提问。
如果是语言组织能力弱的,可以提前组织语言,写下来,然后自己背下来,最不济也得把提前总结的关键信息传达给面试官。⾃我介绍的时间最好控制在1-3分钟之间,这些时间⾜够⾯试官把你的简历过⼀遍了,⾯试官看完简历后正好接着你的⾃我介绍进⾏提问是最舒服的节奏,别上来开始10分钟的演讲,⾯试官等待的时候会很尴尬,这么⻓的篇幅说明你的⾃我介绍⼀定是流⽔账式的。
预判可能提问的问题
⽐如你擅⻓前端的性能优化,在⾃我介绍的部分已经做好了引导,接下来⾯试官⼀定会重点考察你性能优化的能⼒,很可能会涉及很有深度的问题,即使你擅⻓这⽅⾯的技术,但是如果没有准备也可能临场乱了阵脚.。 一、针对某个场景进行自我多重提问,挖掘潜在的知识点 ⾃我多重提问的意思是,当⼀个技术问题抛出的时候,你可能⾯对更深层次的追问。
案例一: 依旧以前端性能优化为例,⾯试官可能的提问:
- 你把这个⼿机端的⽩屏时间减少了150%以上,是从哪些⽅⾯⼊⼿优化的?这个问题即使你没做过前端性能优化也能回答个七七⼋⼋,⽆⾮是组件分割、缓存、tree shaking等等,这是第⼀重⽐较浅的问题
- 我看你⽤webpack中SplitChunksPlugin这个插件进⾏分chunk的,你分chunk的取舍是什么?哪些库分在同⼀个chunk,哪些应该分开你是如何考虑的?如果你提到了SplitChunksPlugin插件可能会有类似的追问,如果没有实际操作过的候选⼈这个时候就难以招架了,这个过程⼀定是需要⼀定的试错和取舍的.
- 在分chunk的过程中有没有遇到什么坑?怎么解决的?其实SplitChunksPlugin这个插件有⼀个暗坑,那就是chunid⾃增性导致id不固定唯⼀,很可能⼀个新依赖就导致id全部打乱,使得http缓存失效.
以上只是针对SplitChunksPlugin插件相关的优化提问,当然也可能从你的性能测试⻆度、代码层⾯进⾏考察,但是思路是类似的。因此不能把⾃⼰准备的问题答案停留在⼀个很浅显的层⾯,⼀⽅⾯⽆法展示⾃⼰的技术深度,另⼀⽅⾯在⾯试官的深度体情况下容易丢分,因此在⾃⼰的答案后⾯多进⾏⾃我的追问,看⼀看能不能把问题做的更深⼊。
运用star法则
通常运⽤到这个法则的是项⽬⾯,⽐如面试官让你介绍⼀下你最得意的回一个项⽬ star的法则有这⼏个要点:
- 项⽬背景: 简要说⼀下项⽬的背景,让⾯试官知道这个项⽬是做什么的
- 个⼈⻆⾊: 让⾯试官知道你在这个项⽬中扮演的⻆⾊
- 难点: 让⾯试官知道你在项⽬开发过程中碰到的难点
- 解决⽅案: 针对上⾯的难点你有哪⼀些解决⽅案,是如何结合业务进⾏取舍的
- 总结沉淀: 在攻克上述的难点后有没有沉淀出⼀套通⽤的解决⽅案,有没有将⾃⼰的⽅案在⼤部⻔进⾏推⼴等等
重点就在于后⾯三条,也是最体现你个⼈综合素质的⼀部分,⾯试官一般⾮常欣赏那种可以发现问题、找到多种⽅案、能对多种⽅案进⾏⽐对取舍还可以总结沉淀出通⽤解决⽅案回馈团队的⼈。从上述⼏点可以体现出⼀个⼈的技术热情、解决问题的能⼒和总结提⾼的能⼒。
刻意引导
我们在回答⾯试官提问的时候也可以做到刻意引导,比如面试官在提问了一个问题,你从这个问题可以延伸出另外的知识点和问题,然后引导面试官发问或者你直接讲出来。
案例一: 面试官:Vue如何实现双向绑定的?
很多候选⼈⽼⽼实实答了 object.defineproperty 如何如何操作,然后就没有了,其实你可以在回答完之后加上⼀嘴「Vue 3.0则选择了更好⽤的Proxy来替代object.defineproperty」或者「除了object.defineproperty这种数据劫持的⽅式,观察者模式和脏检查都可以实现双向绑定」,⾯试官⼤概率会问「Proxy好在哪?」或者「聊聊脏检查」等等,这样下⼀个问题就会依然在你的可控范围内。你只要把相关的知识点研究明白了,后面的问题都是在你的掌控范围之内。同样,我们在复习的时候就要学会这样去思考,才能复习的更深入。
如何向面试官提问
面试是一个双向选择,所以面试后一般会有提问环节。在提问环节,候选人不能什么都不问,不要问薪水待遇、是否加班、我通过面试了没有之类的问题。 一般向面试官提问,分为两种情况:
- 第一种:面试中,针对面试官的问题,你没听懂向面试官提问。
- 第二种:面试结束,你向面试官提问。
对于第一种,当你没听懂面试官的问题时,你要再次确认清楚面试官的问题,不要你没有听懂,就开始稀里糊涂,驴头不对马嘴的回答一通。也不要针对某个问题,反问面试官,万一你问的他也不会呢?其实有的面试官问你问题他也不是很清晰的能够回答你的。所以为了避免尴尬的场面发生,最好不要问这种愚蠢的问题了。 对于第二种,是面试结束后面试官会让你询问一些有关公司的情况。一般问题如下:
- 团队规模、技术栈、业务方向、公司开发流程;
- 对于这个岗位对候选人的要求是什么?本职位具体做的工作是什么?工作的规划是什么?这几个问题如果面试官能好好回答你的话,就算你后面没通过面试,面的多了,你自然而然的知道你在下次面试的时候就有个大概的个方向了;
- 公司对员工的培训、考核、晋升等情况。
核心尽量围绕你的岗位进⾏提问,这可以使得你更快得熟悉你的⼯作内容,也让⾯试官看到你对此岗位的兴趣和热情,重要的是这些问题对于⾯试官⽽⾔既可以简略回答,也可以详细的给你讲解,如果他很热情得跟你介绍此岗位相关的情况,说明你可能表现得不错,否则的话,你可能不在他的备选名单⾥。
面试礼仪
- 不要迟到
- 不要毁约,临时有事不能面试,提前通知HR取消面试
- 面试过程中找个安静的环境
- 准备好自己的设备,人家让你共享屏幕写个代码,半天搞不好
如何通过HR面试
一般来讲,到了HR面试,基本就是通过了。不过,现在的这个时长环境,有人比你技术好,比你要的薪资低,就是卷你,这种人的竞争是最大的,HR肯定是优先考虑的。
HR⾯的⽬的
HR⾯往往是把控⼈才质量的最后⼀关,与前⾯的技术⾯不同,HR⾯往往侧重员⼯⻛险的评估与基本的员⼯素质
- 录⽤⻛险评估,这部分是评估候选⼈是否具备稳定性,是否会带来额外的管理⻛险,是否能⻢上胜任⼯作,⽐如频繁的跳槽会带了稳定性的⻛险,HR会慎重考虑这⼀点,⽐如在⾯试中候选⼈体现出了「杠精」潜质,HR会担⼼候选⼈在⼯作中会难以与他⼈协作或者不服从管理,带来管理⻛险,再⽐如,虽然国家明确规定在招聘中不得有性别、年龄等歧视,但是⼀个⼤龄已婚妇⼥会有近期产⼦的可能性,可能会有⻓期的产假,HR也会做出评估。
- 员⼯素质评估,这部分评估候选⼈是否具备职场的基本素质,是否有基本的沟通能⼒,是否有团队精神和合作意识等等,⽐如⼀个表现极为内向的候选⼈,HR可能会对其沟通能⼒产⽣怀疑. 所以在与HR交流中要尽量保持踏实稳重、积极乐观的态度,切忌暴露出夸夸其谈、负能量、浮躁等性格缺陷。
HR常见面试题
问题1:请自我介绍一下
回答重点:能在30秒内展现和岗位的匹配度 必过公式:基本信息+工作经历+胜任力+性格特征 参考回答:不要读简历,基本信息简单说,工作经历只讲一个最成功的项目经历,胜任力要围绕着招聘JD讲自己最突出的技能,性格特征要突出与众不同但又非常积极的一面。
问题2:请说一个你收获最大的项目
回答重点:逻辑清晰,重点突出回答公式:STAR法则 参考回答:说一个你最有成就感的项目,项目不一定要大,但一定要有意义,要说清楚项目的来龙去脉和自己在其中发挥的核心作用。用SATR法则说明你的项目背景、你的目标、你的动作和项目结果。
问题3:你对我们公司了解多少
回答重点:提前做功课 回答公式:公司战略+个人看法 参考回答:我了解到咱们公司的企业战略和价值观是什么什么,这也恰好和我个人的职业目标和价值观相吻合我认为贵公司的战略真正是从商业的底层逻辑出发,致力于为客户提供最有效的解决方案,而我自己就是一个解决问题导向的人,相信我也会很快融入到公司的企业文化中。
问题4:你认为自己最大的缺点是什么
回答重点:不要讲跟目标岗位相关的缺点回答公式:缺点+原因+改正情况 参考回答:前领导总说我工作太着急,后来我发现是自己的时间管理有问题,为此我还专门报了一门时间管理的课,结合业务实操后,发现自己在这方面提升明显,相信不远的将来就可以得到彻底的改善。
问题5:五年内你对自己有什么职业规划吗
回答重点:说软规划,不说硬指标 回答公式:对业务的思考+自己的业务价值观+目标 参考回答:不要说职位、薪资等硬指标,要体现出对业务的专一。比如我希望在五年内始终如一的服务某一类客户,深刻了解行业和客户需求,能站在更高的角度上为客户解决问题,最终成为行业专家。
问题6:你接受加班吗回答重点:能接受
回答公式:表明态度+结果导向 参考回答:愿意接受加班,如果是自己职责范围的工作那就不算加班,但我一般都会结果导向的看问题,加班只是过程,解决问题,降本增效才是工作的目的,在工作中我会多去寻找高效的工作方法,争取讲无效工作压缩到最少。
问题7:来了新公司,你如何快速进入适应工作并进入状态。
回答重点:考虑问题全面,重视调研回答公式:了解业务+明确目标 参考回答:首先我会与领导和高频对接人充分沟通业务目标,明确自己的职责和角色;其次我会充分利用公司的知识资源,让自己快速积累业务认知。最后我会通过拆解整体业务,按照工作优先级四象限找出最重要紧急的工作优先处理,同时在工作中积累业务感觉。
问题8: 你能给我们公司带来什么?
回答重点:复盘优势,数据验证 回答公式:重申优势+前岗位的业绩 参考回答:我的核心优势是什么,这个优势,让我在前公司的某某项目中,获得了什么样的成绩,这个成绩比过往高出多少,比同事高出多少,比同行高出多少。希望我这个优势也能应用到咱们公司来。
问题9:你对薪资的要求
回答重点:求上得中 回答公式:薪资目标+原因 参考回答:我的薪资目标是多少多少,主要是因为,此前我做过调研,同行业下跟我同级别的人的薪资大概是多少多少,我认为自己的能力和价值应该在行业内能排到30%,所以我希望在这个基础上有20%的溢价。
问题10: 你领导同事对你的评价如何
回答重点:围绕个人品性回答回答公式:个人品性+举例 参考回答:我领导和同事都觉得我是一个靠谱的人,说到就能做到,而且经常能超预期完成任务。比如领导让我做某个业务的客户梳理,我不仅能按照领导要求完成工作,还能提出自己的见解和解决方案。
问题11:你现在有其他的offer吗
回答重点:表明对该公司更有兴趣 回答公式: 有offer+对现公司有兴趣+原因 参考回答:确实有公司给我offer,但是我更想来咱们公司,因为咱们公司在业界有口皆碑,这个岗位也是我想做的,而且通过跟您沟通,您给我的感受也非常好,这也能侧面反映咱们公司的人文关怀
问题12: 如果你被录用后,工作了一段时间发现自己不适合这个岗位,你会怎么办
回答重点:有解决问题的态度 回答公式:分析原因+给出方案+表达态度 参考回答: 短期的不适应可能是业务不熟导致的,这也是正常现象,我会尽快熟悉业务,融入环境,深入了解业务本质,相信只需要两个月的时间,我就能尽快调整状态。
问题13:你有什么问题要问我吗
回答重点:要表现出对岗位的兴趣,体现上进心,有想法有欲望 回答公式:明确兴趣+了解岗位职责+了解晋升机制 参考回答:我仔细看过了招聘JD,我对这个岗位非常有兴趣,且我认为自己能够胜任这个岗位,不过招聘JD上饿某某职责,具体的工作内容我还是不是很清晰,您能帮我再解释一下吗?
问题14:如果我们没有录取你,你下步有什么打算
回答重点:展示锲而不舍的精神 回答公式:认可结果+找出不足+努力方向 参考回答:如果没被贵公司录用,说明我个人的能力与公司岗位的匹配度还有一定偏差,未来我会分析原因,总结问题,然后针对性的对自己提升,当自己满足了公司的招聘条件后,还会投递公司的岗位。
问题15: 你的兴趣爱好是什么
回答重点:体现上进心 回答公式:兴趣爱好+提炼能力+举例 参考回答:我的兴趣爱好是看书,看书不仅可以增长见识,还可以让自己拥有解决问题的方法,我每年的阅读量大约是50本书,我最近读的一本书是《XXX》,我从这本书中学到了XXX
问题16: 你为什么从上家公司离职
回答重点:避免一切负面情绪 回答公式:原因+自己的考虑+目标 参考回答:因为上一家公司进行了组织结构的调整,导致自己的核心能力有点发挥不出来,考虑到自己的职业规划,我决定换工作,希望能够找一个像贵公司这样的大平台和更符合自己职业规划的岗位,恰好这个岗位就是我想做的。
问题17:当你和领导意见不一致,你会怎么办
回答重点:目标导向 回答公示:分析原因+明确目标+求同存异 参考回答:如果我和领导意见不一致,很有可能是我们对业务目标的理解不同,这时候需要深入的沟通,先在目标层面达成一致,然后分析各自的实现路径,主动向领导说出自己的顾虑,但最终还是会尊重领导的意见。
如何跟HR谈薪资
HR与你谈论薪资经常有如下套路:
- HR: 您期望的薪资是多少?
- 你: 25K。
OK,你已经被HR成功套路。这个时候你的最⾼价就是25K了,然后HR会顺着这个价往下砍,所以你最终的薪资⼀般都会低于25K。等你接到offer,你的⼼⾥肯定充满了各种"悔恨":其实当时报价26、27甚⾄28、29也是可以的。
正确的回答可以这样,并且还能够反套路⼀下HR:
- HR: 您期望的薪资是多少?
- 你: 就我的⾯试表现,贵公司最⾼可以给多少薪⽔?
如果经验不够⽼道的HR可能就真会说出⼀个报价(如25K)来,然后,你就可以很开⼼地顺着这个价慢慢地往上谈了。所以这种情况下,你最终的薪资肯定是⼤于25K的。当然,经验⽼道的HR会给你⼀句很官⽅的套话:
- HR: 您期望的薪资是多少?
- 你: 就我的⾯试表现,贵公司最⾼可以给多少薪⽔?
- HR: 这个暂且没法确定,要结合您⼏轮⾯试结果和⽤⼈部⻔的意⻅来综合评定。
虽然薪资很重要,但是我个⼈觉得这不是最重要的。我有以下建议:
- 如果你觉得你技术⾯试效果很好,可以报⼀个⾼⼀点的薪资,这样如果HR想要你,会找你商量的。
- 如果你觉得技术⾯试效果⼀般,但是你⽐较想进这家公司,可以报⼀个折中的薪资。
- 如果你觉得⾯试效果很好,但是你不想进这家公司,你可以适当"漫天要价"⼀下。
- 如果你觉得⾯试效果不好,但是你想进这家公司,你可以开⼀个稍微低⼀点的⼯资。
需要注意的是,⾯试求职是⼀个双向选择的过程。⾯试应该做到不卑不亢,千万不要因为⾯试结果不好,就低声下⽓地乞求⼯作,每个⼈的⼯作经历和经验都是不⼀样的,技术⾯试不好,知道⾃⼰的短板针对性地补缺补差就⾏,⽽不是在⼈事关系上动歪脑筋。
我们面试一定要有底气,自信,自己按照上面的估值盘算好了想要的薪酬,那么应该有底气地说出来,并且给出具体的原因,比如:
- 我已经对贵公司的薪酬范围和级别有了大概的了解,我现在的水平大概范围是多少
- 现在公司很快就有调薪机会,自己已经很久没有调薪,年前跳槽会损失年终奖等情况
- 现在我已经有某个公司多少 K 的 offer
如果 HR 表示你想要的薪酬不能满足,这时候你应该给出自己评估的依据,是根据行业职级标准还是自己现有薪酬范围,这样做到有理有据。
面试后的总结
面试总结特别重要, 第一能让你知道现在公司一般都问什么面试题,然后接下来有针对性的复习。 第二能让你知道自己哪里的不足之处,接下里好好弥补,在后面面试碰到类似的问题,不能摔倒两次 总结我一般都是用思维导图,记录关键信息:
写在最后
最后祝大家顺利找到自己满意的工作,前端2023年很难,未来几年也不好过,大家既然选择了这条赛道,就要勇往直前,加油,干就完了。
总的来说,今年找工作的人不少,市面上的岗位没有往年那么多。如果你最近要换工作,最好做足准备。做好后面的规划再换、做好准备再投简历、经历整理清楚再面试。 另外,博主正在整理面试题,文章中提到的思维导图也可以发给大家,关注公众号「白哥学前端」自取。