自我介绍一下
先介绍下笔者个人的信息,然后大家根据自身情况来看这篇面经适不适合你,毕竟找工作要考虑的因素太多,学历、当前公司、工作经验、年限等等都有关系,可以让 不感兴趣的同学 或者 认为本文不能带来太多有价值的内容的同学 提前滑走,避免浪费您宝贵的时间!
好了,废话不多说!以下是笔者换工作的基本信息:
- 4.2年前端开发经验
- 98年、本科学历、19年毕业
- 换工作之前在一家 外包公司的自研部门(毕业就呆过这一家公司)
- 项目经验: B端低代码、组件库、uniapp小程序、类似vue-admin的项目模版开发
- 主Vue
- 9月16开始投简历,11月已入职(mt)
好了,以上就是一些笔者的基本信息,大家根据自身情况来判断接下来的信息对你有没有价值!
笔者没有面试太多的公司,只有字节、美团。接下来我将把我从开始准备简历到拿到offer
的经历毫无保留的分享给你!
找工作前准备
正所谓“机会是留给有准备的人的”,如果你跟我一样是“勤奋型”的选手(天赋型选手:聪明过人、天分过人、算法题拿起键盘就能敲出来的、技术能力超强、带大厂光环且能力超群、等等就这种人可能就不需要像我下面说的一样。),那么在开始找工作之前你一定要提前规划好准备工作。那么准备工作应该包含哪些内容? 就笔者个人而言,包括如下几个部分:
- 算法题。
- 一些能够拿出手展示的东西。
- 以往工作回顾总结。
- 个人简历准备。
- 面前准备。
各位掘友根据实际情况来即可。
算法题部分
- 必修课
- 在 leecode 刷即可,一定要把自己的状态刷出来,并且要注意总结方法。
- 重点:字符串类、数组类、树类、动态规划类、排序类、链表类…
- 题不在多,重点在于你要通过刷一类题、真正掌握一类题
- 题目以 简单、中等难度为主,困难的可以刷几道高频题
以下是我的 leecode 刷题记录:
可以看到,我刷的题不算很多!
个人觉得比较重要的一些题,归类划分:(这个有需要的投笔者一票,然后私我,此处不放太多图了)
参考资料:
- 我的博客中算法题总结
- 修言大佬的掘金小册👍强烈推荐,系统性学习算法,我就是通过这个学习的!
能够拿出手展示的东西
什么是能够拿出手展示的东西?我相信掘友们一定了解的,其实就是一些展示你个人能力的作品,可以是:
- 掘金的原创技术文章(比如在简历中写到,你是掘金优秀创作者,其他平台当然也可以)
- 知名开源项目的贡献者
- star很多那种个人仓库
- 自己平时总结记录的博客
- 等等都可以
这些都能够在一定程度上提升你的竞争力,特别是对于像我一样是本科学历的同学在这方面尤其需要突出自己。不然现在大环境这么卷、供不应求的情况下,如果985、211、普通本科的同学能力都差不多,你凭什么认为公司会选择普通本科 而不选择 985、211。你需要向公司证明你的其他优势(总结能力、热爱技术、有追求)。
说个不好听的笑话,你自我介绍说你学习能力强、热爱技术,但是你平时博客都不写,怎么证明呢对吧!
以往工作回顾总结
这个非常重要,有些同学可能对这部分草草了之,那就会有什么问题?
- 简历中的工作项目经验没重点、没内容、没干货。
- 面试时问到项目,回答不熟练、甚至脱节。
以往工作是面试中一定会考察的内容,面试官考察你的很多方面都是通过项目中的细节、思考、你做了什么、你能做什么、你擅长什么、以及你对项目的熟悉程度、你是真的参与这个项目还是写了凑数等等。
个人建议:
- 一定要对以往工作内容进行复盘总结,提炼精华。
- 必须能讲清楚做了什么、然后解决了什么难题(性能优化、提升效率等),因为面试会问。有些同学可能会说,平时都在增删改查,能有什么难题。其实即使不是你完成的,你也可以在看懂掌握后说是你做的,这个我觉得不算造假。
以下是笔者的工作复盘(仅提供参考):
个人简历准备
上面的内容,其实都是在为简历做准备,毕竟你都要写到简历中的,一环扣一环。简历的重要性就不需要说了吧!这可是敲门砖,你的简历决定了你有没有机会面试,重要程度不言而喻。我说几点:
- 最基本的:错别字不能有、语句要通顺,技术栈的名称最好使用跟官方一样的大小写(比如:Vue.js👍, vue👎)、排版要简洁优雅。
- 内容要取精华、去糟粕。
- 简历必要信息:出生年月、姓名、性别、学校专业、邮箱、英语能力、手机号,其他的最好别写,照片可不要。
关于怎么写简历,我推荐知乎上慕课网的回答一名优秀的前端开发工程师的简历是什么样的,包括我个人也是仔细阅读这个后写的(花了两天时间)。
关于用什么写,我推荐木及简历。
关于简历模版,我用的这个(木及简历模版中心免费使用):
各位掘友,一定要注意每个地方的细节,细节真的决定成败!
面前准备
面前准备不可谓不重要,一个好的开场,能增加你50%的成功率。那么面前要准备哪些内容,我通过我的经验来和大家简单聊聊:
- 自我介绍(忌讳流水账式,要突出自己的优势,你之前做了什么、你擅长做什么、你的优势是什么、你有什么能拿出手展示的、要简洁干练、突出重点、自信表达),要做到这些还是需要下一些功夫的,至少你的提前写好草稿。
- 离职原因,建议提前想好。(忌讳吐槽)
- 准备一些问题最后问面试官。
- 调整好心态,不紧张,当成聊天就行,自信大方的表达。
- 面试切记不要装逼。
好了,接下来就是面经环节!
面经
美团
一面
-
自我介绍
-
性能优化指标相关
-
项目难点是什么,如何解决?(靠自己总结了)
-
原型链(这个到处都有)
-
防抖节流(我的博客中性能优化部分有)
-
手写防抖,注意下细节,比如函数调用的this指向,以及防抖默认执行一次,最好自己写的时候就把这些考虑在里面,不要等面试官提示你。(我的博客中性能优化部分有)
-
从URL输入到渲染(可参考我的博客)
-
eventloop 先讲理解,再做一个题。(可参考我的文章一篇文章搞定 JS 事件循环)
-
设计模式(可参考我的专栏前端需要掌握的设计模式)
-
我的实现:
考察内容都是比较常用和必会的,没有让你造火箭,给美团面试官点赞!
二面
- 自我介绍
- 主要问的低代码项目的一些细节实现
- 为什么要离职
- 手写题:计算树的最大深度(这个题可参考二叉树的最大深度,道理一样)
- 手写题:实现一个类似es6模版字符串解析的功能(可参考我的博客手写部分)
这一面的话,过往项目中的细节考察较多,这也说明了之前说的一定要进行以往的工作复盘是必要的。手写题也是中等难度偏实用性的。
三面
- 自我介绍
- 问每一个项目
- 低码项目是重点考察(手画架构图并讲解)问了很多问题(对自己写的项目一定要做出复盘总结,提取概要,关键技术点一定要知道)
- 项目的一个投入产出比了解吗
- 平时开发会不会写设计,设计方案中需要哪些东西
- 对加班的看法
- 代码质量
- 埋点
- 设计模式
- 我的技术栈是Vue,但是招聘岗位的技术栈是React,微信小程序,问如果我能通过面试,如何快速融入工作中。
这一面的话,项目细节还是重点,再次说明进行工作复盘的重要性!其次是比较轻松的一些话题,这些问题没有标准答案。
HRBP面试
这个就不分享了,想了解的私我吧。
字节-平台岗
一面
这是凉面经
- Vue双向绑定的原理
- 响应式原理
- Vue3在响应式方面对比Vue2 性能方面有哪些提升(参考Vue3带来了哪些更新和优化)
- 在Vue中如何抽取公共逻辑复用(参考:4种方案带你探索 Vue.js 代码复用的前世今生)
- 你说的这几种复用的方式有哪些优缺点,以及它们适用于哪些场景,能举一些例子吗(参考:4种方案带你探索 Vue.js 代码复用的前世今生)
- 项目介绍 及 一些具体实现细节
- 手写题 Promise 并发控制(我的博客手写部分)
需要注意区分Vue双向绑定的原理、响应式原理,不要回答混了。关于Vue的题可参考我的专栏进阶Vue.js或者博客中Vue部分,以及掘金上的很多总结。
字节——飞书
飞书总共三面。也是凉面经
一面
- 自我介绍
- 项目介绍 及 项目问答(项目细节的实现、项目的难点、做过哪些优化)
- 页面性能优化的手段有哪些(我的博客——性能优化部分,有常用的性能优化总结)
- webpack 的 loader 和 plugin 是什么,有没有自己写过loader、plugin
- loader可以改变输出结果吗
- 常用的 plugin 有哪些
- 提到了 post-css,预处理 和 后处理 是什么
- webpack 如何实现的模块懒加载
- 滚动懒加载(参考:也许这是Vue3最简单的懒加载方案了)
- http 缓存(我的博客有)
- 项目中使用哪种缓存
- babel-loader 的输入输出是什么?
- 代码题——Promise按顺序输出(我的博客手写部分)
关于webpack的面试,我推荐一位掘友的文章:「吐血整理」再来一打Webpack面试题
二面
-
自我介绍
-
低代码项目介绍
-
各种项目中的细节实现提问
-
Vue2 和 Vue3 的区别
- 响应式方面
- 性能提升方面(静态节点提升、编译优化、块优化、tree Shaking、等等)
- composition Api 方面(代码逻辑组织及其复用)
- 渲染函数h的变化、插槽的变化
- watchEffect
- 等等
-
如果你的项目要升级 Vue3,你会怎么做
-
项目的发布流程是怎么样的?有统一管理项目的发布流程的东西吗?
-
如果让你实现一个管理项目的发布流程的东西,你会怎么做?
-
手写题:字符串的最长公共前缀-简单(leetcode.cn/problems/lo…,先实现,再讲思路)
参考实现:
关于Vue的题可参考我的专栏[进阶Vue.js]、博客。
三面
- 自我介绍
- 项目提问(主要是一些项目上的痛点提问,问如何优化,问具体思路)
- 拖拽相关的问题(先说哪些方案、其次是抛开拖拽库不谈、说说h5 的 drag、如果不用drag,还有什么别的方式能够实现?追着问了很久)
- WebAssembly 了解过吗?
- 代码考核,不难,但是写的不好、异常处理、边界处理的不好。(不严谨)
这一面主要是偏技术广度和深度方面,个人确实表现不是很好,意料之中的没过,很遗憾!各位加油!
总结
历时两个月,成功进入了大厂工作,笔者运气比较好(实力不够,运气来凑)。笔者只参加了这两个公司的面试,这些问题的话也是笔者真实经历记录下来的,还有面试上的准备,也是笔者的一个真实案例,提供给需要的同学参考,希望这篇文章能对你有所帮助。除此之外,再给掘友们两个建议:
- 记录一下每一次面试的问题进行一个复盘,边面试边进步,你会越来越自信! 笔者一开始也是比较不自信的(你说我一个外包的自研部门,谁管你自研不自研啊,公司就不行,凭啥面大厂?但是经过一两次面试成功后,慢慢就变的自信了。)
- 要诚实,这是底线,没有哪个公司会接受不诚信的人。
如果掘友们有什么想进一步了解沟通的,不管是面试资料也好,写简历也好,还是一些疑惑都可以私我!我都会抽空一一回复。
最后,祝各位想换工作的都能如愿以偿!如果你觉得本文写的还不错,希望你能给我投上两票,不胜感激!
相关链接:我的博客
原文链接:https://juejin.cn/post/7316202589603512347 作者:Lvzl