Also available in 中文

free-programming-books 是 GitHub 上长期维护的免费编程学习资源项目,由 Free Ebook Foundation 管理。它最早以“免费编程书籍列表”的形式出现,现在已经扩展到电子书、免费课程、编程环境、播客和视频教程等多种开发者学习资源。

这个项目并不是把电子书文件统一上传到 GitHub,而是整理互联网上可以免费访问的学习资料链接,再按照编程语言、技术主题和语言进行分类。对于想学习 Python、JavaScript、Java、C/C++、Linux、数据库、人工智能、云计算或 DevOps 的开发者来说,比在搜索引擎里零散找资料方便不少。


free-programming-books GitHub 免费编程电子书与学习资源列表

free-programming-books 是什么?

free-programming-books 是一个通过 GitHub 社区协作维护的开发者学习资源目录。

项目最早来自 Stack Overflow 上整理的免费编程书籍列表,后来由 Victor Felder 转移到 GitHub,方便开发者通过 Pull Request 持续补充、更新和修正资源。目前项目由非营利组织 Free Ebook Foundation 管理。

与普通“编程电子书下载站”不同,free-programming-books 本身更像一个经过分类整理的资源索引。它不会把所有书籍重新打包上传,而是链接到作者网站、官方文档、出版社开放页面、GitHub 项目或其他可以公开访问的学习资源。

free-programming-books 有哪些内容?

虽然项目名称里还有 books,但现在收录的内容已经明显超过电子书。

主要可以分成几类:

  • 免费编程电子书
  • 免费在线课程
  • 编程语言学习资料
  • 技术主题教程
  • Podcast 与 Screencast
  • 浏览器在线编程环境
  • 多语言开发者学习资源

如果只是想找一本 Python 或 JavaScript 教程,可以直接进入对应语言分类;如果想系统学习算法、人工智能、数据库、云计算或软件架构,则可以按照技术主题浏览。

免费编程电子书怎么分类?

free-programming-books 的英文资料主要采用两种分类方式:按编程语言和按技术主题。

按编程语言查找

这一部分更适合已经确定学习目标的用户。例如准备学习 Python、Java、C++ 或 Rust,可以直接进入对应语言。

项目目前覆盖的技术和语言非常多,包括:

  • C / C++ / C#
  • Java
  • JavaScript
  • Python
  • PHP
  • Go
  • Rust
  • Swift
  • TypeScript
  • Shell / Bash
  • Android
  • Arduino
  • Assembly

部分语言下面还会继续按照框架或技术方向细分。

按技术主题查找

不是所有编程资料都适合按照语言分类,因此 free-programming-books 还单独维护了技术主题目录。

目前可以看到的主题包括:

  • 算法与数据结构
  • 人工智能
  • 机器学习
  • 计算机视觉
  • 云计算
  • 数据库
  • 数据科学
  • 容器技术
  • 编译器设计
  • 计算机体系结构
  • 游戏开发
  • 数学
  • 信息检索
  • 软件开发相关主题

这种结构对已经有一定编程基础的人比较有用。例如想学 Docker、数据库设计或机器学习,并不需要先确定某一种编程语言,可以直接从主题目录寻找资料。

free-programming-books 有中文资源吗?

有。

free-programming-books 单独维护了中文资源目录,内容不仅有编程语言,也包括语言无关的计算机知识。

中文目录可以看到:

  • 版本控制
  • 操作系统
  • 编译原理
  • 分布式系统
  • 大数据
  • 人工智能
  • 数据库
  • 设计模式
  • 正则表达式
  • Web 开发
  • Web 服务器
  • 各种主流编程语言

如果英文阅读压力比较大,可以先从中文目录开始,再根据书名和技术主题进一步寻找英文原版资料。

不只是电子书,还有免费编程课程

free-programming-books 现在还维护免费的在线课程列表。

课程覆盖的范围很广,包括 C、C++、Python、JavaScript、数据库、云计算、人工智能、深度学习、DevOps、Git、Linux 等开发者常用方向。

其中部分课程来自大学、教育平台、开发者社区或公开视频课程。

对于刚开始学编程的用户,课程往往比单独看一本电子书更容易入门;而有一定基础之后,再结合书籍和官方文档会更有效率。

还能找到 Podcast 和编程视频

项目还整理了免费的 Podcast 与 Screencast。

这类资源比较适合不想一直看长篇文档的用户,可以通过视频演示、技术分享或者音频内容了解某项技术。

不同语言也有独立分类,包括中文、英文、西班牙语、法语、德语、日语以外的多种社区资源。

free-programming-books 的资源都能免费下载吗?

需要区分“免费访问”和“文件可以任意转载”。

free-programming-books 的核心原则是整理公开可用的免费学习资源,但不同链接对应的版权和授权方式并不完全一致。

常见情况包括:

  • 作者主动免费发布
  • 采用 Creative Commons 等开放许可
  • 出版社公开提供免费版本
  • 在线免费阅读,但不允许重新分发
  • GitHub 开源项目提供的教程和文档

因此,能通过 free-programming-books 免费阅读某份资料,并不代表可以把文件重新上传到其他网站。

如果需要转载、修改或者用于商业项目,仍然应该查看对应资源页面的许可证。

free-programming-books 和普通电子书下载站有什么区别?

对比 free-programming-books 普通电子书下载站
形式 GitHub 开放资源目录 独立下载网站
资源 书籍、课程、教程等 以电子书文件为主
维护 社区协作维护 通常由站长维护
分类 语言、技术主题、多国语言 通常按书籍类别
文件来源 链接到原始或公开来源 可能自行存储文件
适合人群 开发者和编程学习者 普通电子书读者

对开发者来说,free-programming-books 最大的价值不是“能下载多少本书”,而是把大量分散的免费学习资料整理成了一个可以持续维护的目录。

free-programming-books 适合哪些人?

如果正在学习编程或者需要补充某一项技术知识,这个项目比较值得收藏。

尤其适合:

  • 刚开始学习编程的新手
  • 需要寻找免费技术书籍的开发者
  • 学习 Python、JavaScript、Java、C++ 等语言的用户
  • 学习 AI、数据库、云计算、DevOps 等技术的工程师
  • 需要中文编程资料的用户
  • 喜欢通过 GitHub 管理学习资源的开发者

如果已经有明确的学习方向,建议直接进入对应语言或主题目录,不需要从整个仓库一条条翻。

怎么使用 free-programming-books?

最简单的方法是打开项目网页版,根据语言或主题进入对应目录。

例如:

  • 学 Python:进入 Python 分类
  • 学前端:查看 JavaScript、TypeScript、HTML/CSS 和 Web 相关内容
  • 学 AI:进入 Artificial Intelligence、Machine Learning、Deep Learning 等主题
  • 学运维:查看 Linux、Cloud Computing、Containers、DevOps 等分类
  • 学数据库:进入 Database 或 SQL 相关内容

找到感兴趣的书籍或课程后,再进入原始来源查看具体内容、格式和许可说明。

free-programming-books 项目地址

中文免费编程书籍目录:free-programming-books 中文目录

GitHub 仓库:EbookFoundation/free-programming-books

free-programming-books 常见问题

free-programming-books 是官网吗?

它本身是一个 GitHub 开源协作项目,目前由 Free Ebook Foundation 管理,同时提供适合普通用户阅读的网页版目录。

里面只有英文编程书吗?

不是。项目支持多国语言,并且拥有独立的中文免费编程资源列表。

里面只有电子书吗?

不是。目前项目还整理免费课程、Podcast、Screencast 和浏览器编程环境等开发者学习资源。

这些编程电子书都可以免费使用吗?

它们可以免费访问,但具体版权许可并不完全相同。如果需要复制、修改、重新发布或者用于商业用途,需要查看每项资源自己的授权条款。

可以提交自己的免费编程资源吗?

可以。项目通过 GitHub 协作维护,符合收录要求的资源可以按照项目的贡献指南提交 Pull Request。

本文由(ahhhhfs.com)根据项目官网、官方文档及公开资料整理。工具的功能、价格、授权与服务条款可能调整,请以官方最新说明为准。合理引用请注明来源并保留本文链接;如需全文转载,或发现内容错误、版权及授权问题,可通过 feedback#abskoop.com「联系我们」反馈(请将 # 替换为 @)。