前端实习生是怎样面试的

259 阅读5分钟

云哥说一下真实的前端面试里面,是怎么面试前端实习生的,公司招前端实习生的要求大概是怎样的,看重哪些方面

工作能力方面,从短期来看,这个人要能够胜任目前的工作,中长期来看,要能够跟随项目成长,承担更大的责任。性格方面最好和目前团队相匹配,这个匹配不一定是一致,也可以是互补。通俗的讲,就是你愿意和他做同事。

愿意和他做同事”这个指标非常的好用,很多次面试在进行不到十分钟的时候,你就会明显感觉到“这个人和我们团队风格格格不入”或者“感觉就是我们失散多年的同事”以及“我们正好缺少一个这样的同学”。这个直觉往往和最终通过几轮面试综合分析的结果是一致的。

对实习生或者校招生面试的四个原则:

  1. 说得清专业课内容

  2. 讲得清楚一个项目的设计和代码实现

  3. 能理解我说的话

  4. 他讲话我听得懂

额外的加分项目包括:

  1. 有长期爱好

  2. 有自发项目

  3. 有参与学生组织经历

后面我们展开详细说说这些原则,应用方式,和背后的意义。

开场

一般我做实习生面试是一个小时,首先是自我介绍,大概问一下是哪里人,学校和专业,专业课有哪些。

对于实习生,我会简要的问一下专业课,然后让他选择比较熟悉的内容讲述一下,判断他对于体系化知识的叙述能力。 这个能力基本等同于一切体系化内容的表达能力,以后他做技术方案设计的时候也需要这个能力。

能够讲清楚专业课的内容,意味着要么聪明,要么勤奋,也意味着有比较不错的系统学习能力。如果他能记得两三年前专业课的重点,那么我也愿意期待他在两三年后,可以通过不断的累积工作经验而获得成长。无论他是认真学习,还是考前突击,总之可以把大量知识的核心转化为长期记忆是一项和成长潜力很大正相关的能力。

问知识点的时候,有三种选择,问他会的,问他犹豫的,问他不会的,这三种类型的问题有不同的功能。

让候选人自主选择熟悉的内容,可以看出他的能力在哪个层面。他愿意主动讲述的内容,一定是他认为自己掌握较好并且值得说的内容,这个原理我在上一篇也提到过。这是一个非常有用,同时也很真实的信息。比如我去面试,我一定不会讲我做的系统如何写CSS布局,因为我觉得,这个不值一提。

当候选人答完一轮熟悉内容之后,可以向边界知识推进。 这些知识也许没有熟练背诵,但是可以通过推导得出。比如我们常问的节流和防抖,有些同学没有背代码,没关系,那你就现场分析推导,最终应该给出一个可用的解决方案。重点不是你有没有背,而是有没有能力去解决问题。我甚至可以接受候选人对两个名词有混淆,而把题目直接描述为“当滚轮滚动的时候,不要发出那么多事件,怎么处理。”只要他理解这个场景,同时能以正确思路解决问题,那这就是对的。至于高大上的名词,很快就可以学会,这不是难点,也不是重点。

当他证明自己可以解决能力边界问题以后,接下来继续尝试更加深入到候选人未知的领域。 这时候我会引导他说,你不一定要给出正确答案,你可以给出一个你觉得合理的答案和理由。这是为了观察候选人在有压力以及背景知识有缺失的情况下,是不是仍然可以以正确的方式分析和解决问题。

比如有一次我问候选人cookie同源策略,他说不太清楚,我就说,如果你来设计的话,你觉得怎样的策略是合理的。 我们来分析如果没有同源策略可能的危害,然后想想,只有路径不同的两个url,是不是其实应该是同一个用户部署的,那这大概率是安全的。但如果端口不同的话,就有可能是不同的人共用的主机,这时候我们要谨慎一些,认为他们不是同源的。这个推论可能和事实相符,也可能不符,我们主要看这个推理逻辑是不是合理即可

有些技术方案本身也不一定就是最完美的,可能只是某个历史时期特定的产物,又因为种种原因而不得不保留下来。比如前端都知道referer这个梗,对吧。而且对现状的思考是很宝贵的,无论是技术方案还是产品方案,看到背后要解决的问题本质是什么,以及这个方案和解决问题的关系

正确的过程一定可以得到正确的结果,但获得正确结果却不一定是通过正确的过程。在面试的场景中,我们主要考察的是候选人是不是可以合理的做事以及目标感是否清晰,这两者相加大概率可以拿到很好的结果,但如果我们只看拿到结果,无法反向推导出来候选人是否有能力解决问题。

——海云前端,提供1对1前端简历面试辅导、前端私教课、前端项目难点笔记、语音咨询、模拟面试