前端开发人员有一项至关重要的工作:他们必须确保网站所有面向用户的部分都能完美地工作。
这也是一项不断发展的工作,所以前端开发人员的面试准备也变得更加困难。
前端开发人员参与了影响桌面和移动网站和应用程序导航、布局和设计元素的所有工作。这意味着他们必须精通HTML、CSS和JavaScript。此外,他们还必须具备良好的“软技能”,如沟通和团队合作,因为他们经常与后端开发人员、设计师和其他人一起在多学科团队中工作。
Lightcast收集并分析了来自全国各地的数百万份招聘启事,根据该公司的数据,以下技能经常出现在前端开发人员的职位空缺中:
- JavaScript
- 前端开发
- 软件工程
- React JavaScript
- TypeScript
- 软件开发
- Web应用程序开发
此外,许多招聘内容列出了以下“软技能”:
- 团队合作/协作
- 沟通技巧
- 写作
- 解决问题
- 创造力
- 故障排除
- 规划
在前端开发人员面试中,招聘人员或招聘经理会询问你的技能,甚至可能会给你一个旨在评估你的开发能力的技术考试。在参加任何面试之前,花些时间确保你的技能得到完善。例如,像LeetCode这样的网站是测试你编程能力的绝佳方式。
在前端开发人员面试中会被问到哪些问题?
你不可能确切地知道你在面试中会遇到哪些问题,不同的公司有不同的需求,在评估候选人的技能和文化契合度时,没有两个招聘经理是相同的。
然而,对于任何公司来说,询问你的技术技能都是很典型的,尤其是对于初级职位。Simplilearn对面试中可能出现的一些技术问题进行了详细的分析,包括但不限于:
- JavaScript和jQuery有什么不同?
- 什么是跨站点脚本?
- 你的内容安全策略(CSP)方法是什么?
- JavaScript中的作用域是什么?
- 你是如何减少页面加载时间的?
- 区分集中式和分布式版本控制系统
其他网站也提供类似的列表,包括Turing.edu和GitHub,后者提供了按子类别分解的问题,包括性能、测试、可访问性、网络、编码等。例如,你如何回答GitHub repo中的以下问题:
传统上,为什么从多个域提供站点资产会更好?
尽你所能地描述从你输入一个网站的URL到它在你的屏幕上完成加载的过程。
Long-Polling、Websockets和Server-Sent Events之间有什么区别?
无论是什么公司或工作机会,你都可能被要求对特定的语言特性、工具或过程给出一个顶层的解释,或者,面试官也可以问你以前在这些方面的经历。例如,他们可能想知道你如何解决GitHub中的合并冲突,特别是如果你希望与一个大团队一起构建或维护一个网站。
务必事先对目标公司进行调查。许多面试官会问一些问题,了解你为什么想为这家公司工作。例如:
- 你对我们公司和我们的发展方向有什么了解?
- 你为什么对这个职位感兴趣?
- 你的前端开发技能将如何帮助我们实现整体战略?
许多公司都在寻找在移动领域有丰富经验的前端开发者,你必须知道如何为iOS和Android开发应用程序,许多前端开发者面试问题将深入挖掘你的移动技能。这不仅仅是一个构建用户体验和应用程序的问题,前端开发人员需要知道如何处理在处理面向客户和业务的产品时出现的不可避免的隐私、数据和安全问题。
你还应该讲述你如何使用你的“软技能”,如同理心和沟通,帮助你以前的团队和组织克服重大的网站挑战的个人故事。企业需要有团队精神的人,向他们展示你有能力帮助身边的人取得成功。
我还需要知道些什么才能做好准备?
Dice Insights采访了IT和商业基础设施咨询公司Janco Associates的首席执行官Victor Janulaitis,详细分析了当今前端开发人员面临的挑战、面试中可能出现的最重要技能。
“他们必须紧跟终端用户计算的发展趋势,”Janulaitis说。“他们必须了解如何构建自己,这样他们才能在团队中工作,在团队中处理代码子集。”
Janulaitis继续说道:“前端开发者必须能够解释如何做到这一点。“你必须确保你有良好的验证流程。他们如何在开发和测试过程中与其他前端开发人员进行互动,他们如何进行回归测试以确保他们所做的工作是有效的?”
除了引导面试官完成面试过程外,前端开发人员还应该准备好谈论他们过去的经验,特别是那些与手头工作相关的元素。例如,如果你申请的是一份涉及大量移动端工作的工作,那就准备一些故事,讲述你是如何认识并克服与iOS和Android前端开发相关的挑战的。
什么品质使我成为一名优秀的前端开发人员候选人?
Janulaitis说:“这个人有很好的职业道德,知道什么是优先事项。”“让我们以当前的情况为例——你是一名前端开发人员,遇到了危机,你不得不远离其他人,你必须完成一项高质量的工作——你是否能够自我激励以确保完成任务?”
特别是在一个在家工作的环境中,这一切都归结为成功地确定任务优先级的能力,以及知道为了整个项目的利益,首先要完成什么是最重要的。Janulaitis补充道:“如果他们有这种心态,他们就能成为非常成功的前端开发者。
除了个人动力和熟练掌握技术技能之外,能够与同事迅速合作是另一项基本能力。他说:“当你在处理一个包含大量代码和大量团队工具的复杂项目时,比如微软Azure,人们可以在其中添加错误,你们可以一起完成项目,你需要有这样的经验。”“问题是实时出现的,必须实时解决。他们必须了解版本控制和修订控制,他们是否具备处理这些问题的技能。在那种环境中,独行侠不再存在——你必须能够支持团队。”
我该问什么?
在任何工作面试中,面试官都会问你是否有什么问题。这是一个很好的机会,可以问任何你觉得困惑的工作流程或公司的优先事项——虽然问一些关于你可能加入的企业和团队的稳定性的尖锐问题可能是一件很困难的事情,但最好现在就问一些尖锐的问题,这样以后就不会有不愉快的惊喜了。
Janulaitis说:“询问这个团队已经存在多久了,有多少原来的团队成员还在那里。”“如果是一家初创公司,问问他们能否支付未来六个月的工资。我看到有一个犹他州的创业公司资金用光了,不得不让所有人离职。前端开发者需要确保自己能够胜任这项工作,但同时也要确保公司仍在支持你的工作。”
这也意味着你应该在进入面试之前做好调查。一定要通读几年来有关这家公司的新闻报道(和新闻稿)。如果你和在这家公司工作过的人有共同的朋友,你也可以要求别人介绍你。
Janulaitis总结道:“了解公司是如何运作的——你必须在整个过程中尽职调查,并确保公司也没有试图夸大你的能力。”
作者:Nathan Eddy