前端面试通常很难准备。 可能存在许多不同的面试形式,而不同公司的前端工程师评估标准也没有行业的规范结构。 有些公司针对前端工程师和通用软件工程师使用相同的面试流程,而有些公司(例如 Google 和 Amazon)则在通用软件工程师环节和前端领域特定环节之间均有面试流程。
近年来,业界逐渐转向不再要求前端面试候选人解决数据结构和算法(DSA)问题。 相反,候选人将需要实现常见的前端库函数和/或构建实用的 UI 组件/应用程序,以测试他们对实际和相关的前端概念的理解。 这是一个令人鼓舞的趋势,因为与大多数 DSA 问题不同,前端面试问题与前端工程师的日常职责高度相关,是更准确的评估。
但是,许多现有的软件工程面试资源都针对通用软件工程角色而不是一种更小众的和小众的前端工程师领域;你几乎找不到有关前端系统设计的任何资源。 这些因素加上可能的领域主题的广度使得准备前端面试是一个漫长,乏味且困难的过程。
请不要担心! GreatFrontEnd 旨在成为前端工程师通过一站式平台获得必要知识并进行前端面试的最佳资源。 在 GreatFrontEnd 上,读者可以:
您的简历是给潜在雇主留下印象的第一次机会,因此对于得到梦想公司的短名单至关重要。
如果您在申请工作时遇到了困难,即使拥有必要的资格,也可能是因为您的简历。 即使高素质的候选人可能也不知道如何有效地展示他们的成就在简历中,因此可能无法获得短名单。 需要记住的是,低资格并不总是不被选中的原因;有时只是因为呈现不良和未包含重要内容。 一旦您通过简历筛选流程,过去的成就就变得次要了,您的技术能力成为首要考虑因素,这可以通过学习和改进来实现。 因此,通过提交代表您的高水平的优秀简历,进入门槛是极其重要的。
虽然已有一些有关制作良好的软件工程简历的资源,例如Tech Interview Handbook和FAANG Tech Leads 的简历手册,但它们都是通用的,不是针对前端工程师的。 我们写了一些如何为前端工程职位定制简历的技巧。
前端面试环节可能有许多不同的形式,并且每家公司的做法都不同。 为了有效地做好准备,您应该了解您面试的公司的不同面试阶段,每个阶段内的各种环节以及每个环节中将要问的问题类型。
每种问题格式都有自己的挑战和怪癖。 我们将介绍各种格式,如果您想了解更多信息,可以阅读每种类型的专页。
编码问题将涉及编写代码(搞定!)。 但您需要编写的代码以及您将编写代码的平台可能截然不同。 您可能会问到:
公司愈趋趋向使用领域特定的编程问题,而不是测试关于算法和数据结构的知识,因为前者对于评估前端工程工作所需的核心技能更为相关。
系统设计面试是高度无定形的面试,涉及设计软件系统来解决模糊的问题或情景。 候选人将需要将系统分解为较小的组件,绘制架构图,设计 API,在系统的某些部分进行深入交流,并讨论权衡取舍才能成功。
系统设计面试通常仅提供给高级别的候选人,并且所需的系统可以是以下类型和示例之一:
大多数情况下,前端工程师将被要求设计客户端应用程序和复杂的用户界面组件,因为这些产品更相关于前端工程。
测验问题也称为琐事问题,是用于测试您对领域的理解的短问题。 每个问题不应花费超过一到两分钟的时间。
通常不会有整个面试环节只问测验问题,但它们可能会在其他面试环节中出现。
在行为面试中,面试官会询问您过去的行为和经验,以评估您是否适合该工作和成熟水平。
行为面试背后的理念是,过去的行为和经验是了解某个人将来行为的良好指标,因此面试官将提出旨在让您描述您所面临的具体情况以及您如何应对它们的问题,以更好地了解您的个人能力。
行为面试是一个大型主题,我们撰写了一个完整的指南。
大多数公司将有类似以下的招聘流程:
最可靠的方法是询问招聘公司有关该角色的面试流程。 良好的公司甚至会准备详细的文件来解释每个面试阶段以及有关资源,指导候选人准备面试。 对于看到大量申请人的大公司来说,有人会通过Glassdoor, Blind和Reddit等平台分享他们的面试经验。
**您必须知道要在面试中期望哪些问题类型,否则您将无处不飞,并且无法有效地准备。
以下矩阵显示了每个面试轮次中每种问题类型的相关程度/可能性。 面试轮可能包括来自不同问题类型的问题。
环节 | 测验 | 算法 | UI | JavaScript | 系统设计 |
---|---|---|---|---|---|
在线评估 | 中等 | 高 | 高 | 高 | 无 |
招聘人员通话 | 中等 | 无 | 无 | 无 | 无 |
接回家的项目 | 无 | 无 | 高 | 中等 | 中等 |
编程 | 低 | 高 | 高 | 高 | 低 |
行为问题 | 低 | 无 | 无 | 无 | 无 |
系统设计 | 低 | 无 | 低 | 无 | 高 |
招聘经理 | 低 | 无 | 无 | 无 | 低 |
以下是美国顶尖公司问的问题类型摘要。
公司 | 测验 | 算法 | JavaScript | UI | 系统设计 | 行为面试 |
---|---|---|---|---|---|---|
爱彼迎 | 否 | 是 | 是 | 是 | 否 | 是 |
亚马逊 | 是 | 是 | 是 | 是 | 是 | 是 |
苹果 | 是 | 是 | 是 | 是 | 未知 | 是 |
字节跳动 | 是 | 是 | 是 | 是 | 否 | 是 |
Dropbox | 否 | 是 | 是 | 是 | 是 | 是 |
Facebook/Meta | 是 | 否 | 是 | 否 | 是 | 是 |
谷歌 | 是 | 是 | 是 | 是 | 是 | 是 |
领英 | 是 | 是 | 是 | 是 | 未知 | 是 |
Lyft | 否 | 否 | 是 | 是 | 是 | 是 |
微软 | 是 | 是 | 是 | 是 | 是 | 是 |
推特 | 是 | 是 | 是 | 是 | 是 | 是 |
Uber | 未知 | 未知 | 是 | 是 | 未知 | 是 |
问题类型传奇
继续阅读,了解如何准备以下前端面试格式/问题类型: