coding-interview-study-plan


文档摘要

确保翻译不显得太生硬。确保翻译注释。 这个文件是用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或路径,但保留它们在文件中。
请从左到右写输出。

id: 编码面试学习计划
title: 编码面试学习计划——根据剩余时间该学什么、练什么
description: 根据剩余时间安排学习主题和练习题目,为软件工程师编码面试做准备
keywords:
[
编码面试学习计划,
编码面试该学什么,
如何准备编码面试,
编码面试该做哪些练习题,
3个月如何准备编码面试,
]
sidebar_label: 学习与练习计划

import InDocAd from './_components/InDocAd'; import QuestionList from './_components/QuestionList';

在开始准备编码面试时,最重要的问题之一就是:为了最高效地准备编码面试,你应该学习哪些主题、练习哪些题目?

互联网上有大量资源,但很难弄清楚这些资源如何与你剩余的备考时间相匹配。幸运的是,本文将帮助你解决这个问题。

我自己曾多次经历令人畏惧的软件工程师面试流程,并亲自制定过学习计划,每次都在不断优化和完善。

在本文中,我将分享我本人用于准备编码面试的3个月学习计划。你会找到确切的学习主题(附推荐链接)以及确切的练习题目(附练习链接)。

推荐的备考时间和方法

你需要花多少时间准备编码面试?一般来说,3个月(如果你每周能投入11小时)是比较推荐的完整备考周期。我会分享针对3个月的推荐学习计划,但你也可以通过我开发的Grind 75工具,生成任意时间段的练习题目学习计划。在那里,你还能找到更多选项,比如按难度、主题筛选,或者对题目进行其他分组。

无论你有多少时间,如果你还不熟悉核心数据结构和算法知识,建议先复习一下再开始练习编码面试题目。不同的人有不同的练习方式,你应该选择最适合自己的方法。以下是几种可能的策略:

  1. 广度优先备考——先复习所有主题,然后开始练习各个主题的多种题目。如果你还有一整个月的时间,推荐采用这种策略。
  2. 深度优先备考——一次攻克一个主题——先复习某个主题的材料,多做该主题的题目。确保完全掌握后再进入下一个主题。重复这一过程,直到完成全部或部分主题。如果你时间不多,这可能是最好的备考方式。你可以重点练习我们推荐学习计划中的高优先级主题。
  3. 深度优先后广度备考——一次攻克一个主题——先复习某个主题的材料,做少量该主题的题目。确保完全掌握后再进入下一个主题。重复这一过程,直到完成全部主题。最后,再练习各个主题的多种题目。这种策略比其他方法耗时更长,因此适合有超过一个月时间的人。

我个人推荐“广度优先备考”或“深度优先后广度备考”。重要的是,在你的备考计划中一定要安排一些广度级别的学习和练习,这样当你进入后面的主题时,才不会忘记之前学过的内容。

3个月学习计划——附推荐学习资源和练习题目链接

在每个学习计划中,你会看到一份编码面试主题列表,附带学习资源和练习题目,你应该按照优先级顺序每周完成。

为了更好地利用这份计划,你可以创建一个模板,把剩余天数和每天的可用时间分解出来,以便日后填入每天需要覆盖的主题和题目。

估算时间时要相对保守一点,以免最后累垮自己。

第1至4周:专题学习+练习

这些都是你应该学习的主题,按优先级排序。链接的学习资源是我整理的算法速查表——它为你提供了必须牢记的知识点,比如时间复杂度、边界情况以及各主题的实用技巧,还有必备和推荐的练习题目。

别忘了在练习时尽早应用【编码面试最佳实践】中的行为和【编码面试技巧】中的方法!

第1周

主题 优先级 所需时间
数组 2小时
字符串 3小时
哈希表 3小时
递归 3小时

第2周

主题 优先级 所需时间
排序与搜索 3小时
矩阵 1小时
链表 3小时
队列 2小时
2小时

第3周

主题 优先级 所需时间
4小时
4小时
3小时
字典树 3小时

第4周

主题 优先级 所需时间
区间 2小时
动态规划 4小时
二进制 2小时
数学 1小时
几何 1小时

第5至12周:深入练习

这里列出了75道题目,是你为编码面试充分准备应该做的。这些题目来自我开发的【Grind 75工具】(https://www.techinterviewhandbook.org/grind75/),它会根据你剩余的时间生成推荐的编码面试学习计划。那里还有更多选项,比如按难度、主题筛选,或者对题目进行其他分组。

  • 如果你已经按照第1至4周的学习计划完成了部分题目,可以跳过这些题目,或者重新做一遍。
  • 如果你还没学过动态规划,或者觉得它对你没用,可以跳过动态规划题目。很多动态规划题目其实可以用递归或回溯来解决。

别忘了在练习时尽早应用【编码面试最佳实践】中的行为和【编码面试技巧】中的方法!

我们推荐使用【Grind 75】工具,它可以帮你记录练习进度。

考虑自我介绍、最终问题和模拟编码面试的时间

除了学习和练习编码面试题目,你还应该准备好自我介绍、最终问题,以及尝试模拟编码面试。

准备自我介绍和最终问题

我建议花大约3个小时来撰写自我介绍,并准备一些最终问题。你可以参考这篇【自我介绍指南】(./self-introduction.md)和【最终问题指南】(./final-questions.md),它们能帮你快速完成这些步骤。

安排模拟编码面试

当你完成编码面试学习和练习计划的60%时,就可以开始安排模拟编码面试了。面试官通常会提供面试时段,你可以提前查看并预约。我个人使用并推荐的平台是【interviewing.io】(https://iio.sh/r/DMCa)。更多关于【不同模拟编码面试平台】的信息,请参阅【mock-interviews.md】。

免责声明
本文档采用基于机器的 AI 翻译服务进行翻译。尽管我们力求准确,但请注意,自动翻译可能存在错误或不准确之处。应以原文语言版本的文档作为权威依据。如需获取关键信息,建议使用专业的人工翻译。对于因使用本翻译而产生的任何误解或误读,我们概不负责。


发布者: 作者: 转发
评论区 (0)
U