确保翻译不显得太生硬。确保翻译注释。 这个文件是用Markdown格式写的。不要把它当作XML或HTML。 不要翻译任何[!NOTE]、[!WARNING]、[!TIP]、[!IMPORTANT]或[!CAUTION]。 不要翻译任何实体,如变量名、函数名、类名,或占位符如@@INLINECODEx@@或@@CODEBLOCKx@@,但保留它们在文件中。 不要翻译任何URL或路径,但保留它们在文件中。 请从左到右写输出。
确保翻译不显得太生硬。确保翻译注释。
这个文件是用Markdown格式写的。不要把它当作XML或HTML。
不要翻译任何[!NOTE]、[!WARNING]、[!TIP]、[!IMPORTANT]或[!CAUTION]。
不要翻译任何实体,如变量名、函数名、类名,或占位符如@@INLINE_CODE_x@@或@@CODE_BLOCK_x@@,但保留它们在文件中。
不要翻译任何URL或路径,但保留它们在文件中。
请从左到右写输出。
import InDocAd from './_components/InDocAd'; import QuestionList from './_components/QuestionList';
在开始准备编码面试时,最重要的问题之一就是:为了最高效地准备编码面试,你应该学习哪些主题、练习哪些题目?
互联网上有大量资源,但很难弄清楚这些资源如何与你剩余的备考时间相匹配。幸运的是,本文将帮助你解决这个问题。
我自己曾多次经历令人畏惧的软件工程师面试流程,并亲自制定过学习计划,每次都在不断优化和完善。
在本文中,我将分享我本人用于准备编码面试的3个月学习计划。你会找到确切的学习主题(附推荐链接)以及确切的练习题目(附练习链接)。
你需要花多少时间准备编码面试?一般来说,3个月(如果你每周能投入11小时)是比较推荐的完整备考周期。我会分享针对3个月的推荐学习计划,但你也可以通过我开发的Grind 75工具,生成任意时间段的练习题目学习计划。在那里,你还能找到更多选项,比如按难度、主题筛选,或者对题目进行其他分组。
无论你有多少时间,如果你还不熟悉核心数据结构和算法知识,建议先复习一下再开始练习编码面试题目。不同的人有不同的练习方式,你应该选择最适合自己的方法。以下是几种可能的策略:
我个人推荐“广度优先备考”或“深度优先后广度备考”。重要的是,在你的备考计划中一定要安排一些广度级别的学习和练习,这样当你进入后面的主题时,才不会忘记之前学过的内容。
在每个学习计划中,你会看到一份编码面试主题列表,附带学习资源和练习题目,你应该按照优先级顺序每周完成。
为了更好地利用这份计划,你可以创建一个模板,把剩余天数和每天的可用时间分解出来,以便日后填入每天需要覆盖的主题和题目。
估算时间时要相对保守一点,以免最后累垮自己。
这些都是你应该学习的主题,按优先级排序。链接的学习资源是我整理的算法速查表——它为你提供了必须牢记的知识点,比如时间复杂度、边界情况以及各主题的实用技巧,还有必备和推荐的练习题目。
别忘了在练习时尽早应用【编码面试最佳实践】中的行为和【编码面试技巧】中的方法!
| 主题 | 优先级 | 所需时间 |
|---|---|---|
| 数组 | 高 | 2小时 |
| 字符串 | 高 | 3小时 |
| 哈希表 | 中 | 3小时 |
| 递归 | 中 | 3小时 |
| 主题 | 优先级 | 所需时间 |
|---|---|---|
| 排序与搜索 | 高 | 3小时 |
| 矩阵 | 高 | 1小时 |
| 链表 | 中 | 3小时 |
| 队列 | 中 | 2小时 |
| 栈 | 中 | 2小时 |
| 主题 | 优先级 | 所需时间 |
|---|---|---|
| 树 | 高 | 4小时 |
| 图 | 高 | 4小时 |
| 堆 | 中 | 3小时 |
| 字典树 | 中 | 3小时 |
| 主题 | 优先级 | 所需时间 |
|---|---|---|
| 区间 | 中 | 2小时 |
| 动态规划 | 低 | 4小时 |
| 二进制 | 低 | 2小时 |
| 数学 | 低 | 1小时 |
| 几何 | 低 | 1小时 |
这里列出了75道题目,是你为编码面试充分准备应该做的。这些题目来自我开发的【Grind 75工具】(https://www.techinterviewhandbook.org/grind75/),它会根据你剩余的时间生成推荐的编码面试学习计划。那里还有更多选项,比如按难度、主题筛选,或者对题目进行其他分组。
别忘了在练习时尽早应用【编码面试最佳实践】中的行为和【编码面试技巧】中的方法!
我们推荐使用【Grind 75】工具,它可以帮你记录练习进度。
除了学习和练习编码面试题目,你还应该准备好自我介绍、最终问题,以及尝试模拟编码面试。
我建议花大约3个小时来撰写自我介绍,并准备一些最终问题。你可以参考这篇【自我介绍指南】(./self-introduction.md)和【最终问题指南】(./final-questions.md),它们能帮你快速完成这些步骤。
当你完成编码面试学习和练习计划的60%时,就可以开始安排模拟编码面试了。面试官通常会提供面试时段,你可以提前查看并预约。我个人使用并推荐的平台是【interviewing.io】(https://iio.sh/r/DMCa)。更多关于【不同模拟编码面试平台】的信息,请参阅【mock-interviews.md】。
免责声明:
本文档采用基于机器的 AI 翻译服务进行翻译。尽管我们力求准确,但请注意,自动翻译可能存在错误或不准确之处。应以原文语言版本的文档作为权威依据。如需获取关键信息,建议使用专业的人工翻译。对于因使用本翻译而产生的任何误解或误读,我们概不负责。