本指南提供了实用说明,旨在帮助您充分利用《编程面试大学》学习计划。无论您是希望填补知识空白的自学开发者、准备面试的计算机科学学生,还是正在转行的人士,本文档都将帮助您以结构化、高效的方式学习大量材料。
本指南的目的是解释如何根据您的背景、可用时间和目标,有效地完成《编程面试大学》学习计划。它涵盖了:
有关课程中涵盖的具体主题的信息,请参阅核心学习计划。
《编程面试大学》课程是一个全面的计算机科学基础知识路线图,为软件公司的技术面试所需。在深入学习之前,了解该计划的结构非常重要。
学习计划结构图
来源: [README.md:75-93, 144-150, 218-260, 489-503]
该学习计划旨在系统地进行。您可以使用 GitHub 的任务列表系统或任何其他适合您的方法来追踪进度。
Fork 存储库
克隆到本地机器
git clone https://github.com/<YOUR_GITHUB_USERNAME>/coding-interview-university.git
cd coding-interview-university
git remote add upstream https://github.com/jwasham/coding-interview-university.git
git remote set-url --push upstream DISABLE
创建进度分支
git checkout -b progress
标记您的进度
提交并同步您的更改
git commit -am "Marked personal progress"
git pull upstream main
git push
来源: [README.md:219-260]
如果您不想使用 Git
来源: [README.md:226-232]
学习计划可以根据您的背景和目标进行调整。以下是不同类型的人可能会如何进行:
| 经验水平 | 推荐方法 | 重点领域 | 预计时间 |
|---|---|---|---|
| 完全初学者 | 按顺序学习所有主题;在基础知识上投入更多时间 | 编程基础、数据结构、算法 | 8-12 个月 |
| 自学开发者 | 专注于您遗漏的计算机科学基础知识;快速浏览熟悉的主题 | 数据结构、算法、系统设计 | 4-6 个月 |
| 计算机科学毕业生 | 复习基础知识;专注于面试专项练习 | 解决问题练习、面试技巧 | 1-3 个月 |
| 经验丰富的工程师 | 有针对性地复习薄弱环节;大量侧重于实践 | 系统设计、复杂算法、专业主题 | 1-2 个月 |
来源: [README.md:62-72, 193-211, 406-476]
建立一个持续的日常学习习惯是掌握材料的关键。
推荐的日常学习流程
来源: [README.md:489-503, 421-476]
学习计划最重要的一个方面是平衡理论知识与实际实现和问题解决。
来源: [README.md:451-467, 505-532]
根据其他已完成学习计划的人的经验,以下是应避免的主要陷阱:
与其试图记住所有细节,不如专注于理解核心概念。使用间隔重复(抽认卡)等技术来巩固重要信息。
仅仅阅读或观看视频是不够的。对于每种数据结构和算法,即使看起来很简单,也要亲自编写代码。
一个常见的错误是推迟编程练习,直到学完所有理论之后。相反,应该在学习理论的同时练习编程问题。
面对如此广泛的课程,很容易失去专注。创建无干扰的学习环境,并考虑使用番茄工作法等技术。
零星的学习不如规律、持续的练习有效。建立一个日常习惯,即使每天只学习一个小时。
来源: [README.md:406-476]
有效地记住所学内容对于长期成功至关重要。学习计划推荐了几种策略:
为重要概念、算法和代码片段创建抽认卡。使用间隔重复系统定期复习它们。
选项包括:
定期自我测试之前学过的材料,不看笔记。
向他人(甚至是想象中的学生)解释概念有助于巩固您的理解。
来源: [README.md:416-450]
《编程面试大学》学习计划内容全面,需要投入大量精力,但如果方法得当,它将是准备技术面试的极其有效的工具。
请记住:
遵循这些指南,您将从学习计划中获得最大价值,并显著提高您在技术面试中取得成功的机会。
来源: [README.md:75-93, 193-211, 406-476, 489-503, 505-532]