想要面试顺利,非一日之功

每当金三银四,春暖花开,不甘被资本家压迫的同学们都开始蠢蠢欲动,为了每月账上30%甚至double的增益而悄悄努力。
可能对于任何一个前端同学,在职业发展的路上,面试都是不得不面对的一个挑战。怎样才能在面试中得到面试官的认可、拿到满意的待遇呢?
想要面试顺利,并非一日之功,面试中固然有一些技巧可以增加成功率,但是硬实力才是决定性的因素。
所以如果条件允许,业余应该花一部分时间在提升硬实力上面,把面试的准备拉成一个长期的过程。这样在打算离开当前公司时候就会更从容,养兵千日,用兵一时。
当然,鉴于当前互联网大环境,很多同学平时工作很忙,没有时间和精力准备面试,所以临阵磨枪,短期冲刺也是一个很常见的情况。

  1. 下面我们聊一聊当我们临阵磨枪和养兵千日这两个不同场景下应该怎样高效提升。

临阵磨枪

如果希望在二周到两个月左右的时间内准备面试,一个很重要的原则是抓大放小。把更多精力放在面试更可能考察的知识上面,一些细节性、原理性的东西,如果实在难以短时间内掌握,可以用记忆代替理解。

  1. 从面试官角度了解不同职级应该掌握的能力,从而了解自己应该在哪些地方下功夫

    怎样判断面试者是否有扎实的前端基础?
    这篇文章很详细介绍了面试官角度认为不同级别(初级、中级、高级)应该掌握的能力。

2. 多找大厂真题、面经

真题和面经是真实被考察过的题目,那么再次考察的可能性更高,我曾经在一些面经帖子下面看到有回复“和我面的一样!”。
对于面经、真题,一个很不错的网站:灵题库,除了收集很多前端大厂面试题,还对一些常考的点总结了专项,如作用域专项、Vue专项、Promise专项等。
另外牛客网力扣掘金,这些平台的论坛中都有很多面经。

github上总结典型的代码执行结果的题目:https://github.com/lydiahallie/javascript-questions

3. 找高频算法题目手写

算法可以说是一个技能而非知识,算法能力是需要长期训练和积累的,短期冲刺的话,应该找高频的算法题目来训练,不要纠结于一些难度较大的题目,掌握一个难度较大的题目的时间可以练会好几个简单的高频的题目,更容易增加面试成功率。比如快排、数组拍平、数组去重、最小栈、随机整数等,考察频率就很高。

4. 多面,在面试中找感觉

  1. 很多面试官会也会在网上找题,所以你会发现在不同公司面试,有些题目是相通的,因此可以多面一面,面试过程也是快速积累的过程。另外,多面试也能够调整自己的状态,面的多了,在面试中就会表现更流畅,发挥更好。

厚积薄发

如果业余时间比较充裕,建议坚持下班后和休息日花一定时间给自己充电。如果能够积累一年、两年,同只做业务写页面的同学就会拉开很大距离。

对于有条件和意愿在业余时间提升的同学,可以参考下面几条建议

1. 了解前端知识体系,并规划学习路线

  1. 前端的学习,或者任何专业领域的学习,很重要的一点就是体系化。可能很多同学听说过一个观点,就是前端知识很多很杂,其实大部分技术都是这样,是否能够将知识体系化地梳理并一步步深入,是一个高级工程师的必备能力,也决定了一个技术同学的天花板。
  2. 梳理前端知识体系,可以参考阿里出品的前端知识图谱:[云栖大会上,阿里巴巴重磅发布前端知识图谱!](https://mp.weixin.qq.com/s/c8WXCTl6wMqd2AJktX7SIg)。还有刚刚提到的阿里的JD解析。

2. 应该持续不断刷题,不能等面试之前再刷

学习前端知识不能简单地看教程和博客,因为很多情况下看完教程感觉自己理解了,但是实际开发项目时候又会茫然无措,原因在于对知识的理解不够,解决的办法是刷题,向我们在学生时代,就是通过大量的做题、考试来加深对所学知识的理解。所以刷题并不是在准备面试时候才应该做的事,而是在学习过程中,就应该通过刷题来加深对知识的理解、查缺补漏。
在刷题时候,对应的知识点要系统地掌握,这样做完一个题目后,一类题目都可以掌握,比如一个常见的面试题,promise的执行结果,这类题目每个公司考察时候,代码肯定都不一样,但是考察的知识点是一样的:Promise和事件循环。
灵题库里面每个题有对应的知识点详细讲解,刷题事半功倍。

  1. 多做项目积累项目经验

    前端是一门技术,仅仅掌握知识是不够的,除了学习知识还应该多做项目,提升动手能力,提升项目经验。
    比如我们学习vue可能直到了keep-alive的概念,但是如果问你有哪些应用场景,可能就不知道了,在实际项目中遇到相应的场景,也不一定马上想到使用keep-alive。所以项目经验是非常宝贵的资产,应该在业余时间自己做一些项目,不管是开源库,还是网站、插件、native应用,都可以积累经验。

4. 算法刷题

算法能力是长期训练才能提升的,有几个比较经典的刷题网站,力扣牛客等。关于算法刷题方法,网上有很多深刻的讲解。

前端的leetcode:包含大量JavaScript编程题目:Front-End Interview Coding Problems

b站火爆的leetCode刷题指南:一周刷爆LeetCode,算法大神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程

知乎高赞:LeetCode按照怎样的顺序来刷题比较好?

总结

不管是临阵磨枪还是养兵千日,根据自身情况可以有不同选择,不论如何天道酬勤,当你开始刷第一个题目开始,你已经和很多人拉开了距离。偷偷刷题,然后惊艳所有人!