如何面试一位前端工程师

扎实的基础


很多面试者的简历中一定会写各种『精通』,这是非常有自信的表现,对于基础的考察,最好的方式还是笔试。


计算机学习无非也包括记忆和理解。前期记忆的内容颇多,也比较容易上手给人一种很快就可以『精通』的错觉。而恰恰忽视了理解的重要。理解能力是对我对是否能够进入这行工作最先考察的内容。分两个方面


1. 对已知的理解深度。对你掌握的知识,一定会有所考察,是肤浅还是真正的精通。


我喜欢问 setTimeout (fn, 0) 执行顺序,如果能说到任务队列就非常好。还能讲上一些执行优化的策略,就基本满分了。当然现在前端发展太快,框架本身就体现出很高的复杂度,比如我不会问 React 生命周期触发顺序这样的问题,更多是问些设计上的问题,setState 的设计等。


2. 对未知的预判。对你未了解的知识是否可以举一反三,判断运行过程。


我喜欢问可视化相关的问题,大部分人都没做可视化工作,API 自然不是重点。比如在没写过图表的前提下,怎么抽象数据与图形的映射,怎么去组合不同的图表部件。


纯知识点就是太死板了,一般只是校招同学会这么问。我更喜欢以场景展开,比如我常问的一个校招问题,有一块区域要展示一组数据,但数据需要请求 3 个接口才能计算得到,请问前端是怎么做的,如何优化,前端什么情况下可以放弃合并接口的要求。这个地方至少会考察到异步,本地缓存,延展下会问下并发,竞态,协程等。答得好不好完全在于你的知识面的深度和广度,能否一直让我延展下去。


我常常说面试只看前5分钟的感觉。这种感觉就来源于他是否有非常扎实的基础。


过去的思考


在工作中磨练过的同学,我最看重的是解决问题的能力。前端工程,以工程为主。我自己一般在面试前会花10-20分钟时间根据你简历中的经历来提问你『擅长领域的问题』。


这里非常需要简历有故事性,比如过去工作的项目背景,项目的内容和成果,你做了些什么。如果有网站或作品就非常棒了。或你在实验室研究的内容,有没有相关的开源工程。简历中一定要体现出你的价值。如果没有,我一般会先问一个问题,在过去一年中你遇到的最大挑战是什么。其实这个问题很难回答,尤其是你自己在过去的工作中没有总结和思考的话。


面试官要考察:


1. 是否有抽象。有很多问题本身都非常小,但是否能以点及面,考虑更大的层面。比如做不同项目,有没考虑体系建设,怎么考虑历史库的升级及维护


2. 是否有向前看。前端发展非常快,有很多的新内容。对新内容的判断,怎么使用也是考察的重点之一。尤其是为什么要用某个技术这个问题是我常问的。为了技术而技术,考虑问题的全面性就会差很多。


《前端精髓》


118月

640?wx_fmt=jpeg

前端的发展方向是什么

257月

640?wx_fmt=jpeg

技术选择真的没有那么重要


公众号:前端精髓

猜你喜欢

转载自blog.csdn.net/gtLBTNq9mr3/article/details/81880214