它是学习资料目录

EbookFoundation/free-programming-books 是 GitHub 上最大的教育资源目录之一。它最早来自 Stack Overflow 上的 freely available programming books 列表,后来迁到 GitHub 协作维护,现在由 Free Ebook Foundation 管理。README 同时指向静态网站和搜索站,这一点很重要,因为这个仓库已经大到不适合只靠一个 markdown 页面浏览。

最合适的用法是把它当目录,不是课程。它能帮你找 books、courses、cheat sheets、interactive tutorials、problem sets、programming playgrounds、podcasts 和 screencasts。它不会告诉你学习路径,不会检查你的作业,也不会发证书。如果你已经知道自己要找日语 Rust 书、法语 Python 课程或 competitive programming problem set,这个仓库能省时间。如果你还在决定下一步学什么,路线图或引导式课程通常更适合先看。

截至 2026-06,这个仓库有 390,083 star、66,440 fork 和 80 个开放 issue。许可证是 CC BY 4.0,最近一次 push 是 2026-06-09,主站是 https://ebookfoundation.github.io/free-programming-books/。star 数说明它很有名,贡献规则说明它为什么还能用。

它覆盖哪些内容

README 把资源分成几大类。Books 里有 English by programming language、English by subject,也有大量其他语言。语言列表包括 Arabic、Armenian、Azerbaijani、Bengali、Bulgarian、Burmese、Chinese、Czech、Catalan、Danish、Dutch、Estonian、Finnish、French、German、Greek、Hebrew、Hindi、Hungarian、Indonesian、Italian、Japanese、Korean、Latvian、Malayalam、Norwegian、Persian、Polish、Portuguese、Romanian、Russian、Serbian、Slovak、Slovenian、Spanish、Swedish、Tamil、Telugu、Thai、Turkish、Ukrainian、Urdu、Vietnamese 等。

项目还维护 cheat sheets、free online courses、interactive programming resources、problem sets and competitive programming、podcasts and screencasts、programming playgrounds 等列表。所以它比名字更宽,已经不是单纯书单。

中文部分值得单独说。EbookFoundation 的多语言仓库里有 Chinese list,而 justjavac/free-programming-books-zh_CN 是另一个中文专门仓库,截至 2026-06 有 117,094 star。想要全球目录和统一贡献规则,看 EbookFoundation。主要找中文材料,并且想看围绕中文读者维护的仓库,可以比较 justjavac 那个项目。

先搜索,再浏览

README 链到了 https://ebookfoundation.github.io/free-programming-books-search/。应该先用搜索。这个仓库有很多 markdown 文件、语言拆分、主题拆分和资源类型,搜索通常比滚动页面更快。

静态网站 https://ebookfoundation.github.io/free-programming-books/ 适合随便浏览。GitHub 更适合看变更历史、开 issue 和检查贡献规则。对读者来说,流程应当很简单:先搜网站,需要上下文时看源列表,最后直接验证资源页面。

最后一步不能省。目录只能告诉你链接存在,不能保证外部资源仍然高质量、最新、版权清楚,或适合你的水平。

贡献规则才是核心产品

CONTRIBUTING 文件比 README 更能说明质量控制。第一条很直接:能下载一本书的链接不一定就是 free book。贡献者需要确认内容是免费的。项目不接受必须提供可用 email address 才能获取书籍的页面,但接受只请求 email、不是强制要求的页面。

项目也拒绝 Google Drive、Dropbox、Mega、Scribd、Issuu 和类似 file hosting links。它偏好权威来源,比如作者网站优先于出版社网站,出版社网站优先于第三方镜像。它拒绝 shortened URLs,要求移除 tracking codes,优先 HTTPS,删除 root domain 上的 trailing slash,在合适时偏好 current link 而不是 version link。

这就是认真目录和链接堆的区别。免费书单天然会吸引可疑 PDF、过期镜像、复制文件和推广提交。free-programming-books 的价值,来自这些把垃圾挡在外面的规则。

近期 PR 暴露的维护成本

近期 pull request 显示,大量工作是编辑和机械维护。2026 年 6 月的 PR 包括 Kannada React tutorial series、AI course additions、Korean HTTP-to-HTTPS updates、C++ book additions、Chinese contributing guide updates,以及 linter 文件里的安全修复。

自动评论很能说明问题。近期 PR 会因为 missing final newline、heading 和 section 之间空行数量不对、alphabetical ordering、trailing slashes、merge conflicts 而失败。维护者评论也会问资源是否应该放到 courses list 而不是 books list,链接是否 404,中文改动是否需要 language review。

这些不是琐碎细节。它们解释了这个仓库为什么能维护十多年。维护免费资源目录,意味着要拒绝坏托管、把资源放到正确分类、检查语言特定修改,并把小格式规则交给机器检查。

和 freeCodeCamp、roadmap.sh、awesome、项目清单怎么比

freeCodeCamp/freeCodeCamp 是有练习、项目、进度和证书的学习平台。想要引导式练习和结业凭证,选 freeCodeCamp。已经知道主题、只想找材料,选 free-programming-books。

nilbuild/developer-roadmap 帮你决定下一步学什么。它是角色和技术地图。free-programming-books 更像决定主题之后要去取资料的书架。

sindresorhus/awesome 比编程书单更宽,指向各类 topic-specific awesome lists。探索领域时看它。想找 books、courses、tutorials 和 practice material 时,free-programming-books 更直接。

practical-tutorials/project-based-learning 是项目教程列表,截至 2026-06 有 268,556 star。想通过具体项目学习时,它更合适。想找参考书、课程、多语言学习材料时,free-programming-books 更合适。

public-apis/public-apis 适合找练习项目会用到的 API。它不是学习目录,但当你开始动手做项目后,可以和书籍教程搭配使用。

什么时候该用它

当你已经有明确 topic、language 或 resource type 时,这个仓库很有价值。它尤其适合找经典旧书、特定语言材料、open courses、cheat sheets 和 problem sets。老师和学习小组也可以用它找免费参考资料,而不必把所有学习者锁到同一个平台。

不要把它当学习计划替代品。巨大目录会让初学者产生一种一直在收集链接的成就感。更好的方式是选一条路径,选一两个资源,然后做东西。如果你不知道该选哪条路径,先看 roadmap.sh 或结构化平台。

如果要用于生产环境、课堂或内部资料库,每个外部链接都要自己验证。检查资源本身的 license,不要只看这个仓库的 license。仓库本身是 CC BY 4.0,但链接出去的资源有各自条款。

Star 曲线怎么看

采样 star history 显示,这是一个长期资源仓库,不是短期热点。它始于 2013 年,继承了旧 Stack Overflow 书单的注意力,又随着 GitHub 成为公共学习资源的默认维护地点而继续增长。由于仓库体量很大,曲线是抽样结果,不要过度解读短期点位间距。

真正耐久的信号更简单:开发者一直在找免费的学习材料,尤其是英语之外的材料。这个仓库能活下来,是因为它给这种需求提供了可维护的形状。

相关阅读

需要有练习和证书的引导式学习,读 freeCodeCamp/freeCodeCamp。选书前想先决定学习路径,看 nilbuild/developer-roadmap。更宽的开发者资源列表可以看 sindresorhus/awesome。读完之后想找项目练习,看 codecrafters-io/build-your-own-x

FAQ

EbookFoundation/free-programming-books 只收书吗? 不是。它还包含 courses、cheat sheets、interactive tutorials、programming playgrounds、podcasts、screencasts 和 problem sets。

所有链接资源都是开源的吗? 不是。仓库本身是 CC BY 4.0,但外链资源有自己的 license 和 terms。贡献指南鼓励在适用时标注 free licenses,但免费阅读不等于开源。

它可以当完整学习路径吗? 不适合单独这样用。它是目录。最好搭配 roadmap、课程平台、项目列表或老师安排。

它包含中文编程书籍吗? 包含。EbookFoundation 仓库里有 Chinese list,另外还有独立的 justjavac/free-programming-books-zh_CN 中文仓库。

项目会拒绝什么链接? 贡献指南拒绝必须提供有效 email 才能拿到书的资源,拒绝 Google Drive 和 Dropbox 等常见 file hosting platforms,拒绝 shortened URLs,并偏好权威来源。