小公司前端进大厂了,热乎的备面经验与大厂面经来袭

哈喽大家好,我是Fine。

如今互联网就业环境依旧严峻,频频传出知名大厂优化裁员,这种形势下想年后看机会的小伙伴还要不要动呢?

还是那句话,不打无准备之仗,有跳槽念头的同学,要抓住当下的时间做好充足的准备,功在平时,临阵磨枪是很难出奇效的。今天为大家分享一位只有外包经验,普通本科工作4年的前端同学是如何做到跳槽到大厂的经历。这位同学的很多经验是很值得大家借鉴的,比如平时的积累与总结,面试前的准备,面试后的复盘。

文章来源掘金,以下是正文:

自我介绍一下

先介绍下笔者个人的信息,然后大家根据自身情况来看这篇面经适不适合你,毕竟找工作要考虑的因素太多,学历、当前公司、工作经验、年限等等都有关系,可以让 不感兴趣的同学 或者 认为本文不能带来太多有价值的内容的同学 提前滑走,避免浪费您宝贵的时间!

好了,废话不多说!以下是笔者换工作的基本信息:

  • 4.2年前端开发经验
  • 98年、本科学历、19年毕业
  • 换工作之前在一家 外包公司的自研部门(毕业就呆过这一家公司)
  • 项目经验:B端低代码、组件库、uniapp小程序、类似vue-admin的项目模版开发
  • 主Vue
  • 9月16开始投简历,11月已入职(mt)

好了,以上就是一些笔者的基本信息,大家根据自身情况来判断接下来的信息对你有没有价值!

笔者没有面试太多的公司,只有字节、美团。接下来我将把我从开始准备简历到拿到offer的经历毫无保留的分享给你!

找工作前准备

正所谓“机会是留给有准备的人的”,如果你跟我一样是“勤奋型”的选手(天赋型选手:聪明过人、天分过人、算法题拿起键盘就能敲出来的、技术能力超强、带大厂光环且能力超群、等等就这种人可能就不需要像我下面说的一样。),那么在开始找工作之前你一定要提前规划好准备工作。那么准备工作应该包含哪些内容? 就笔者个人而言,包括如下几个部分:

  1. 算法题。
  2. 一些能够拿出手展示的东西。
  3. 以往工作回顾总结。
  4. 个人简历准备。
  5. 面前准备。

各位根据实际情况来即可。

算法题部分

  • 必修课
  • 在 leecode 刷即可,一定要把自己的状态刷出来,并且要注意总结方法。
  • 重点:字符串类、数组类、树类、动态规划类、排序类、链表类...
  • 题不在多,重点在于你要通过刷一类题、真正掌握一类题
  • 题目以 简单、中等难度为主,困难的可以刷几道高频题

以下是我的 leecode 刷题记录:

可以看到,我刷的题不算很多!

个人觉得比较重要的一些题,归类划分:

image.png

参考资料:

  • 修言大佬的掘金小册(https://s.juejin.cn/ds/i8an2Puo/)👍强烈推荐,系统性学习算法,我就是通过这个学习的!

能够拿出手展示的东西

什么是能够拿出手展示的东西?我相信掘友们一定了解的,其实就是一些展示你个人能力的作品,可以是:

  • 掘金的原创技术文章(比如在简历中写到,你是掘金优秀创作者,其他平台当然也可以)
  • 知名开源项目的贡献者
  • star很多那种个人仓库
  • 自己平时总结记录的博客
  • 等等都可以

这些都能够在一定程度上提升你的竞争力,特别是对于像我一样是本科学历的同学在这方面尤其需要突出自己。不然现在大环境这么卷、供不应求的情况下,如果985、211、普通本科的同学能力都差不多,你凭什么认为公司会选择普通本科 而不选择 985、211。你需要向公司证明你的其他优势(总结能力、热爱技术、有追求)。

说个不好听的笑话,你自我介绍说你学习能力强、热爱技术,但是你平时博客都不写,怎么证明呢对吧!

以往工作回顾总结

这个非常重要,有些同学可能对这部分草草了之,那就会有什么问题?

  • 简历中的工作项目经验没重点、没内容、没干货。
  • 面试时问到项目,回答不熟练、甚至脱节。

以往工作是面试中一定会考察的内容,面试官考察你的很多方面都是通过项目中的细节、思考、你做了什么、你能做什么、你擅长什么、以及你对项目的熟悉程度、你是真的参与这个项目还是写了凑数等等。

个人建议:

  • 一定要对以往工作内容进行复盘总结,提炼精华。
  • 必须能讲清楚做了什么、然后解决了什么难题(性能优化、提升效率等),因为面试会问。有些同学可能会说,平时都在增删改查,能有什么难题。其实即使不是你完成的,你也可以在看懂掌握后说是你做的,这个我觉得不算造假。

以下是笔者的工作复盘(仅提供参考):

image.png

个人简历准备

上面的内容,其实都是在为简历做准备,毕竟你都要写到简历中的,一环扣一环。简历的重要性就不需要说了吧!这可是敲门砖,你的简历决定了你有没有机会面试,重要程度不言而喻。我说几点:

  1. 最基本的:错别字不能有、语句要通顺,技术栈的名称最好使用跟官方一样的大小写(比如:Vue.js👍, vue👎)、排版要简洁优雅。
  2. 内容要取精华、去糟粕。
  3. 简历必要信息:出生年月、姓名、性别、学校专业、邮箱、英语能力、手机号,其他的最好别写,照片可不要。

关于怎么写简历,我推荐知乎上慕课网的回答[一名优秀的前端开发工程师的简历是什么样的],包括我个人也是仔细阅读这个后写的(花了两天时间)。

关于简历模版,我用的这个:

image.png

各位,一定要注意每个地方的细节,细节真的决定成败!

面前准备

面前准备不可谓不重要,一个好的开场,能增加你50%的成功率。那么面前要准备哪些内容,我通过我的经验来和大家简单聊聊:

  1. 自我介绍(忌讳流水账式,要突出自己的优势,你之前做了什么、你擅长做什么、你的优势是什么、你有什么能拿出手展示的、要简洁干练、突出重点、自信表达),要做到这些还是需要下一些功夫的,至少你的提前写好草稿。
  2. 离职原因,建议提前想好。(忌讳吐槽)
  3. 准备一些问题最后问面试官。
  4. 调整好心态,不紧张,当成聊天就行,自信大方的表达。
  5. 面试切记不要装逼。

好了,接下来就是面经环节!

面经

美团

一面

  1. 自我介绍

  2. 性能优化指标相关

  3. 项目难点是什么,如何解决?(靠自己总结了)

  4. 原型链(这个到处都有)

  5. 防抖节流

  6. 手写防抖,注意下细节,比如函数调用的this指向,以及防抖默认执行一次,最好自己写的时候就把这些考虑在里面,不要等面试官提示你。(我的博客中性能优化部分有)

  7. 从URL输入到渲染

  8. eventloop 先讲理解,再做一个题。

  9. Vue源码

  10. 设计模式

  11. 算法题:LCR016. 无重复字符的最长子串

我的实现:

考察内容都是比较常用和必会的,没有让你造火箭,给美团面试官点赞!

二面

  1. 自我介绍
  2. 主要问的低代码项目的一些细节实现
  3. 为什么要离职
  4. 手写题:计算树的最大深度(这个题可参考二叉树的最大深度,道理一样)
  5. 手写题:实现一个类似es6模版字符串解析的功能

这一面的话,过往项目中的细节考察较多,这也说明了之前说的一定要进行以往的工作复盘是必要的。手写题也是中等难度偏实用性的。

三面

  1. 自我介绍
  2. 问每一个项目
  3. 低码项目是重点考察(手画架构图并讲解)问了很多问题(对自己写的项目一定要做出复盘总结,提取概要,关键技术点一定要知道)
  4. 项目的一个投入产出比了解吗
  5. 平时开发会不会写设计,设计方案中需要哪些东西
  6. 对加班的看法
  7. 代码质量
  8. 埋点
  9. 设计模式
  10. 我的技术栈是Vue,但是招聘岗位的技术栈是React,微信小程序,问如果我能通过面试,如何快速融入工作中。

这一面的话,项目细节还是重点,再次说明进行工作复盘的重要性!其次是比较轻松的一些话题,这些问题没有标准答案。

HRBP面试

这个就不分享了,想了解的私我吧。

字节-平台岗

一面

这是凉面经

  1. Vue双向绑定的原理
  2. 响应式原理
  3. Vue3在响应式方面对比Vue2 性能方面有哪些提升
  4. 在Vue中如何抽取公共逻辑复用
  5. 你说的这几种复用的方式有哪些优缺点,以及它们适用于哪些场景,能举一些例子吗
  6. 项目介绍 及 一些具体实现细节
  7. 手写题 Promise 并发控制

需要注意区分Vue双向绑定的原理、响应式原理,不要回答混了。

字节——飞书

飞书总共三面。也是凉面经

一面

  1. 自我介绍
  2. 项目介绍 及 项目问答(项目细节的实现、项目的难点、做过哪些优化)
  3. 页面性能优化的手段有哪些
  4. webpack 的 loader 和 plugin 是什么,有没有自己写过loader、plugin
  5. loader可以改变输出结果吗
  6. 常用的 plugin 有哪些
  7. 提到了 post-css,预处理 和 后处理 是什么
  8. webpack 如何实现的模块懒加载
  9. 滚动懒加载
  10. http 缓存
  11. 项目中使用哪种缓存
  12. babel-loader 的输入输出是什么?
  13. 代码题——Promise按顺序输出

二面

  1. 自我介绍

  2. 低代码项目介绍

  3. 各种项目中的细节实现提问

  4. Vue2 和 Vue3 的区别

    • 响应式方面
    • 性能提升方面(静态节点提升、编译优化、块优化、tree Shaking、等等)
    • composition Api 方面(代码逻辑组织及其复用)
    • 渲染函数h的变化、插槽的变化
    • watchEffect
    • 等等
  5. 如果你的项目要升级 Vue3,你会怎么做

  6. 项目的发布流程是怎么样的?有统一管理项目的发布流程的东西吗?

  7. 如果让你实现一个管理项目的发布流程的东西,你会怎么做?

  8. 手写题:字符串的最长公共前缀-简单(先实现,再讲思路)

    参考实现:

三面

  1. 自我介绍
  2. 项目提问(主要是一些项目上的痛点提问,问如何优化,问具体思路)
  3. 拖拽相关的问题(先说哪些方案、其次是抛开拖拽库不谈、说说h5 的 drag、如果不用drag,还有什么别的方式能够实现?追着问了很久)
  4. WebAssembly 了解过吗?
  5. 代码考核,不难,但是写的不好、异常处理、边界处理的不好。(不严谨)

这一面主要是偏技术广度和深度方面,个人确实表现不是很好,意料之中的没过,很遗憾!各位加油!

总结

历时两个月,成功进入了大厂工作,笔者运气比较好(实力不够,运气来凑)。笔者只参加了这两个公司的面试,这些问题的话也是笔者真实经历记录下来的,还有面试上的准备,也是笔者的一个真实案例,提供给需要的同学参考,希望这篇文章能对你有所帮助。除此之外,再给掘友们两个建议:

  1. 记录一下每一次面试的问题进行一个复盘,边面试边进步,你会越来越自信! 笔者一开始也是比较不自信的(你说我一个外包的自研部门,谁管你自研不自研啊,公司就不行,凭啥面大厂?但是经过一两次面试成功后,慢慢就变的自信了。)
  2. 要诚实,这是底线,没有哪个公司会接受不诚信的人。

原文地址:https://juejin.cn/post/7316202589603512347

原文作者:Lvzl

最后

还没有使用过我们刷题网站(https://fe.ecool.fun/)或者刷题小程序的同学,如果近期准备或者正在找工作,千万不要错过,我们的题库主打无广告和更新快哦~。

老规矩,也给我们团队的辅导服务打个广告。