项目介绍

Free Programming Books 是 GitHub 上最大的免费编程学习资源合集之一,由 Free Ebook Foundation(免费电子书基金会)维护。这个项目最初源自 StackOverflow 上的一个免费编程书籍列表,现已发展成为涵盖书籍、课程、教程、播客等多种资源形式的综合性学习资源库。

项目收录了超过 40 种语言的免费编程资源,按编程语言和主题进行分类整理。Free Ebook Foundation 是一个致力于促进免费电子书的创作、分发、存档和可持续发展的非营利组织。

项目信息详情
维护组织Free Ebook Foundation(非营利组织)
GitHub Stars383,931+
支持语言40+ 种自然语言
资源类型书籍、速查表、在线课程、互动教程、习题集、播客、练习场
许可证CC BY 4.0
搜索功能提供在线搜索引擎

资源类型

免费编程书籍

项目的核心内容,收录了数千本按编程语言和主题分类的免费电子书。涵盖从入门到高级的各种编程书籍,是最全面的免费技术书籍目录。

速查表 (Cheat Sheets)

各种编程语言和工具的快速参考手册,帮助开发者在日常工作中快速查找语法、命令和常用模式。

免费在线课程

来自知名平台(如 Coursera、edX、MIT OCW 等)的免费在线课程,覆盖多种编程语言和 40+ 种自然语言。

互动编程教程

可以在浏览器中直接编写和运行代码的互动式学习资源,支持中文、英文、德文、日文、俄文等版本。

习题集与竞赛编程

编程练习题集和竞赛编程资源,帮助提升算法思维和编码能力,适合面试准备和技能提升。

播客与录屏

免费的技术播客和屏幕录制教程,支持多种语言。适合通勤或休息时间的碎片化学习。

编程练习场

在线编程环境,无需安装任何软件即可在浏览器中编写、编译和运行代码。

书籍分类

英文编程书籍按两种方式进行组织:

按编程语言分类

语言类别包含内容
Web 开发JavaScript、TypeScript、HTML/CSS、PHP、Ruby 等
系统编程C、C++、Rust、Go、Assembly 等
数据科学Python、R、Julia、MATLAB 等
企业开发Java、C#、Kotlin、Scala 等
函数式编程Haskell、Erlang、Elixir、Clojure、OCaml 等
脚本语言Bash/Shell、Perl、Lua、Awk 等
移动开发Swift、Objective-C、Dart/Flutter 等
其他SQL、Prolog、Fortran、COBOL、Lisp 等数十种语言

按主题分类

  • 算法与数据结构 — 排序、搜索、图论、动态规划等核心计算机科学概念
  • 操作系统 — Linux、Unix、Windows 系统编程和管理
  • 网络与安全 — 网络协议、Web安全、密码学、网络编程
  • 数据库 — SQL、NoSQL、数据库设计、查询优化
  • 软件工程 — 设计模式、架构、测试、敏捷开发
  • 人工智能 — 机器学习、深度学习、自然语言处理、计算机视觉
  • 数学 — 离散数学、线性代数、概率统计、数值分析
  • 编译器 — 编译原理、解释器、语言设计

多语言支持

项目的一大特色是支持超过 40 种自然语言的资源,让全球学习者都能找到母语资源:

中文资源

包含大量中文编程书籍、免费在线课程、互动教程、播客和编程练习场,是中文学习者的宝库。

英文资源

资源最为丰富的语言,涵盖所有分类和资源类型,是主要的学习资源来源。

日文/韩文

面向日本和韩国开发者的免费编程书籍和在线课程资源。

欧洲语言

法语、德语、西班牙语、葡萄牙语、俄语、意大利语等欧洲主要语言的资源。

南亚/东南亚

印地语、孟加拉语、泰语、越南语、印尼语等南亚和东南亚语言的资源。

中东语言

阿拉伯语、波斯语、土耳其语、希伯来语等中东地区语言的编程学习资源。

如何使用

  • 在线搜索 — 访问 搜索引擎 按书名或作者快速搜索资源
  • 浏览静态网站 — 访问 项目官网 以易读的网页格式浏览所有资源
  • 按语言浏览 — 在 GitHub 仓库中选择你的语言,查看对应的资源列表
  • 按资源类型浏览 — 选择书籍、课程、教程、播客等你偏好的学习方式
  • 贡献资源 — 发现优质免费资源后,按照贡献指南提交 Pull Request
# 在线搜索免费编程书籍 https://ebookfoundation.github.io/free-programming-books-search/ # 浏览中文编程书籍 https://github.com/EbookFoundation/free-programming-books/blob/main/books/free-programming-books-zh.md # 浏览中文免费在线课程 https://github.com/EbookFoundation/free-programming-books/blob/main/courses/free-courses-zh.md # 浏览中文互动编程教程 https://github.com/EbookFoundation/free-programming-books/blob/main/more/free-programming-interactive-tutorials-zh.md

常见问题

这些书籍和资源真的都是免费合法的吗?
是的。项目收录的都是作者或出版方明确授权免费分发的资源。这包括作者自行发布的免费书籍、开放获取的学术资源、Creative Commons 许可的内容等。项目有严格的审核流程,不收录盗版或未经授权的内容。
有多少中文编程书籍可以阅读?
中文资源板块收录了数百本免费编程书籍,涵盖 Python、Java、JavaScript、Go、C/C++ 等主流编程语言,以及算法、数据库、Linux、Web开发等热门主题。此外还有中文在线课程、互动教程和播客资源。
如何找到适合初学者的书籍?
你可以在对应编程语言的列表中查找标题中包含"入门"、"基础"、"Introduction"、"Beginner"等关键词的书籍。使用项目的在线搜索工具可以更高效地查找。对于完全初学者,建议从 Python 或 JavaScript 的入门书籍开始。
书籍的格式是什么?需要特殊阅读器吗?
收录的资源格式多样,包括在线网页、PDF、EPUB 等。大部分可以直接在浏览器中阅读。PDF 文件可以用任意 PDF 阅读器打开,EPUB 格式可以使用 Calibre 等电子书管理工具或支持 EPUB 的阅读器。
如何为这个项目做贡献?
你可以通过提交 Pull Request 来添加新的免费资源链接。项目标有 "good first issue" 的 Issue 特别适合新手贡献者。你也可以帮助翻译项目文档、检查失效链接或改进现有资源的描述。详情请查看 CONTRIBUTING.md。
这个项目和 freeCodeCamp 有什么区别?
Free Programming Books 是一个免费学习资源的目录和索引,本身不提供学习平台,而是链接到外部资源。freeCodeCamp 则是一个完整的在线学习平台,提供互动课程和认证。两者互补:你可以在 Free Programming Books 中找到补充学习材料,在 freeCodeCamp 上进行系统化练习。

社区议题

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

编号 议题标题(中文翻译 / 英文原文) 创建日期 评论
#6373 volunteers
volunteers
需要帮助:pushpin: pinned
2021-10-22 49
#6782 Outdated/partial translations `zh` since latest text review #3462
Outdated/partial translations `zh` since latest text review #3462
适合新手需要帮助:speaking_head: translations:speaking_head: locale:zhkeep
2022-03-17 35
#6263 Telegram bot
Telegram bot
New Feature需要帮助keep
2021-10-15 22
#6153 use pdf 链接 for riptutorial
use pdf links for riptutorial
:busts_in_silhouette: discussion
2021-10-10 19
#11957 Hacktoberfest 2025: Welcome
Hacktoberfest 2025: Welcome
:pushpin: pinned
2025-09-16 12
#5176 Mark up look strange on the site when using pipes `|`
Mark up look strange on the site when using pipes `|`
waiting for changesPR requestedconflicts:bug: BUGkeep
2020-11-20 10
#12079 Books related to genai, mcp, langchain, langgraph.
Books related to genai, mcp, langchain, langgraph.
2025-10-02 9
#12178 添加 book
Adding book
2025-10-04 7
#9208 No 需要 to be assigned!
No need to be assigned!
:pushpin: pinned
2022-11-15 7
#6901 Difference between course and screencast
Difference between course and screencast
问题keep
2022-07-05 7
#6690 Make script python to sort the name of courses or books
Make script python to sort the name of courses or books
:eyes: Needs Review
2022-01-30 7
#6518 big sections are ripe for division
big sections are ripe for division
需要帮助keep
2021-10-29 7
#4573 应该 tutorialspoint resources be in books, or in courses?
Should tutorialspoint resources be in books, or in courses?
:busts_in_silhouette: discussion需要帮助
2020-10-21 7
#12396 All resources to become Ai engineer, with free courses and yt videos
All resources to become Ai engineer, with free courses and yt videos
2025-10-10 5
#12018 添加 Issue Template for 缺陷, Feature, and 增强
Add Issue Template for Bug, Feature, and Enhancement
2025-10-01 5
#11272 添加 marathi translation for # How-To at a glance
Adding marathi translation for # How-To at a glance
:speaking_head: translations
2024-09-30 5
#7050 缺失 alphabetization 支持 in `fpb-lint` artifact
Missing alphabetization supports in `fpb-lint` artifact
keep
2022-09-01 5
#6095 Separate e-book and Video 教程.
Separate e-book and Video tutorials.
问题:busts_in_silhouette: discussion
2021-10-09 5
#12348 增强: 添加 "last 更新" notation to cast/podcast lists
enhancement: Add "last updated" notation to cast/podcast lists
2025-10-08 4
#12182 添加 new resource of "Machine Learning Notes"
Adding new resource of "Machine Learning Notes"
2025-10-04 4
#12863 搜索 section visible on Contributor License Agreement 页面
Search section visible on Contributor License Agreement page
2025-10-27 3
#12534 opening book issue
opening book issue
2025-10-16 3
#12365 Suggestion: 添加 High-Quality Free Complete Data Science Course with Projects (Focus on LLMs/GenAI)
Suggestion: Add High-Quality Free Complete Data Science Course with Projects (Focus on LLMs/GenAI)
2025-10-09 3
#12286 New Resource of Deep Learning Notes
New Resource of Deep Learning Notes
2025-10-07 3
#11986 There is no contribution 文件
There is no contribution file
2025-09-28 3
#13016 添加 Kannada React series 链接
Add Kannada React series link
2025-11-16 2
#12901 损坏/Malformed 链接 in APL section - College Mathematics with APL
Broken/Malformed link in APL section - College Mathematics with APL
2025-10-28 2
#12578 opening book
opening book
2025-10-17 2
#12500 修复: lint_file() fails to process lines containing both opening and closing
tags
Fix: lint_file() fails to process lines containing both opening and closing
tags
2025-10-15 2
#12364 Suggestion: 添加 High-Quality Free Complete Data Science Course with Projects
Suggestion: Add High-Quality Free Complete Data Science Course with Projects
2025-10-09 2
#12267 添加 new resource of "Deep Learning Notes"
Adding new resource of "Deep Learning Notes"
2025-10-06 2
#12261 会 like to 添加 some cp sheets in ladder section of problem-set-competitive-programming.md 文件,
Would like to add some cp sheets in ladder section of problem-set-competitive-programming.md file,
2025-10-06 2
#13116 修复 损坏 链接 and 添加 new Books 链接 in ta
Fix broken links and add new Books link in ta
2026-03-06 1
#12614 Book: Introduction to newLISP
Book: Introduction to newLISP
2025-10-18 1
#11528 添加 Assamese translation for #HOWTO.md 文件
Adding Assamese translation for #HOWTO.md file
:speaking_head: translationskeep
2024-10-13 1
#6791 Considere take CoCs from original source. If not exists, contribute with Contributor Covenant project
Considere take CoCs from original source. If not exists, contribute with Contributor Covenant project
:busts_in_silhouette: discussion:speaking_head: translations
2022-03-19 1