awesome-coding-interview
A complete computer science study plan to become a software engineer.
https://github.com/xiaomingx/awesome-coding-interview
Last synced: 3 days ago
JSON representation
-
编程问题练习
-
4. 专注
-
-
编程问题
-
4. 专注
- 如何找到解决方案
- 如何分析Topcoder问题陈述
- IDeserve(88个视频)
- Tushar Roy(5个播放列表)
- Nick White - LeetCode解答(187个视频)
- FisherCoder - LeetCode解答
- LeetCode
- HackerRank
- TopCoder
- Codeforces
- Geeks for Geeks
- AlgoExpert
- Project Euler
- IDeserve(88个视频)
- Tushar Roy(5个播放列表)
- Nick White - LeetCode解答(187个视频)
- FisherCoder - LeetCode解答
- Geeks for Geeks
-
-
算法复杂度 / Big-O / 渐进分析法
-
4. 专注
-
-
数据结构
-
4. 专注
-
-
更多的知识
-
树(Trees)
-
排序(Sorting)
-
图(Graphs)
-
更多知识
-
4. 专注
- Java
- Python
- Handy reference: 101 Design Patterns & Tips for Developers
- 操作系统和系统编程(视频)
- 进程和线程的区别是什么?
- 分页(paging),分段(segmentation)和虚拟内存(视频)
- 中断(视频)
- 操作系统和底层硬件如何启动上下文切换?
- 参考
- slides
- 大/小端序
- 大端序 Vs 小端序(视频)
- 由里入内的大端序与小端序(视频)
- Java──套接字──介绍(视频)
- 套接字编程(视频)
- Jupyter 笔记本
- 分页(paging),分段(segmentation)和虚拟内存(视频)
- 中断(视频)
- 参考
- slides
- Java──套接字──介绍(视频)
-
-
最终复习
-
面试流程与一般面试准备
-
4. 专注
- 数据结构、算法和面试的Python课程(付费课程):
- 使用Python的数据结构和算法简介(Udacity免费课程):
- 数据结构和算法纳米学位!(Udacity付费纳米学位):
- Grokking行为面试(Educative免费课程):
- AlgoMonster(付费课程,提供免费内容):)
- Pramp:与同行进行模拟面试 - 同行模式的实践面试。
- Meetapro:与顶级FAANG面试官进行模拟面试 - 类似Airbnb的模拟面试/指导平台。
- Hello Interview:与专家教练和人工智能模拟面试 - 直接与人工智能或 FAANG 员工工程师和经理面试。
- Codemia:通过人工智能或社区解决方案和反馈来练习系统设计问题 - 通过AI练习工具来解决系统设计问题。与社区分享你的解决方案,以获得反馈。.
- AlgoMonster(付费课程,提供免费内容):)
- Meetapro:与顶级FAANG面试官进行模拟面试 - 类似Airbnb的模拟面试/指导平台。
-
-
额外书籍
-
系统设计、可扩展性和数据处理
-
4. 专注
- - 这个资源有很多内容。浏览文章和示例。我列出了一些示例在下面。
- 克隆
- 数据库
- 缓存
- 异步性
- 视频
- O'Reilly MySQL CE 2011: Jeremy Cole, "Big and Small Data at @Twitter" (视频)
- 速查表
- 设计一个随机唯一ID生成系统
- 设计一个推荐系统
- 设计一个URL缩短系统:来自上面的复制
- 设计一个缓存系统
- 时间轴扩展
- 设计一个URL缩短系统:来自上面的复制
-
-
附加学习
-
4. 专注
- 编译器的工作方式,约1分钟(视频)
- Harvard CS50-编译器(视频)
- C ++(视频)
- 了解编译器优化(C ++)(视频)
- 使用 vim 进行编辑 01 - 安装, 设置和模式 (视频)
- vi/vim 编辑器 - 课程 1
- vi/vim 编辑器 - 课程 2
- vi/vim 编辑器 - 课程 4
- vi/vim 编辑器 - 课程 3
- 基础 Emacs 教程 (视频)
- Emacs 教程 (初学者) -第 1 部分- 文件命令, 剪切/复制/粘贴, 自定义命令
- Emacs 教程 (初学者 -第 2 部分- Buffer 管理, 搜索, M-x grep 和 rgrep 模式
- Emacs 教程 (初学者 -第 3 部分- 表达式, 声明, ~/.emacs 文件和包机制
- Evil 模式: 或许, 我是怎样对 Emacs 路人转粉的 (视频)
- Emacs 绝对初学者指南(David Wilson的视频)
- Emacs 绝对初学者指南(David Wilson 批注)
- strace
- Khan Academy 可汗学院
- 入门
- 奇偶校验位
- 发现错误
- 修正错误
- 检查错误
- 信息理论, 克劳德·香农, 熵值, 系统冗余, 数据比特压缩 (视频)
- 可汗学院
- 密码学: 哈希函数
- 密码学: 加密
- 压缩
- 压缩熵值
- 由上而下的树 (霍夫曼编码树)
- 额外比特 - 霍夫曼编码树
- 优雅的压缩数据 (无损数据压缩方法)
- Text Compression Meets Probabilities
- (可选) 谷歌开发者:GZIP 还差远了呢!
- MIT(23个视频)
- 威胁模型:入门
- 控制劫持攻击
- 缓冲区溢出漏洞攻击和防御
- 优先权区分
- 能力
- 在沙盒中运行原生代码
- 网络安全模型
- 网络安全应用
- 标志化执行
- 网络安全
- 网络协议
- 旁路攻击
- Thrift
- 教程
- 教程
- gRPC 对于JAVA开发者的入门教程(视频)
- 教程
- Amazon的 SQS 系统 (队列)
- Amazon的 SNS 系统 (pub-sub)
- RabbitMQ
- 入门教程
- Celery入门
- MessagePack
- Avro
- A 搜索算法
- A* 路径搜索(E01:算法解释)(视频)
- 傅立叶变换的交互式指南
- 什么是傅立叶变换?论傅立叶变换的用途
- 什么是傅立叶变换? (视频)
- 分而治之:FFT(视频)
- FTT 是什么
- 布隆过滤器(视频)
- 布隆过滤器 | 数据挖掘 | Stanford University(视频)
- 如何写一个布隆过滤器应用
- Simhashing(希望如此)变得简单
- 分而治之:van Emde Boas 树 (视频)
- MIT课堂笔记
- CS 61B 第 39 课: 增强数据结构
- 自平衡二叉查找树
- MIT AVL 树 / AVL 树的排序(视频)
- [Review
- CS 61B:伸展树(Splay trees)(视频)
- 视频
- Aduni —— 算法 —— 课程4(该链接直接跳到开始部分)(视频)
- Aduni —— 算法 —— 课程5(视频)
- 黑树(Black Tree)
- 二分查找及红黑树的介绍
- [Review
- 2-3树的直感与定义(视频)
- 2-3树的二元观点
- 2-3树(学生叙述)(视频)
- CS 61B Lecture 26:平衡查找树(视频)
- 自底向上的2-4树(视频)
- 自顶向下的2-4树(视频)
- K 叉树
- B 树
- B 树数据结构
- B 树的介绍(视频)
- B 树的定义及其插入操作(视频)
- B 树的删除操作(视频)
- MIT 6.851 —— 内存层次模块(Memory Hierarchy Models)(视频)
- [Review
- kNN K-d树算法(视频)
- 随机化: 跳表 (视频)
- 更生动详细的解释
- 5分钟简析 Ford-Fulkerson──一步步示例 (视频)
- 网络流 (视频)
- UCB 61B - 不相交集;排序 & 选择(视频)
- Sedgewick算法──Union-Find(6视频)
- 整数运算, Karatsuba 乘法 (视频)
- 中国剩余定理 (在密码学中的使用) (视频)
- 树堆
- 数据结构:树堆的讲解(视频)
- 集合操作的应用(Applications in set operations)
- 线性规划
- 寻找最小成本
- 寻找最大值
- 用 Python 解决线性方程式──单纯形算法
- Graph Alg. IV: 几何算法介绍 - 第 9 课
- Graham & Jarvis: 几何算法 - 第 10 课
- 分而治之: 凸包, 中值查找
- 计算机科学70,001 - 2015年春季 - 离散数学与概率论
- 离散数学由Shai Simonson(19个视频)
- tcpdump
- Redis
- 使用 vim 进行编辑 01 - 安装, 设置和模式 (视频)
- Emacs 绝对初学者指南(David Wilson的视频)
- 马尔可夫内容生成(Core Markov Text Generation)
- Core Implementing Markov Text Generation马尔可夫内容生成实现
- 一个马尔可夫内容生成器的项目(Project = Markov Text Generation Walk Through)
- 信息理论, 克劳德·香农, 熵值, 系统冗余, 数据比特压缩 (视频)
- 密码学: 哈希函数
- 密码学: 加密
- 数据压缩的艺术
- MIT(23个视频)
- 威胁模型:入门
- 控制劫持攻击
- 缓冲区溢出漏洞攻击和防御
- 优先权区分
- 能力
- 在沙盒中运行原生代码
- 网络安全模型
- 网络安全应用
- 标志化执行
- 网络安全
- 网络协议
- 旁路攻击
- 教程
- 教程
- gRPC 对于JAVA开发者的入门教程(视频)
- 入门教程
- Celery入门
- 入门教程
- Kafka
- 什么是傅立叶变换?论傅立叶变换的用途
- 分而治之:FFT(视频)
- FTT 是什么
- 教程
- 如何仅使用1.5KB内存计算十亿个不同的对象
- Simhashing(希望如此)变得简单
- 分而治之:van Emde Boas 树 (视频)
- MIT课堂笔记
- CS 61B 第 39 课: 增强数据结构
- MIT AVL 树 / AVL 树的排序(视频)
- AVL 树(视频)
- AVL 树的实现(视频)
- 分离与合并
- [Review
- CS 61B:伸展树(Splay trees)(视频)
- Aduni —— 算法 —— 课程4(该链接直接跳到开始部分)(视频)
- Aduni —— 算法 —— 课程5(视频)
- 二分查找及红黑树的介绍
- [Review
- 2-3树的直感与定义(视频)
- 2-3树的二元观点
- 2-3树(学生叙述)(视频)
- CS 61B Lecture 26:平衡查找树(视频)
- 自底向上的2-4树(视频)
- 自顶向下的2-4树(视频)
- B 树数据结构
- B 树的介绍(视频)
- B 树的定义及其插入操作(视频)
- B 树的删除操作(视频)
- MIT 6.851 —— 内存层次模块(Memory Hierarchy Models)(视频)
- [Review
- 随机化: 跳表 (视频)
- UCB 61B - 不相交集;排序 & 选择(视频)
- 整数运算, Karatsuba 乘法 (视频)
- Graph Alg. IV: 几何算法介绍 - 第 9 课
- Graham & Jarvis: 几何算法 - 第 10 课
- 分而治之: 凸包, 中值查找
- 计算机科学70,001 - 2015年春季 - 离散数学与概率论
- 离散数学由Shai Simonson(19个视频)
- 离散数学由印度理工学院罗帕尔分校NPTEL提供
-
-
一些主题的额外内容
-
4. 专注
- - single-responsibility-principle.html)
- - is-the-liskov-substitution-principle)
- 更多解释
- 5分钟内的接口隔离原则(视频)
- 更多解释
- 为何依赖反转原则如此重要
- 更多解释
- 6.006: 动态规划 I: 斐波那契数列, 最短路径
- 6.006: 动态规划 II: 文本匹配, 二十一点/黑杰克
- 6.006: 动态规划 III: 最优加括号方式, 最小编辑距离, 背包问题
- 6.006: 动态规划 IV: 吉他指法,拓扑,超级马里奥.
- 6.046: 动态规划: 动态规划进阶
- 6.046: 动态规划: 所有点对最短路径
- 6.046: 动态规划: 更多示例
- 异步分布式算法: 对称性破缺,最小生成树
- 异步分布式算法: 最小生成树
- MIT 6.042J - 概率论概述
- MIT 6.042J - 条件概率 Probability
- MIT 6.042J - 独立
- MIT 6.042J - 随机变量
- MIT 6.042J - 期望 I
- MIT 6.042J - 期望 II
- MIT 6.042J - 大偏差
- MIT 6.042J - 随机游走
- Simonson: 近似算法 (视频)
- 滚动哈希,摊销分析
- Knuth-Morris-Pratt(KMP)字符串匹配算法
- Boyer–Moore 字符串搜索算法
- 高级字符串搜索Boyer-Moore-Horspool算法(视频)
- Coursera:字符串算法
- 课程 15 | 编程抽象(视频)
- 课程 16 | 编程抽象(视频)
- Aduni.org
- 算法 - 排序 - 第二讲(视频)
- 算法 - 排序2 - 第三讲(视频)
- CSE373 2020 - 归并排序/快速排序(视频)
- CSE373 2020 - 线性排序(视频)
- 从第一原理构建现代计算机
- - single-responsibility-principle.html)
- 更多解释
- 更多解释
- - is-the-liskov-substitution-principle)
- 更多解释
- 更多解释
- 为何依赖反转原则如此重要
- 更多解释
- 概览
- 初级实践
- 树状结构
- 合并树状结构
- 路径压缩
- 分析选项
- 6.006: 动态规划 I: 斐波那契数列, 最短路径
- 6.006: 动态规划 II: 文本匹配, 二十一点/黑杰克
- 6.006: 动态规划 III: 最优加括号方式, 最小编辑距离, 背包问题
- 6.006: 动态规划 IV: 吉他指法,拓扑,超级马里奥.
- 6.046: 动态规划: 动态规划进阶
- 6.046: 动态规划: 所有点对最短路径
- 6.046: 动态规划: 更多示例
- 异步分布式算法: 对称性破缺,最小生成树
- 异步分布式算法: 最小生成树
- MIT 6.042J - 概率论概述
- MIT 6.042J - 条件概率 Probability
- MIT 6.042J - 独立
- MIT 6.042J - 随机变量
- MIT 6.042J - 期望 I
- MIT 6.042J - 期望 II
- MIT 6.042J - 大偏差
- MIT 6.042J - 随机游走
- Simonson: 近似算法 (视频)
- Rabin Karps 算法
- 预计算
- 优化:实施和分析
- 表翻倍,Karp-Rabin
- 滚动哈希,摊销分析
- 课程 15 | 编程抽象(视频)
- 课程 16 | 编程抽象(视频)
- 算法 - 排序 - 第二讲(视频)
- 算法 - 排序2 - 第三讲(视频)
- CSE373 2020 - 归并排序/快速排序(视频)
- CSE373 2020 - 线性排序(视频)
-
-
视频系列
-
4. 专注
- x86 架构,汇编,应用程序 (11 个视频)
- MIT 18.06 线性代数,2005 年春季 (35 个视频)
- 绝妙的 MIT 微积分:单变量微积分
- Skiena讲座来自《算法设计手册》- CSE373 2020 - 算法分析(26个视频)
- UC Berkeley 61B (2014 年春季): 数据结构 (25 个视频)
- UC Berkeley 61B (2006 年秋季): 数据结构 (39 个视频)
- UC Berkeley 61C:计算机结构 (26 个视频)
- OOSE:使用 UML 和 Java 进行软件开发 (21 个视频)
- MIT 6.004: 计算结构 (49 视频)
- 卡內基梅隆大学 - 计算机架构讲座 (39 个视频)
- MIT 6.006:算法介绍 (47 个视频)
- MIT 6.033:计算机系统工程 (22 个视频)
- MIT 6.034:人工智能,2010 年秋季 (30 个视频)
- MIT 6.042J:计算机科学数学, 2010 年秋季 (25 个视频)
- MIT 6.046:算法设计与分析 (34 个视频)
- MIT 6.050J:信息和熵, 2008 年春季 (19 个视频)
- MIT 6.851:高等数据结构 (22 个视频)
- MIT 6.854: 高等算法, 2016 年春季 (24 个视频)
- 密码学导论,Christof Paar
- 大数据 - 斯坦福大学 (94 个视频)
- 图论,Sarada Herke(67个视频)
- 卡內基梅隆大学 - 计算机架构讲座 (39 个视频)
- x86 架构,汇编,应用程序 (11 个视频)
- 绝妙的 MIT 微积分:单变量微积分
- Skiena讲座来自《算法设计手册》- CSE373 2020 - 算法分析(26个视频)
- UC Berkeley 61B (2014 年春季): 数据结构 (25 个视频)
- UC Berkeley 61B (2006 年秋季): 数据结构 (39 个视频)
- UC Berkeley 61C:计算机结构 (26 个视频)
- OOSE:使用 UML 和 Java 进行软件开发 (21 个视频)
- MIT 6.004: 计算结构 (49 视频)
- MIT 6.006:算法介绍 (47 个视频)
- MIT 6.033:计算机系统工程 (22 个视频)
- MIT 6.042J:计算机科学数学, 2010 年秋季 (25 个视频)
- MIT 6.046:算法设计与分析 (34 个视频)
- MIT 6.050J:信息和熵, 2008 年春季 (19 个视频)
- MIT 6.851:高等数据结构 (22 个视频)
- 密码学导论,Christof Paar
- 图论,Sarada Herke(67个视频)
-
-
计算机科学课程
-
4. 专注
-
-
论文
-
4. 专注
- 喜欢经典的论文?
- 1978: 通信顺序处理
- Go 实现
- 2003: The Google 文件系统
- 2004: MapReduce: Simplified Data Processing on Large Clusters
- 2006年:Bigtable:结构化数据的分布式存储系统
- 2007年:Dynamo:亚马逊的高可用键值存储
- 2007: 每个程序员都应该知道的内存知识 (非常长,作者建议跳过某些章节来阅读)
- 论文
- 视频
- 论文
- 视频
- 2015: Google的持续流水线
- 2015: 大规模高可用性:构建Google广告数据基础设施
- 2015: 开发人员如何搜索代码:一个案例研究
- 1,000篇论文
- Go 实现
- 2006年:针对松散耦合的分布式系统的Chubby Lock服务
- 论文
- 视频
- 2015: Google的持续流水线
- 2015: 开发人员如何搜索代码:一个案例研究
-
-
数据结构和算法的书籍
-
不要觉得自己不够聪明
-
可选的额外主题和资源
-
-
这是?
-
选择编程语言
-
面试准备书籍
-
C++
-
如果你有很多额外的时间:
-
-
不要犯我的错误
-
2. 使用抽认卡
-
1. 你不可能把所有的东西都记住
-
-
日常计划
-
算法实现
-
4. 专注
-
-
更新你的简历
Categories
Sub Categories
Keywords
algorithms
2
computer-science
2
interview
2
interview-questions
2
system
2
system-design
1
interview-preparation
1
design-systems
1
twitter
1
stanford
1
paper
1
microsoft
1
google
1
facebook
1
amazon
1
webapp
1
web-application
1
web
1
python
1
programming
1
interview-practice
1
development
1
design-system
1
design-patterns
1
design
1
courses
1
awesome-list
1
programming-interviews
1
maven-surefire
1
maven
1
junit4
1
java
1
hamcrest
1
elements-of-programming-interviews
1
tree-traversal
1
sorting-algorithms
1
shortest-path-algorithms
1
search-algorithms
1
red-black-trees
1
prims-algorithm
1
minimum-spanning-trees
1
maximum-flow
1
kruskals-algorithm
1
ford-fulkerson-algorithm
1
floyd-warshall-algorithm
1
dijkstras-algorithm
1
depth-first-search
1
data-structures
1
breadth-first-search
1
binary-search
1