项目介绍

Coding Interview University 是由 John Washam 创建的开源项目,是一份详尽的计算机科学自学计划。作者本人通过这份计划的学习,成功获得了 Amazon 的软件开发工程师职位。该项目在 GitHub 上拥有超过 33 万颗星,是全球最受欢迎的面试准备资源之一。

这份学习计划最初只是一个简短的待办事项列表,但逐渐成长为今天你所看到的庞大知识体系。它涵盖了成为一名软件工程师所需的所有计算机科学基础知识,适用于准备 Amazon、Google、Facebook、Microsoft 等大型科技公司的技术面试。

项目信息详情
作者John Washam (jwasham)
GitHub Stars337,820+
学习周期数月(每天 8-12 小时)或更长
前置要求基本编程能力(变量、循环、函数等)
多语言支持中文、日语、俄语、西班牙语等 15+ 语言

学习内容

这份学习计划涵盖了计算机科学的核心知识领域:

📊 算法复杂度

Big-O 表示法、渐近分析、时间复杂度与空间复杂度的计算和权衡。

🔗 数据结构

数组、链表、栈、队列、哈希表、树(二叉树、BST、AVL、红黑树)、堆、图等。

🔢 排序与搜索

冒泡排序、选择排序、插入排序、归并排序、快速排序、堆排序、二分搜索等。

🕸️ 图论算法

BFS、DFS、Dijkstra、拓扑排序、最小生成树、强连通分量等。

💡 动态规划

动态规划的基本原理、记忆化搜索、经典 DP 问题和解题模式。

🏗️ 设计模式

常用设计模式(单例、工厂、观察者、策略等)以及面向对象设计原则。

🧵 并发与多线程

进程与线程、锁、信号量、死锁、并发编程模式和最佳实践。

🌐 网络与系统

TCP/IP、HTTP、DNS、操作系统基础、内存管理、系统设计入门。

主要特点

  • 完整的学习体系 — 从基础到高级,覆盖计算机科学大学课程约 75% 的核心内容
  • 实战验证 — 作者通过此计划成功入职 Amazon,学习路径经过真实面试检验
  • 详细的资源推荐 — 每个主题都附带推荐的书籍、视频课程和在线资源
  • 编程语言指导 — 提供选择编程语言的建议,支持 C、C++、Java、Python 等
  • 每日学习计划 — 包含具体的每日学习安排建议,帮助保持学习节奏
  • 面试准备书籍 — 推荐《Cracking the Coding Interview》等经典面试书籍
  • 编程练习指导 — 指导如何在 LeetCode 等平台上有效练习编程题
  • 避坑指南 — 作者分享了自己学习过程中的错误和经验教训

如何开始

1. 选择编程语言

选择一门你熟悉的语言用于面试编程。推荐 C++、Java 或 Python。作者建议在面试中使用你最擅长的语言。

2. 准备学习材料

推荐书籍:

  • 《算法导论》(Introduction to Algorithms, CLRS)
  • 《Cracking the Coding Interview》(程序员面试金典)
  • Steven Skiena 的《算法设计手册》

3. 按照计划系统学习

# Fork 并克隆仓库 git clone https://github.com/jwasham/coding-interview-university.git # 在学习过程中用 [x] 标记已完成的项目 # 例如:将 [ ] 改为 [x]

4. 坚持练习

每天在 LeetCodeHackerRank 上练习算法题。从简单题开始,逐步挑战中等和困难题目。坚持数月,你会看到明显的进步。

常见问题

完成这个学习计划需要多长时间?
取决于你每天投入的时间。作者全职学习了 8 个月,但他也承认浪费了很多时间在不必要的内容上。如果你每天学习 3-4 小时,大约需要 3-6 个月。关键是保持持续性。
我需要学习所有列出的内容吗?
不一定。作者明确表示你不需要学习他当初学的所有内容。计划中标注了核心必学内容和可选内容,建议优先完成核心部分,根据时间和目标公司选择性学习其余内容。
没有计算机科学学位能用这个计划吗?
当然可以。这个计划就是为非科班出身的开发者设计的。作者本人也是通过自学完成职业转型的。只需要基本的编程能力作为起点。
这个计划适合前端开发者面试吗?
这个计划主要针对软件工程(偏后端/全栈)面试。如果你准备前端开发面试,建议结合 roadmap.sh 的前端路线图一起使用。不过算法和数据结构部分对所有方向都适用。
有中文版吗?
有的。项目提供了简体中文和繁体中文翻译,可以在仓库的 translations 目录中找到 README-cn.md(简体中文)和 README-tw.md(繁体中文)。

社区议题

以下是该项目当前开放的 Issue(按评论数排序),共 72 条,标题已翻译为中文供参考。

编号 议题标题(中文翻译 / 英文原文) 创建日期 评论
#81 Translation: Hindi
Translation: Hindi
2016-12-21 43
#118 Translation : Korean
Translation : Korean
2017-01-05 40
#98 Translations: Arabic
Translations: Arabic
2016-12-29 18
#1000 I 想要 to translate in hebrew
I want to translate in hebrew
2021-10-22 18
#186 Translation : Persian
Translation : Persian
2017-04-12 17
#92 Translation: Vietnamese
Translation: Vietnamese
2016-12-25 16
#89 Translation : French
Translation : French
2016-12-23 16
#1087 Translation: Telugu
Translation: Telugu
2022-02-16 16
#1164 Translation: Afrikaans
Translation: Afrikaans
2022-07-10 12
#166 Translation: Greek
Translation: Greek
2017-03-13 12
#1030 Translation: Italian
Translation: Italian
2021-12-11 11
#117 Translation : Telugu
Translation : Telugu
2017-01-04 10
#106 Translation: Ukrainian
Translation: Ukrainian
2017-01-02 8
#156 Translation: Thai
Translation: Thai
2017-03-01 7
#82 Hebrew Translation
Hebrew Translation
2016-12-21 7
#1080 Translation: Bulgarian
Translation: Bulgarian
2022-02-14 6
#1002 I 想要 to translate to Marathi
I want to translate to Marathi
2021-10-24 6
#921 Translation in Tamil
Translation in Tamil
2021-07-18 6
#905 Bengali language is not properly formatted
Bengali language is not properly formatted
2021-06-23 6
#775 Translation: Uzbek
Translation: Uzbek
2021-04-07 5
#687 I 想要 to translate in Portuguese
I want to translate in Portuguese
2020-12-03 5
#520 Translation: Khmer (Cambodia)
Translation: Khmer (Cambodia)
2020-05-04 5
#1412 Translation: Burmese
Translation: Burmese
2023-11-23 4
#1057 Nepali Translation
Nepali Translation
2022-01-31 4
#286 Translation: Burmese
Translation: Burmese
2017-12-15 4
#1995 Coding
Coding
2025-04-09 3
#1946 propose to 添加 more cheatcheets
propose to add more cheatcheets
2024-12-17 3
#1208 Translation: Marathi
Translation: Marathi
2022-08-27 3
#719 I 想要 to translate in Malayalam
I want to translate in Malayalam
2021-01-05 3
#259 Translation: Bangla
Translation: Bangla
2017-10-04 3
#2055 Hai
Hai
2025-10-26 2
#2049 发现一个算法可视化网站haoku.net
发现一个算法可视化网站haoku.net
2025-09-20 2
#2039 链接 In Your README.md are opening on the same tab.
Links In Your README.md are opening on the same tab.
2025-08-11 2
#1988 Is there an ebook 版本 of "Coding Interview Patterns by Alex Xu"?
Is there an ebook version of "Coding Interview Patterns by Alex Xu"?
2025-03-20 2
#1963 Ai
Ai
2024-12-29 2
#519 Translation Urdu اردو ترجمہ
Translation Urdu اردو ترجمہ
2020-05-03 2
#307 Translation: Traditional Chinese
Translation: Traditional Chinese
2018-02-20 2
#2067 Hi there will love to join you guys
Hi there will love to join you guys
2026-02-14 1
#2052 i 想要 to 创建 a new sorting aglorithim
i want to create a new sorting aglorithim
2025-10-14 1
#1997 [X]
[X]
2025-04-19 1
#1985 Hii
Hii
2025-02-22 1
#1324 Translation:Kannada
Translation:Kannada
2023-02-15 1
#1312 Translation
Translation
2023-01-27 1
#1083 Translation: Kazakh
Translation: Kazakh
2022-02-15 1
#1064 Dutch translations
Dutch translations
2022-02-09 1
#896 Catalan translation
Catalan translation
2021-06-18 1
#2071 Abhijit resources
Abhijit resources
2026-03-08 0
#2050 Translation: Tajik
Translation: Tajik
2025-09-22 0
#2048 Study
Study
2025-09-18 0
#2047 Hi what's up
Hi what's up
2025-09-16 0
#2046 ▶️
▶️
2025-09-14 0
#2037 Ppt presentation
Ppt presentation
2025-07-17 0
#2005 Translation: Turkish
Translation: Turkish
2025-05-25 0
#2004 Nutrical France
Nutrical France
2025-05-24 0
#2002 Flappy bird game
Flappy bird game
2025-05-23 0
#1999 qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a
qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a
2025-05-06 0
#1996 Translation: French
Translation: French
2025-04-09 0
#1990 html, JavaScript,CSS,python
html, JavaScript,CSS,python
2025-03-25 0
#1983 Does geotools have plans to 支持 java21?
Does geotools have plans to support java21?
2025-02-17 0
#1980 WiFi hack
WiFi hack
2025-01-30 0
#1966 About Topics
About Topics
2025-01-03 0
#1965 链接 checker report
Link checker report
reportautomated issue
2025-01-01 0
#1948 链接 not working.
Link not working.
2024-12-17 0
#1534 Translation: Simplified Chinese
Translation: Simplified Chinese
2024-08-30 0
#1524 Translation: Tagalog
Translation: Tagalog
2024-07-30 0
#1311 Translation: Nepali
Translation: Nepali
2023-01-26 0
#1291 Translation: Romanian
Translation: Romanian
2022-12-20 0
#1066 Translation: Dutch
Translation: Dutch
2022-02-10 0
#657 Addition to "如何 Use"
Addition to "How To Use"
2020-10-17 0
#634 Translation: Serbian.
Translation: Serbian.
2020-09-27 0
#419 Translation: Albanian
Translation: Albanian
2019-04-02 0
#125 如何 Translate
How to Translate
2017-01-06 0