2021 年 12 月我参加的 7 场前端面试

2025-05-24

2021 年 12 月我参加的 7 场前端面试

我最近正在为自己寻找一份新工作,为此,我参加了7 个同时进行的React 和 Typescript前端职位的面试。

随着时间一天天过去,一周周过去,面试也一天天过去,我学到了很多东西。我了解了自己,也了解了公司评估候选人的方式。我认为,这些知识,加上对当今前端面试现状的真实观察,对其他正在求职的人和正在招聘的团队来说,会非常有帮助(可以参考面试思路!)。

在本文中,我将介绍我面试过的每家公司(不透露名称,对不起狗仔队!📸),我将概述整个过程及其阶段,并尝试就每种方法的优缺点发表我的看法。

免责声明

说实话,每周进行 5-6 次采访并不是一个好主意

压力很大,很累,而且还要不停地切换工作内容。面试某种程度上来说,就像一场表演,你必须在每一次面试中都保持最佳状态,因为无论你当天早些时候和另一家公司谈得多么顺利,最终结果都无关紧要。

我建议求职者同时专注于2个,最多3个流程。求职其实就是一份全职工作,限制你的选择能帮助你专注于真正感兴趣的领域。


公司 1️⃣

尺寸 <20
领域 工作管理工具
位置 前端开发人员
过程
  • 与其中一位创始人的初次通话(45 分钟)
  • 与 FE 工程师一起展示和讲述一个项目(1 小时)
  • 与另一位创始人通话(45 分钟)
  • 产品演示(根据我的要求)(30 分钟)
  • 与 FE 技术主管通话(1 小时)
经验 好!👍🏼

我的看法

好的😇

  • 公平、轻松的流程
  • 展示和讲述一个项目是评估候选人技术技能的最佳方法之一,无需经历可怕的“现场编码”或繁琐的“带回家测试”
  • 技术讲座采用“不做错题”的方法
  • 与 C 级人员(创始人)的谈话非常有趣且轻松

不好的

  • 与前端主管的谈话令人困惑。他们看起来优柔寡断,马虎大意,不像个“领导者”。这在很大程度上影响了我退出的决定。

丑陋的👹

  • 他们尝试远程招聘,但还不知道该怎么做

结论

我在他们发出录用通知之前就退学了(他们说已经准备好了)。我意识到我想加入一个更大的工程组织。


公司 2️⃣

尺寸 > 3000
领域 开发人员的技术工具
位置 前端工程师
过程
  • 与内部招聘人员的初次通话(30 分钟)
  • 算法现场编码(使用他们提供的学习材料)(1 小时)
  • 带回家测试(约一周)
  • “更复杂”的现场编码练习(1 小时)
  • 软件设计(FE)与白板(1 小时)
  • 与工程经理的最后谈话(1 小时)
经验 糟糕😒

我的看法是:

好的😇

  • 结构清晰的流程
  • 他们提供了算法测试的学习材料
  • 离开我之后他们提供了详尽的反馈
  • 他们向我发送了一份关于我的经历的匿名温室调查

不好的

  • 技术测试太多,压力很大
  • 沟通缓慢(约每周一次)
  • 不清楚的实时编码测试(他们没有说有 2 个问题,所以我在第一个较简单的问题上花了太多时间)
  • 未经培训的技术面试官照本宣科

丑陋的👹

  • 根据候选人在同行和时间压力下解决基本算法的能力而放弃一位经验丰富的候选人🚩(就我个人而言,这不是我想为之工作的公司)
  • 在算法调用期间,他们要么给我错误的提示(让我采取错误的方法),要么他们的措辞过于含糊(我真的希望是后者)

结论:
他们放弃了我,所以我可能会有点不爽,但是:解决那些早已被解决、谷歌搜索能力很强的问题,或者实现现有的算法,与我能为产品团队带来的价值相去甚远。如果这是他们最关心的事情,那这家公司就不适合我。


公司 3️⃣

尺寸 ~ 300
领域 付款
位置 高级前端工程师
过程
  • 与内部招聘人员的初次通话(30 分钟)
  • 与 FE 开发人员进行技术交流(1 小时)
  • 与 2 名开发人员一起进行 FE 系统设计(下文有更多内容!)(1 小时)
  • 与工程经理和非技术队友的价值观面试(1 小时)
  • 与潜在团队会面(应我的要求)(45 分钟)
经验 非常好!❤️

我的看法是:

好的😇

  • 周围都是善良友善的人
  • 每次面试后,内部招聘人员都会花时间与我交谈,这建立了友好的关系
  • (几乎)没有现场编码,没有白板,没有家庭测试
  • 最喜欢的采访(全部!):FE 系统的设计
    • 没有白板
    • 查看应用程序屏幕设计,将其分解,发现问题,思考实施方案,评估选项及其优缺点。
    • 👆🏻 从字面上看,这是您在工作中做得最多的事情之一(除了编写/审查代码)。
    • 最后,一个小算法编码挑战(有点惊喜 :/ )但我已经热身并充满信心,一切进展顺利 :)

不好的

  • 那次面试的现场编程部分出乎意料,这通常被认为是一种不好的做法。面试一开始,候选人就应该了解面试的每个部分。这让他们有机会合理安排时间和精力。
  • 我跟团队负责人以及我潜在团队的一位队友聊过。他们还没准备好为我的职位提出一个有趣的挑战,最终导致我失去了兴趣。

丑陋的👹

  • 管理人员需要接受多元化方面的培训
    • 当我问到一位经理,他们如何为公司中代表性不足的群体发声时,他说:“我们实行开放政策,任何人都可以与任何人交谈,无论他们的级别如何。”
    • 需要说明的是,“开放门户”对于代表性不足的人来说是不够的,因为我们大多数人不会觉得有权公开表达自己的想法
    • 谦虚的建议:让代表性不足的人有机会说出自己的想法

结论:
他们给了我一个很难拒绝的 offer(没双关语🐴)。但我感觉我要做的工作不太明确,而且团队负责人在项目推介方面也做得不够好,所以我怀着沉重的心情选择了另一条路。


公司 4️⃣

尺寸 <20
领域 后勤
位置 软件工程师
过程
  • 与第三方招聘人员的初次通话(30 分钟)
  • 与 CTO 的初次通话(45 分钟)
  • 在家进行测试(约一周,花了我大约 6 个小时)
  • 致电审核家庭测试 + 添加功能(1 小时)
  • 与首席执行官/创始人通话(45 分钟)
  • 与 2 名团队成员通话(应我的要求)(每次 30 分钟)
经验 常规😕

我的看法是:

好的😇

  • 他们几乎从一开始就明确表示要给我一个 offer

不好的

  • 带回家的考试质量确实很低。
    • 他们给了我一个样板项目和一些需要实现的设计。没有任何规格或验收标准,图标无法导出,实体名称不一致,而且很难将 API 返回的数据与设计进行匹配。

丑陋的👹

  • 高管面试官的不礼貌行为
    • 在审查我的解决方案时,首席技术官质疑了项目的文件结构(什么?)并且似乎试图找出我“做错”的事情。
    • 后来,当我详细而仔细地重构我的代码以引入新功能时,他打断了我,因为他“不明白我在做什么”。
    • 在我完成了一个可行且干净的实施之后,他说“有一种更简单、更快捷的方法来获得相同的结果”。
    • 所有这些都与外部招聘人员声称他们非常高兴我加入的说法不一致。
  • 在后来与CTO的通话中,他让我说出我还在面试哪些公司,尽管这让我很不舒服,但我还是告诉了他。真希望我当时坚持自己的立场,拒绝透露这些信息。

结论
他们提出了三倍报价(不同的薪水和股票分配),但我拒绝了。


公司5️⃣

尺寸 ~ 150
领域 金融
位置 高级前端工程师
过程
  • 与第三方招聘人员的初次通话(30 分钟)
  • 与 2 位前端开发人员进行技术交流(60 分钟)
  • 与 2 位开发人员一起进行现场编码(他们提前共享任务)(90 分钟)
  • 与来自不同团队/领域的人员进行圆桌会议(60 分钟)
经验 第一印象很好,结局很糟糕💔

我的看法是:

这是最让我兴奋的公司,但当他们抛弃我时,我的心却碎了。

好的😇

  • 他们有公开的薪资范围和职业发展路径
  • 流程简短且重点突出
  • 他们提前分享了一个高度现实的项目(带有门票),我必须在现场编码期间进行这项工作

不好的

  • 我们在现场编码调试他们建议的附件时花费了大量时间,但不确定如何实现。

丑陋的👹

  • 两周过去了,他们仍然没有给我任何反馈,说明为什么我在直播编码后就被淘汰了。我已经两次请求了,都没有回复🚩

结论:
无论一家公司看起来有多酷,他们都需要言行一致,尊重候选人。我很遗憾他们解雇了我,但他们现在却对我置之不理,不征求我的反馈,这让我觉得他们并不像他们表现得那么酷。


公司 6️⃣

尺寸 ~ 150
领域 开源消息传递
位置 前端工程师
过程
  • 与第三方招聘人员的初次通话(30 分钟)
  • 与公司内部人力资源人员的初次通话(我本应向其提问)(45 分钟)
  • “领域无关”家庭测试(约一周,大约需要 3-4 小时)
  • 在一个非常基础的(和遗留的) React 应用程序上进行结对编程(60 分钟)
  • 与人力资源人员进行系统设计面试的准备电话会议(30 分钟)
  • 与工程副总裁和团队负责人讨论“看似简单”的系统设计(60 分钟)
  • 与前端团队成员交谈(应我的要求)(30 分钟)
经验 好!👍🏼

我的看法是:

好的😇

  • 所有有趣、尊重他人、善良的人
  • 有趣又简单的家庭测试,实际上 2-3 小时就可以完成(虽然我花了更多时间,因为我想做得恰到好处,但这只是我个人的想法)
  • 结对编程面试实际上是一种结对编程练习(而不是伪装的现场编码)。

不好的

  • 过程有点长,技术测试太多,对我来说不太合适。之前那个专注于 React 的测试非常过时(类组件,没有 Typescript)。它无法反映我正在开发的应用的实际状态。

丑陋的👹

  • 当我要求与团队成员交谈时,与我交谈的人并没有真正准备好推销这个项目,这对我的决定产生了最大的影响。

结论
他们给了我一个 offer,但我拒绝了,转而选择了另一个(请阅读下文!)。但他们说 offer 的条款有效期大约为 6 个月!真是太好了!😍


公司 7️⃣

尺寸 ~ 300
领域 付款
位置 软件工程师
过程
  • 与第三方招聘人员的初次通话(30 分钟)
  • 我必须将问题带到结对编程中去解决(60 分钟)
  • 与工程经理进行技术/价值观谈话(90 分钟,中途休息)
  • 与内部招聘人员谈论价值观(45 分钟)
  • 与团队和团队负责人见面(应我的要求)(各 30 分钟)
经验 好!👍🏼

我的看法

好的😇

  • 流程短且节奏快
  • 每次面试结束时每个面试官的反馈(包括我是否通过了!)
  • 结对编程实际上是结对编程(而不是伪装的现场编码)
  • 自带编程挑战赛让我感觉自己可以掌控如何被评估
  • 他们安排了两次电话会议来见我的潜在团队
  • 所有的谈话都让我清楚地了解与他们合作的感觉

不好的

  • 我有点困惑/恼火,竟然在和公司任何人沟通之前,就得“费尽心思”准备一个挑战。如果我当时联系的是公司内部的招聘人员,并且事先了解了更多情况,情况或许会有所不同。

丑陋的👹

  • 和我一起进行结对编程的人对 React 了解甚少,这对我很有帮助,因为我喜欢向人们解释 React,但如果他们专注于前端,我们可能会做得更多。

结论
他们提出了报价,我接受了!🎉

对我来说,最大的卖点是工作方式(XP/Lean,默认结对编程),再加上我可以走出自己的舒适区,在后端项目上做很多工作,并成为前端和 React 事务的参考人。


我的整体学习

对于候选人👩🏻‍💻

展示和讲述面试

  • 带一些让你真正兴奋或自豪的东西
  • 它可以很小,甚至可以专门为面试而构建(这样它就会展示出你最新的技能!)
  • 从你为什么要构建它开始
  • 提前思考如何完成它,你做出决定的原因以及你想要添加或改进的事情

实时编码

  • 确保你知道你需要完成多少练习
  • 你甚至可以问问他们认为应该花多长时间。这样你就可以调整自己的节奏。

帮助你做出决定

  • 如果你对加入一家公司心存疑虑,或者正在为众多竞争性职位犹豫不决,不妨先和潜在的队友通话,这样能让你更好地了解日常工作会是什么样的。对我来说,这对我来说意义非凡,因为:
    • 我将与一群人一起工作
    • 在某些项目中
    • 并具有一定的动态
    • 👆🏻 这应该比其他任何事情都更能影响我的决定,因为它会对你的工作产生最大的影响。
  • 根据我的经验,公司和招聘人员非常乐意在流程的最后阶段为您安排与团队的通话

决定你想分享多少

  • 您可能会被问及您正在参与的其他流程。
  • 公司经常会问这个问题,以确保他们不会在时间上落后。
  • 他们可能会询问您在偏好列表中的“位置”。
  • 他们可能会询问您其他公司的详细信息、规模、域名。
  • 想坦诚就坦诚,想含糊就含糊。这些都不会影响你拿到 offer 的机会。只是不要透露他们的名字。

提出问题,提供反馈

  • 每个人都知道每次面试都应该带着问题。如果你以前没有,现在就带上吧!
  • 询问您关心的事情,任何可以帮助您想象与他们一起工作或下定决心加入的事情。
  • 每次通话后,抓住机会向公司和面试官提供反馈。
    • 包括你喜欢它的地方以及可以改进的地方
    • 如果做得正确,这可能会让你成为脱颖而出的候选人!

对于招聘团队🏢

展示和讲述面试

  • 这是评估候选人经验和技能的绝佳方式,无需让他们当场回答问题!
  • 相反,它让他们掌控局面,你会看到更多与他们每天一起工作的感觉。
  • 通过编码 kata 或过于简单的功能开发练习,你不会看到太多这样的内容。

培训人们如何面试候选人

  • 尤其对于大型组织来说:要培训面试官进行对话式和技术性面试。他们是公司面向潜在员工的门面。

现场编程面试

  • 特别是对于 kata 风格的,请确保候选人知道他们在通话期间会遇到多少问题,并为他们提供每个问题的时间预算估计。
  • 提及他们是否因为一个问题而加班,并提供将一个问题转移到下一个问题或解决当前问题的选项。

推销项目

  • 当进入面试的最后阶段时,特别是如果你是一家中小型公司,面试官应该准备好向候选人介绍团队和公司
  • 对于那些需要在多个报价之间做出决定的人来说,最后的谈话通常可以决定交易的成败。
  • 如果您对某位候选人有全面的正面反馈,请确保您可以向他们提供一份他们感兴趣的工作机会
    • 我这样说并不是指金钱:大多数有经验的候选人都会得到类似的待遇,而且你很可能可以提供与他们其他地方得到的待遇相当的待遇。
    • 向他们推销一个他们会感到兴奋的职位和项目,甚至可能值得不去争取最高的薪水!

向候选人提供反馈

  • 这可以在面试结束之前
  • 可以与招聘人员进行“追赶”谈话
  • 可以作为报价前的热身
  • 如果公司放弃某个候选人,它肯定应该存在,特别是在候选人提出要求之后。
  • 想法💡:向候选人询问每次面试的反馈!

就这样,感谢您读到这里,请留下关于您自己的面试和被面试的经历的评论。

我希望这些内容在 2022 年能对您有所帮助!

文章来源:https://dev.to/anabella/7-front-end-interview-processes-i-did-in-december-2021-5484
PREV
👨‍💻 使用 HTML CSS 和 JS 创建响应式登陆页面🔥
NEXT
如何:打造自己的开发者品牌