编写面试学习计划——根据剩余时间学习和练习什么
原文:https://www.techinterviewhandbook.org/coding-interview-study-plan/
在开始准备编码面试时,需要回答的一个最重要的问题是:为了最有效地准备编码面试,你应该做哪些研究课题和练习题?
互联网上有大量的资源,但很难知道它们如何适应你剩下的准备时间。谢天谢地,这篇文章将帮助你解决这个问题。
我亲自经历过几次可怕的软件工程师面试过程,并准备了自己的学习计划,每次都加以完善。
在这篇文章中,我将分享我个人用来准备编码面试的 3 个月学习计划。您将找到要学习的确切主题(带有推荐链接)和要练习的确切问题(带有练习链接)。
建议的准备时间和方法和
你需要多少时间来准备你的编码面试?一般来说,3 个月(如果你能每周投入 11 个小时)是更全面准备的推荐时间。我将分享 3 个月的推荐学习计划(推荐期),但你可以通过 Grind 75 工具(由我构建)为任何时间框架的练习题生成学习计划。更多的选项,如按难度过滤,主题,可选择的问题分组可以在那里找到。
不管你有多长时间,如果你不熟悉核心数据结构和算法知识,建议你在开始编码面试问题练习之前复习一下。不同的人有不同的练习方式,你应该做最适合你的。各种可能的方法有:
- 广度优先准备——复习每个话题,然后开始练习所有话题的各种问题。如果你有大约一个月的空闲时间,这一策略是值得推荐的。
- 深度优先准备——一次处理一个话题——修改一个话题的材料,练习该话题的大量问题。在确保掌握了一个话题之后,继续下一个话题。对所有或选定的主题重复上述步骤。如果你没有太多时间,这可能是最好的准备方式。您可以专注于我们推荐的学习计划中的高优先级主题。
- 先深度后广度的准备——一次处理一个话题——为一个话题修改材料,为这个话题练习几个问题。确保掌握之后,进入下一个话题。对所有主题重复上述步骤。最后,练习所有主题的各种问题。这个策略比其他的要花更多的时间,所以如果你有一个月以上的时间的话,推荐使用。
我个人推荐的是广度优先准备或深度优先然后广度准备。在你的时间表中安排一些广度的学习/练习是很重要的,这样当你继续后面的话题时,你就不会忘记前面的话题。
3 个月学习计划-包含推荐学习资源和练习题链接
在每个学习计划中,你会发现一个包含资源和练习问题的编码面试主题列表,你应该每周按照优先级顺序完成。
为了更好地利用它,你应该创建一个模板,将每天的剩余日期和剩余时间分解,这样你就可以在以后填写每天要涉及的主题/问题。
保持相对保守的估计,这样你就不会筋疲力尽。
第 1 - 4 周:专题学习+练习
这些都是你应该研究的课题,按优先顺序排列。链接的学习资源是我的算法备忘单——它概述了必须记住的内容,如时间复杂性、极限情况、特定主题的有用技术,以及基本的和推荐的练习题。
在你练习的早期,不要忘记应用编码面试最佳实践中的行为和编码面试技巧中的方法!
第一周
主题 | 优先 | 所需时间 |
---|---|---|
数组 | 高的 | 2 小时 |
字符串 | 高的 | 3 小时 |
哈希表 | 中间的 | 3 小时 |
递归 | 中间的 | 3 小时 |
第二周
主题 | 优先 | 所需时间 |
---|---|---|
分类和搜索 | 高的 | 3 小时 |
矩阵 | 高的 | 1 小时 |
链表 | 中间的 | 3 小时 |
队列 | 中间的 | 2 小时 |
堆栈 | 中间的 | 2 小时 |
第三周
主题 | 优先 | 所需时间 |
---|---|---|
树 | 高的 | 4 小时 |
图形 | 高的 | 4 小时 |
堆 | 中间的 | 3 小时 |
排序 | 中间的 | 3 小时 |
第四周
主题 | 优先 | 所需时间 |
---|---|---|
间隔 | 中间的 | 2 小时 |
动态编程 | 低的 | 4 小时 |
二进制 | 低的 | 2 小时 |
数学 | 低的 | 1 小时 |
几何形状 | 低的 | 1 小时 |
第 5 - 12 周:深度练习
在这里,我列出了你应该做的 75 个问题,为你的编码面试做好充分准备。这个问题列表是从 Grind 75 工具 (由我搭建)中生成的,它根据你所剩的时间生成编码面试的推荐学习计划。更多的选项,如按难度过滤,主题,可选择的问题分组可以在那里找到。
- 如果你遵循了第 1 - 4 周的学习计划,你应该已经完成了这里的一些问题。随意跳过它们或者再做一遍。
- 如果你没有研究过动态编程问题或者觉得这些问题不相关,可以跳过它们。无论如何,许多动态规划问题都可以用递归/回溯来解决。
在你练习的早期,不要忘记应用编码面试最佳实践中的行为和编码面试技巧中的方法!
我们推荐使用 Grind 75 工具,它可以让你跟踪你的练习进度。
为你的自我介绍、最终问题和模拟编码面试留出时间
除了学习和练习编码面试,你还应该准备你的自我介绍,最后的问题,并尝试模拟编码面试。
准备自我介绍和要问的最后问题
我建议用大约 3 个小时来准备你的自我介绍,并准备一些最后要问的问题。你可以参考这个自我介绍指南和最终问题提问指南,它们应该可以帮助你相当快速地完成这些步骤。
安排模拟编码面试
当您的编码面试学习和实践计划完成了 60%时,您应该开始安排模拟编码面试。面试时间通常是由面试官提供的,所以你可以提前查看和预订。我个人用过并推荐的平台是interview . io。在这里阅读更多关于不同模拟编码面试平台的信息。