93

我是如何面试一位前端工程师

 6 years ago
source link: https://zhuanlan.zhihu.com/p/30487025
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

我是如何面试一位前端工程师

前端开发话题下的优秀答主

最近面试不少,发现团队同学面试的问题以纯知识点为主,提问方式很机械。对于现在前端面试总是被人吐槽面试与实际的工作完全不搭边,和面试官面试方式有很大关系。这篇文章主要是记录我是如何面试,以分享给大家作参考。希望对你有用。

扎实的基础

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

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

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

我喜欢问 setTimeout (fn, 0) 执行顺序,如果能说到 macroTask 机制,是出自标准规范的 job 和 task 处。还能讲上一些执行优化的策略,就基本满分了。当然现在前端发展太快,框架本身就体现出很高的复杂度,比如我不会问 React 生命周期触发顺序这样的问题,更多是问些设计上的问题,setState 的设计等。

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

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

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

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

过去的思考

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

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

面试官要考察:

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

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

互相交流难题

我们大老板曾对我们说,面试不是去问倒别人,来显得你多牛,而是去尽力找对方的亮点。

每一次面试对我来说是一次非常好的交流机会,我在公司面试过程处在中间的位置,到我这里的同学已经接受过技术的考验,我相信有能力可以提出更高的要求。

有时我问的问题,会拿些非常棘手的场景,我自己都不知道最佳实践是什么,至少我们没有做好。很多时候,我很想知道你有没有好的答案,我也很想把我的想法分享给面试者,这是一个互相交流的过程。有时,被面试的同学有些非常好的思路,我也非常兴奋。

最近面试到一位同学,做过全链路的数据采集,但没有用到分布式架构,这让我很意外。我完全忘记在面试,而在聊他们是怎么做的,遇到性能和同步问题怎么解决的。当然,我把我的方案也和他聊了一下,总之还是非常愉快。

说到底,面试是在选择你的同事,你的下属,或帮合作同事选择。你的一纸通过意味着得到了你的认可,这种认可一半是出自技术,一半是出自气味相投。

作为面试人,我一定会在最后问『有什么想了解我们团队的么』这样一个问题。只要不在机密范围内,我都会和你介绍我们的工作内容,愿景是什么。希望你能够了解我们,是不是你想要去的团队。

作为面试者,我一定希望你有足够的兴趣来我们团队,预判团队工作是否有挑战,公司的远景是什么,是否以技术为驱动力,我是否有合适的位置等。

对于面试者,面试过程只是一个时刻,你的过去和将来更为重要。多思考在工作或学习中,还有什么问题值得你去解决的,尝试不同的方案,总结失败和成功。最为关键的是将来的你要成为什么,去往这个方向努力。

对于面试官,你需要找到每一个人的闪光点,学会欣赏每一个人,从这个过程中去寻找比你优秀的伙伴。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK