文章首发自公众号:程序员Sunday
Hello,大家好,我是 Sunday。
面试题背的越多就越好吗?
目前市面上有各种各样的面试题库。当我们去搜索【前端面试题】,可以得到九百多万条搜索信息:
除了网页的搜索之外,还有很多人把各种各样的面试题整理成书,俗称【面试宝典】
在现在的市场中,我们可以轻而易举的获得各种各样的面试资料,但是这些面试资料真的可以帮助你解决面试问题吗?
当资料已经多到不胜枚举时,那么他对你而言,就不再是 帮助,而是一种 负担。大量的面试题会让你迷茫其中,你花费了非常多的时间来去背这些面试题,先不说时间成本,真正面试的时候,这些面试题又能帮助你多少呢?
所以,面试题背的越多就越好吗?恐怕不是的!
在现在的面试中,八股文面试所占的比例越来越少。源码问题、项目问题、思路问题、场景问题 所占的比例越来越多。面试官也不是傻子,当他知道很多人都期望通过背八股文来通过面试时,那么八股文也就失去了意义。
所以,不要再花大量的时间去背八股文了!
现代面试都会聊什么?
目前的面试,已经从 八股文面试 转化为 场景面试。所谓的场景面试包含四个部分:
- 源码:从应用层的表现延伸到源码中的实现。
- 项目:深挖你的项目,看看你的简历水分到底有多少。
- 思路:根据你的项目进行延伸,如果要实现这样的功能,那么你的思路是什么?
- 场景:列举出一个场景,在这样的场景下,你会如何解决这个问题?
源码问题
所谓源码问题,并不是直接让你背源码(因为现在源码课程太多了)。而是会从一个应用层的表现开始,延伸到源码层的实现。
具体例子:
提问:为什么要在
v-for
的时候绑定key
?
你回答:“增加性能......”
提问:那么是如何增加性能的呢?
你回答:“diff
运算,解决 DOM
比对问题......”
提问:
diff
中如何进行DOM
比对的呢?
你回答:“通过 type
和 key
进行比对......”
提问:为什么要进行这样的比对?
你回答:“确定 DOM
的移动、删除、新增”
提问:
DOM
移动的策略是什么呢?
你回答:“最长递增子序列......”
提问:最长递增子序列是如何进行计算的?起到了什么样的价值?
......
以上问题,就是一个从应用层延伸到源码层的典型例子。如果你只是看了一个所谓的源码课程,那么是很难回答清楚这样的问题的。
项目问题
谁的简历没点水分呢? 面试官也不是傻子,看的就是你的简历中水分到底有多少。所以:深挖项目,就是检查水分的一个很好的方式。
提问:你提到的性能优化主要是优化的说明?
你回答:“主要是首页加载速度的优化......”
提问:都采取了什么样的优化手段呢?
你回答:“打包优化、接口优化、懒加载......”
提问:简历中写到加载速度由原先的 5 秒,提升到了 1 秒。这个数据是怎么得来的?在什么场景下得来的?数据是否稳定?你进行了几次测试?测试的标准是什么?测试机器是什么?QPS 能支持多少?生产版本部署,QPS 会发生变化吗?变化之后数据是什么?
......
思路问题
通常会在你现有的项目基础上进行一些延伸。
提问:你的低代码平台有没有实现 DOM 贴合的功能?
你回答:“暂时还没有,巴拉巴拉解释......”
提问:那么如果要实现这个功能的话,你有什么思路?
......
这类的问题,一是可以验证你的项目真实性,二是可以看你对类似业务了解的深度有多少。
场景问题
列举出一个场景,让你说出对应的实现思路。
这种问题就比较多了。例如:
- 渲染十万条数据怎么解决?
- echarts 渲染的数据量大导致卡顿,如何优化
- ......
这类问题主要考察你对技术的深入理解,以及你在遇到问题时的 “想法”。
应该如何准备面试?
那么说了这么多,最后 在现在的面试中,我们应该如何准备呢?
只依靠传统的八股文肯定是不够的了。你需要做亮点关键准备:
- 模拟面试: 根据面试的 JD 进行专门的模拟面试。通过 JD 我们可以看出当前的岗位需要什么样的技术储备,那么结合 JD 去进行专门的模拟面试,俗称“押题”。如果给你模拟面试的人足够专业,那么甚至可以 压中一半以上 的面试内容。
- 定制的面试题库: 每个人的简历、项目都不一样。所以你需要结合你的简历、项目、履历、储备制作一个专门的面试题库。大规模的被八股文是没有任何价值的,你需要有一个明确的 “靶心”。
如果你不知道怎么做,那么可以私聊我。
最后,祝大家都能找到满意的工作,高薪入职心仪的公司~~