如果你只会写 CRUD,那你可能只是一个“会写代码的人”;但当你开始关心算法复杂度、内存管理、系统架构和职业发展时,你才真正踏上了成为程序员的道路。
今天要介绍的是 GitHub 上拥有近 10 万 Star 的神级项目—— every-programmer-should-know 。

项目简介
every-programmer-should-know 是一个经过高度精选的技术资源合集,由开发者 mr-mig 发起并维护。
它并不教你如何用某个框架写一个“Hello World” Demo,也不承诺让你“三天速成”某门语言。它的目标非常纯粹:
整理那些“每一个程序员迟早都应该知道”的知识和思想。
无论你是前端、后端、移动端、测试还是架构师,只要你从事软件开发,这个仓库里的内容就与你息息相关。
项目本身的态度非常坦诚:
- ❌ 不保证科学上的绝对严谨
- ❌ 不提供固定的学习顺序
- ✅ 但保证收录的内容都是“踩过坑之后才懂得为什么重要”的精华
项目特点
这个仓库最大的优点可以用一个字概括:全。但它并非杂乱无章的堆砌,而是覆盖了程序员从技术基础到职业发展的完整路径。
1. 夯实计算机科学基础
很多人工作后才发现基础不牢,而这里正是补课的好地方。它从计算机科学的全景图开始,帮你重新构建认知体系。

- 算法与时间复杂度分析
- 各类数据结构的本质与应用场景
- 理解原理如何让代码写得更稳健
这里的资源不是为了让你死记硬背,而是帮助你建立整体性的认知框架,明白为什么这些基础知识是构建一切复杂系统的基石。
2. 那些容易被低估却极易引发事故的知识
如果你从未被这些问题困扰过,或许只是因为你的代码量还不够大,或者运气太好:

- 为什么浮点数计算可能不精确?
- Unicode 和字符集为何能把人逼疯?
- 时间、时区、闰秒为何被称为“程序员的噩梦”?
项目专门收录了一个类别:Falsehoods Programmers Believe In(程序员常见的错误认知)。阅读后你会发现,许多 Bug 的产生并非因为你写错了代码,而是因为这个世界的运行规则本身就比想象中复杂。
3. 内存、性能与延迟:程序运行时的真相
代码写完并通过测试,只是万里长征的第一步。真正的挑战发生在程序跑起来之后:

- 内存是如何被分配和使用的?
- 缓存机制在什么情况下会失效甚至成为瓶颈?
- 系统延迟为何会突然飙升?
其中,像《What Every Programmer Should Know About Memory》这样的经典资料,专治“凭感觉优化性能”的毛病。

4. 分布式系统:你必须接受“一切皆可能出错”
当你的系统从单机扩展到多台机器时,整个世界的运行规则都开始变得“魔幻”起来:

- 在分布式系统中,没有绝对的“现在”这个概念
- 网络通信故障不是例外,而是常态
- CAP 定理告诉你,一致性、可用性、分区容错性难以兼得
仓库收录了大量分布式系统领域的圣经级资料,非常适合希望从“业务功能开发”向“系统性思维”转型升级的工程师。
5. 安全、工程实践与架构思维
这部分内容传递了三条至关重要的工程原则:

- ❗ 永远不要尝试自己发明加密算法
- ❗ 安全性不能事后才考虑
- ❗ 不要只满足于代码“能跑”
从《Clean Code》到测试驱动开发(TDD),从发布清单到系统设计原则,再到架构演进策略…… 你会发现,高质量的代码和系统往往是“设计出来的”,而不仅仅是“编码实现出来的”。
6. 职业发展与软技能:承认程序员也是“人”
这个项目非常可贵的一点在于,它承认程序员不仅仅是写代码的工具,而是有职业成长和软技能需求的个体。

涉及的内容包括:
- 技术面试准备与长远的职业规划
- 薪资谈判、股票期权等财务知识
- 高效沟通、技术谈判以及心理健康
用一句话总结就是:技术能力决定了你职业发展的下限,而认知水平与选择能力则决定了你的上限。 想要在技术道路上走得更远,积极参与开源实战和社区交流是很好的成长方式。
在项目的最新内容中,还加入了 Platform Engineering 相关的板块:
- 内部开发者平台(Internal Developer Platform, IDP)
- “黄金路径”(Golden Path)设计
- 如何提升开发者体验(Developer Experience, DX)
这部分内容对于已经进入中大型团队、开始思考“如何让整个团队更高效、更安全地交付软件”的工程师来说,具有很高的参考价值。
项目地址
https://github.com/mtdvio/every-programmer-should-know
强烈建议你将这个仓库 Star 收藏,把它当作你程序员生涯的一本动态“百科全书”或知识地图。当你遇到知识盲区或想体系化学习某个领域时,不妨先来这里看看有没有相关的资源指引。更多类似的优质资源和深度讨论,欢迎来 云栈社区 探索与交流。