面试题背的越多,就越好吗?

1,922 阅读5分钟

文章首发自公众号:程序员Sunday

Hello,大家好,我是 Sunday。

面试题背的越多就越好吗?

目前市面上有各种各样的面试题库。当我们去搜索【前端面试题】,可以得到九百多万条搜索信息:

除了网页的搜索之外,还有很多人把各种各样的面试题整理成书,俗称【面试宝典】

在现在的市场中,我们可以轻而易举的获得各种各样的面试资料,但是这些面试资料真的可以帮助你解决面试问题吗?

当资料已经多到不胜枚举时,那么他对你而言,就不再是 帮助,而是一种 负担。大量的面试题会让你迷茫其中,你花费了非常多的时间来去背这些面试题,先不说时间成本,真正面试的时候,这些面试题又能帮助你多少呢?

所以,面试题背的越多就越好吗?恐怕不是的

在现在的面试中,八股文面试所占的比例越来越少。源码问题、项目问题、思路问题、场景问题 所占的比例越来越多。面试官也不是傻子,当他知道很多人都期望通过背八股文来通过面试时,那么八股文也就失去了意义。

所以,不要再花大量的时间去背八股文了!

现代面试都会聊什么?

目前的面试,已经从 八股文面试 转化为 场景面试。所谓的场景面试包含四个部分:

  1. 源码:从应用层的表现延伸到源码中的实现。
  2. 项目:深挖你的项目,看看你的简历水分到底有多少。
  3. 思路:根据你的项目进行延伸,如果要实现这样的功能,那么你的思路是什么?
  4. 场景:列举出一个场景,在这样的场景下,你会如何解决这个问题?

源码问题

所谓源码问题,并不是直接让你背源码(因为现在源码课程太多了)。而是会从一个应用层的表现开始,延伸到源码层的实现。

具体例子:

提问:为什么要在 v-for 的时候绑定 key

你回答:“增加性能......”

提问:那么是如何增加性能的呢?

你回答:“diff 运算,解决 DOM 比对问题......”

提问:diff 中如何进行 DOM 比对的呢?

你回答:“通过 typekey 进行比对......”

提问:为什么要进行这样的比对?

你回答:“确定 DOM 的移动、删除、新增”

提问:DOM 移动的策略是什么呢?

你回答:“最长递增子序列......”

提问:最长递增子序列是如何进行计算的?起到了什么样的价值?

......

以上问题,就是一个从应用层延伸到源码层的典型例子。如果你只是看了一个所谓的源码课程,那么是很难回答清楚这样的问题的。

项目问题

谁的简历没点水分呢? 面试官也不是傻子,看的就是你的简历中水分到底有多少。所以:深挖项目,就是检查水分的一个很好的方式。

提问:你提到的性能优化主要是优化的说明?

你回答:“主要是首页加载速度的优化......”

提问:都采取了什么样的优化手段呢?

你回答:“打包优化、接口优化、懒加载......”

提问:简历中写到加载速度由原先的 5 秒,提升到了 1 秒。这个数据是怎么得来的?在什么场景下得来的?数据是否稳定?你进行了几次测试?测试的标准是什么?测试机器是什么?QPS 能支持多少?生产版本部署,QPS 会发生变化吗?变化之后数据是什么?

......

思路问题

通常会在你现有的项目基础上进行一些延伸。

提问:你的低代码平台有没有实现 DOM 贴合的功能?

你回答:“暂时还没有,巴拉巴拉解释......”

提问:那么如果要实现这个功能的话,你有什么思路?

......

这类的问题,一是可以验证你的项目真实性,二是可以看你对类似业务了解的深度有多少。

场景问题

列举出一个场景,让你说出对应的实现思路。

这种问题就比较多了。例如:

  • 渲染十万条数据怎么解决?
  • echarts 渲染的数据量大导致卡顿,如何优化
  • ......

这类问题主要考察你对技术的深入理解,以及你在遇到问题时的 “想法”。

应该如何准备面试?

那么说了这么多,最后 在现在的面试中,我们应该如何准备呢?

只依靠传统的八股文肯定是不够的了。你需要做亮点关键准备:

  • 模拟面试: 根据面试的 JD 进行专门的模拟面试。通过 JD 我们可以看出当前的岗位需要什么样的技术储备,那么结合 JD 去进行专门的模拟面试,俗称“押题”。如果给你模拟面试的人足够专业,那么甚至可以 压中一半以上 的面试内容。
  • 定制的面试题库: 每个人的简历、项目都不一样。所以你需要结合你的简历、项目、履历、储备制作一个专门的面试题库。大规模的被八股文是没有任何价值的,你需要有一个明确的 “靶心”。

如果你不知道怎么做,那么可以私聊我。

最后,祝大家都能找到满意的工作,高薪入职心仪的公司~~