技术面试备战指南:从屡次碰壁到斩获高薪offer的实战经验

一位前端开发者分享了他在18个月求职挫折中总结的面试准备系统,核心是利用主动回忆和闪卡方法克服基础知识记忆难题,并改变求职策略,最终成功获得高薪职位。本文详细介绍了他的具体步骤、工具使用心得以及关键教训。

如何准备技术工作面试——基于我成功获得工作的经验

你好,我是 Ilyas。我是一名 Web 开发者,这是我关于如何在长时间内挣扎于面试,以及最终是什么帮助我突破困境的故事。我将谈谈在基本面试问题上失败的经历教会了我关于记忆、准备和更明智求职的事情。

如果你是一位不断被拒绝,且不完全理解原因的初级、中级或自学开发者,我希望这能有所帮助。

以下是我将要涵盖的内容:

  • 我 18 个月的求职挣扎
  • 我未曾预料的面试问题
  • 发现主动回忆和闪卡
  • 我的面试准备系统
  • 成果
  • 改变我寻找工作的方式
  • 将我的系统转化为一个小工具
  • 我学到的经验教训
  • 最后的思考

我 18 个月的求职挣扎

18 个月里,我一直在努力寻找一份远程或可搬迁的 Web 开发工作。

在那段时间里:

  • 我申请了超过 1,000 个职位
  • 我经历了大约 20-30 次面试
  • 我搞砸了其中大部分面试

这令人筋疲力尽。我感觉自己付出了很多努力,却几乎没有任何成果。随着时间的推移,我开始怀疑自己的技能,并想知道我是否还能找到一份真正令自己满意的工作。

更令人困惑的是,就在几年前(2021 年),我几乎没有任何经验,却只用了三周就找到了一份美国公司的远程工作。显然,有些事情已经行不通了。

我未曾预料的面试问题

经过数十次面试后,我注意到一个模式:我失败的原因不是无法解决复杂的算法问题或在压力下构建功能。我是在基本的技术问题上栽了跟头。

例如这样的问题:

  • “React 中的 Portals 是什么?”
  • “你能解释一下 HTTP GET 请求是如何工作的吗?”

这些并不是难题。这些都是我以前学过的东西。但在面试中,在压力之下,我就是无法回忆起来。或者仅仅是因为在准备时跳过了它,因为没有相应的系统。

那时我意识到了真正的问题:我不是不理解概念,而是无法快速回忆起它们。

我的第一反应是学习更多。更多的教程、更多的文章、更多的视频。

但被动学习并没有解决问题。我仍然在面试时大脑一片空白。我真正需要的是一种训练记忆力的方法,而不仅仅是消费信息。

发现主动回忆和闪卡

就在这时,我遇到了闪卡和主动回忆的概念。

主动回忆意味着反复测试自己所学的内容,而不是仅仅重读材料。你先尝试凭记忆回答问题,然后核对答案。这种方法在一个多世纪前就得到了研究的支持。

我开始用这种方式练习小而具体的概念,比如:

  • React 基础知识
  • JavaScript 基础
  • HTTP 方法
  • 浏览器行为

我反复练习,直到回忆答案变得自然而然。

这在面试中产生了巨大的不同。闪卡帮助你过滤噪音,真正学到重要的东西。这不仅仅是记忆事实——而是关于真正理解、快速记忆,并在你学习的每个概念中打下坚实的基础。

所以,为了帮助你准备面试,我结合了多年的经验和科学的学习方法,将它们转化为一种工具和方法,让你在正确的时间获得正确的信息。

我的面试准备系统

一旦我找到了正确的学习方法,我就围绕它建立了一个简单的系统。

第一步:询问需要准备什么

我不再猜测要学什么,而是开始直接询问招聘人员: “我应该为技术面试准备哪些主题?”

令人惊讶的是,他们中的许多人回复了一个清晰的列表,这帮助我只专注于真正重要的内容,避免过度准备随机主题。根据我的经验,很多 HR 代表对求职者相当有帮助。

例如,当我申请一个 React 前端 Web 开发职位时,HR 专员建议我主要专注于 React 和 JavaScript。所以我准备了所有围绕提升(JS)、事件循环(JS)、React 底层工作原理、props 是什么以及如何工作等热门问题。

总的来说,那次面试进展顺利——但当我遇到一个关于 React Portals 的问题时,我无法正确解释它。因此我没有得到这个职位。但我不为此责怪自己,因为这是一个非常冷门的话题。😊

我还申请了另一个前端开发职位,HR 专员建议我主要准备关于 GSAP、Framer Motion 和 React/Next JS 的问题。这很有道理,因为该公司主要构建现代动画网站。

在我的面试中,理论部分进行得很顺利,但我失败了带回家的作业。那时我意识到我在这些领域技能不足。

在另一家公司,我向 HR 询问了文化面试,这是最后一轮。那位代表说:“别担心,你这边困难的工作已经完成了。只需准备一个轻松的对话。”

而在我提交的最后一份申请(并且实际上得到了工作录用通知)之前,HR 专员告诉我重点准备 CSS——尤其是 Flexbox 和 Grid。这很有道理,因为这个职位是 HTML 标记开发人员。因此,我练习了关于这些主题的所有细节,甚至是比较冷门的部分。

我对每一轮面试都采用同样的方法。

第二步:使用闪卡(谨慎使用 AI)

我使用 ChatGPT 为每个主题生成闪卡,并每天复习它们。

我学到的一个重要事情是:AI 有时会出错。为了减少错误,我开始在提示中添加官方文档的链接,以便答案基于可靠的来源。

我保持学习时间简短而连贯。这种连贯性比长时间的学习更重要。

AI 出错是我创建 99cards.dev 的原因

以下是我在 ChatGPT 中使用的提示:

你是一位拥有 20 年经验的 Web 开发专家。你的任务是帮助我为面试做准备。 请准备 10 张关于 CSS Flexbox 主题的闪卡。格式为一个问题附带四个答案。其中一个答案是正确的。 你将逐个提供所有问题。在我回答之后,你给我反馈,然后给我下一个问题。

请注意,你应该根据你的需求和需要复习的内容来调整你的提示。

你可以尝试各种因素,例如:

  • 难度:初学者或高级
  • 具体性:从模糊(例如:我想练习 CSS)到高度具体(例如:我想练习 CSS Flexbox 中的 flex 属性)
  • 问题数量:最佳范围是 10 到 20 个
  • 添加上下文:好的做法是添加官方文档的链接,因为这可以减少 AI 幻觉的机会

以下是 ChatGPT 创建的典型闪卡:

如果你提供了答案,你会得到这样的反馈:

成果

几周后,面试感觉大不相同了。

我更加冷静。我能回答基本问题而不会恐慌。我能清晰而自信地解释概念。

在我最后的面试过程中,我一口气通过了四轮面试,并在技术测试中获得了 95% 的分数。

不久之后,我收到了一份录用通知:每月 5,500 美元,并为我和我的家人提供付费搬迁套餐。

很长一段时间以来,我的努力第一次与成果匹配。

改变我寻找工作的方式

在获得录用通知的大约六周前,我还改变了寻找工作的渠道。

我不再仅仅依赖大型招聘平台,而是开始使用像 Telegram 工作群组这样的小型社区。

这有两个好处:

  • 竞争更少:许多小公司在那里发布职位,申请者较少
  • 直接沟通:我可以在申请前直接给招聘人员发消息

在提交申请之前,我会问: “我看到了这个职位。这是我的简历和 LinkedIn。我是否适合?”

如果答案是肯定的,我就申请。如果不是,我立即转向下一个。

这为我节省了大量时间和精力。

将我的系统转化为一个小工具

在为面试做准备时,我为自己创建了数千张闪卡。在笔记中管理它们变得很困难,所以我最终将它们变成了一个名为 99cards.dev 的小工具。

它只是一个经过事实核查的 Web 开发闪卡集合,按主题分组,基于帮助我停止在基本面试问题上失败的同一种方法。

以下是该应用程序的一些截图:

我学到的经验教训

以下是这次经历的一些收获:

  • 面试失败并不总是意味着你缺乏技能
  • 被动学习对于面试准备是不够的
  • 能够快速回忆基础知识非常重要
  • 求职是一项技能,而不仅仅是数字游戏
  • 一致性每次都能胜过临时抱佛脚

最后的思考

如果你现在正在为面试而挣扎,特别是作为一名初级、中级或自学开发者,不要假设你不擅长你所做的事情。

就我而言,问题不在于努力或天赋。而在于准备和方法。

我还根据我的经验创建了一份免费的面试清单,涵盖了 HR、技术、行为、系统设计、现场编码、带回家任务、算法和文化契合度。

我希望这个故事能为你节省一些时间和压力。

你往往距离一份好工作只有一次成功的面试之遥。— Ilyas

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计