Mindket

Free Programming Books

Newversion 2 · updated
Star401k

Overview

A community list of free programming books, courses, cheat sheets, interactive tutorials, podcasts and playgrounds in many languages, administered by the Free Ebook Foundation. Setup notes cover reading and searching it, asking Claude Code, Codex or Cursor about it, and the maker’s checks.

Free Programming Books is an open-source project on GitHub in the Education category, listed by Mindket. It is free. This is version 2, last updated on . Install it from GitHub as its README says. Get Mindket’s setup notes on your Mindket account, as a zip.

At a glance

Runs in
  • GitHub: the README, and each list file it links to
  • The static website: the README says the page is available as an easy-to-read website
  • The search site: a separate page where you search by book or author
  • A local copy: clone the repository, or take the zip that the README’s repo-size badge links to, then search the files by hand or with your agent
Start with
git clone https://github.com/EbookFoundation/free-programming-books.git

Platform

Any coding agentCoding agent
Claude CodeCoding agent
CodexCoding agent
CursorCode editor

About

What it is

Free Programming Books is a list of links to learning material that is free to read. The Free Ebook Foundation administers it, and contributors keep adding to it. It is a set of Markdown files, not a program. You open a list, find your subject or language, and follow a link to the resource’s page. The README says the list began as a clone of a StackOverflow question and grew into one of GitHub’s most popular repositories.

  1. You want to learn a subject for free
  2. Open the list for your language or subject
  3. Find the section and read its lines
  4. Follow the link to the resource’s page
  5. Check the terms there, then read or download

Who it suits

Learners who want free material for one language or one subject, teachers who build a reading list, and developers who need a book on a topic outside their daily work. Readers of other languages can start from the README’s per-language lists. A coding agent can search a local copy for you.

Who uses it, and how
Who uses itHow they use itExample
Self-taught learnersPick a book for a language from the by-language listA learner opens the Rust section and chooses a book that reads in the browser.
Teachers and tutorsBuild a reading list from one subject sectionA teacher takes lines from the Algorithms & Data Structures section and shares them with a class.
Developers learning a new areaLook up a subject that is not tied to one languageA web developer reads the Operating Systems section of the subjects list.
Readers of another languageStart from the list for their languageA reader opens the Portuguese (Brazil) list instead of the English one.
ContributorsAdd a free resource that is not listed yetSomeone proposes a book in an issue, after searching for duplicates.

Skip it if you want one recommended path. The lists are alphabetical, and they do not say which book is best.

Where to use it

The lists work anywhere you can open a web page or a Markdown file.

  • GitHub: the README, and each list file it links to
  • The static website: the README says the page is available as an easy-to-read website
  • The search site: a separate page where you search by book or author
  • A local copy: clone the repository, or take the zip that the README’s repo-size badge links to, then search the files by hand or with your agent
  • The maker’s checks: Node.js, Ruby or Python, only if you contribute
The lists by kind
KindWhere in the repositoryWhat a line points to
Booksbooks/A free book, in HTML, PDF, EPUB or another format
Coursescourses/A course, often on a platform named in parentheses
Interactive tutorialsmore/A site where you type code or commands and see the result
Cheat sheetsmore/A cheat sheet for a language, a tool or a topic
Problem setsmore/A site or tool for practice problems and competitive programming
Podcasts and screencastscasts/A free podcast or screencast
Playgroundsmore/An online place to write, run and share code

The README gives no steps for any coding agent. Minda’s notes for Claude Code, Codex and Cursor are ordinary steps for giving an agent a folder to read, and they say so.

How to set it up

Get it saves a zip of Minda’s setup notes in your downloads folder. The lists need no install, and the README gives no install line.

What you need first
NeedDetail
NothingTo read the lists on GitHub or on the two websites
GitOnly to keep a local copy. GitHub reports the clone address, and git clone is ordinary Git, not a line from the README
Node.jsOnly to run fpb-lint, the maker’s format check
RubyOnly to run awesome_bot, the maker’s link check
PythonOnly to run the maker’s right-to-left check
  1. Read the README on GitHub, or open the website.
  2. To keep a copy, clone the repository with the line below.
  3. Open the folder in your editor or coding agent, and go to books/, courses/ or more/.
git clone https://github.com/EbookFoundation/free-programming-books.git

The clone line is ordinary Git on the address GitHub reports. The next two lines come from the maker’s workflow file fpb-lint.yml. There, the second line ends with &> output.log, which writes the result to a log. Run them from the repository’s root. The first installs the format check, and the second runs it on the four list folders.

npm install -g free-programming-books-lint
fpb-lint books casts courses more

How to use it

Open the list that fits, then the section you want. Each line gives a title and its link, and often an author. Then come notes: a format such as (HTML) or (PDF) on a book, a platform such as (Udemy) on a course, and sometimes a license code or an access note. The title’s link goes to the most authoritative source the contributor found: the author’s site, else the editor’s, else a third party’s, or an archived copy marked archived. The download and the terms are on that page. The README’s search page takes a book title or an author’s name.

With an agent, name the file and the section, and ask it to quote the lines it used.

Open books/free-programming-books-langs.md in this folder. List the Rust books that come as HTML, with their authors and links.

Example

You want to learn Rust without buying a book. You open books/free-programming-books-langs.md and search for ### Rust, or you ask your agent for the books that come as HTML.

In the list read on 3 November 2026, the Rust section has these lines, among others:

* [A Gentle Introduction To Rust](https://stevedonovan.github.io/rust-gentle-intro) - Steve J Donovan (HTML)
* [Easy Rust](https://dhghomon.github.io/easy_rust/) - David McLeod (HTML, PDF)

You pick Easy Rust and open its link. The line gave you the title, the author and two formats. The terms and anything else about the book are on the book’s own page.

For newcomers and experts

If you are new. A list like this holds no books. Each line is a link to a book or course that someone else wrote and put online for free. The format in parentheses tells you what you get, such as HTML to read in a browser or PDF to download. A code such as CC BY-SA names the Creative Commons license the contributor found on the resource’s page. A line without a code may still be free to read but not free to copy. Start with the by-language list for the language you are learning, or the by-subject list for a topic such as algorithms.

For experts. Each list is a plain Markdown file with one resource per line and the lines in alphabetical order, so a line-based tool can read it. CONTRIBUTING.md fixes the layout down to the blank lines between sections, which makes a text search on a heading such as ### Rust reliable.

The maker’s format check, fpb-lint, is based on remark-lint. It runs on the books, casts, courses and more folders on every pull request. A second workflow runs awesome_bot on the files a push or pull request changes, and its step ends with || true, so a dead link does not fail the step. A third check covers the Arabic, Hebrew, Persian and Urdu lists.

The pull request template asks how the contributor knows a resource is really free. CONTRIBUTING.md says it helps the admins if they comment in the pull request why they think a book is free. That is a contributor’s judgment and a reviewer’s, not a license audit.

Good to know

The lists only point to resources, so nothing here runs on your machine unless you run one of the maker’s checks. The questions are about what the links lead to.

  • License: CC BY 4.0. It covers the repository’s files, the lists. Each linked resource has its own owner and terms, and CONTRIBUTING.md says some listed resources are all rights reserved but free to read
  • Links change: the link check runs on files that a push or pull request changes, so a line in a file nobody touched can go stale. Open a link before you rely on it
  • What is left out: blogs, articles, videos that are not courses or screencasts, book chapters, teaser samples, and files on Google Drive, Dropbox, Mega, Scribd or Issuu
  • Access notes: some lines ask for an email address or a Leanpub account, and a course line names its platform, which often asks for an account. The note on the line says so
  • Outbound: reading loads GitHub or the websites. A local copy opens no connection by itself. Previewing README.md or HOWTO.md in a Markdown viewer loads their badge and chart images from img.shields.io, cdn.rawgit.com and apiseven.com
  • Removal: delete the local copy’s folder. If you installed fpb-lint with npm, remove it the way you remove any global npm package

README and files

README

Free Programming Books: setup notes

This kit holds setup notes only. Mindket wrote them. The lists themselves are the files of the EbookFoundation/free-programming-books repository: https://github.com/EbookFoundation/free-programming-books

These notes are not made or endorsed by the Free Ebook Foundation or by the people who contribute to the lists. GitHub's description of the repository is ":books: Freely available programming books". The README is titled "List of Free Learning Resources In Many Languages" and says "This project lists books and other resources grouped by genres". Source: https://github.com/EbookFoundation/free-programming-books/blob/main/README.md

License: CC BY 4.0. GitHub's repository answer names it "Creative Commons Attribution 4.0 International" (CC-BY-4.0), the LICENSE file opens with "Attribution 4.0 International", and the README says "Each file included in this repository is licensed under the CC BY License". That covers the repository's own files, the lists. Every book, course or site a list links to has its own owner and its own terms. CONTRIBUTING.md says the lists include resources that are "All Rights Reserved" but free to read. Sources: https://api.github.com/repos/EbookFoundation/free-programming-books, https://github.com/EbookFoundation/free-programming-books/blob/main/LICENSE and https://github.com/EbookFoundation/free-programming-books/blob/main/docs/CONTRIBUTING.md

What it is

A set of Markdown lists of links, not a program. Each line names a free resource and links to it, usually with who made it and a format or platform. The repository holds no books. The README says the list "was originally a clone of" a StackOverflow list of freely available programming books, was moved to GitHub by Victor Felder, and is now administered by the Free Ebook Foundation.

The files, as the repository's tree and the README show them:

  • README.md: an intro, how to contribute, and an index of every list by kind and by language
  • books/: free-programming-books-langs.md (English, by programming language), free-programming-books-subjects.md (English, by subject), one file per other language such as free-programming-books-zh.md, and free-programming-books-en.md, a short page that points to the first two
  • courses/: one file of free online courses per language, such as free-courses-en.md
  • casts/: podcasts and screencasts per language, such as free-podcasts-screencasts-en.md
  • more/: free-programming-cheatsheets.md, interactive tutorials per language, problem-sets-competitive-programming.md and the programming playgrounds
  • docs/: CONTRIBUTING.md, HOWTO.md, CODE_OF_CONDUCT.md, and README.md with their translations
  • .github/workflows/: the maker's workflow files, which include the checks that run on pull requests and pushes
  • scripts/: rtl_ltr_linter.py and rtl_ltr_linter_config.yml
  • _config.yml: the settings of the static website

Sources: the README and the repository's file tree (https://api.github.com/repos/EbookFoundation/free-programming-books/git/trees/main?recursive=1).

What installs

Nothing, to read the lists. The README gives no install line. The optional checks need Node.js (for fpb-lint), Ruby (for awesome_bot) or Python (for the right-to-left check). See setup/contribute-and-check.md.

What you need first

  • To read the lists: a browser, or any program that opens a Markdown file.
  • To keep a local copy: Git. The README gives no clone line. GitHub's repository answer reports this clone address: https://github.com/EbookFoundation/free-programming-books.git. Running git clone on that address is ordinary Git (Mindket's note, not the maker's). The README's repo-size badge also links to a zip of the main branch: https://github.com/EbookFoundation/free-programming-books/archive/refs/heads/main.zip
  • To run a maker's check: the tool named in setup/contribute-and-check.md.

Per-platform notes

  • setup/read-and-search.md: GitHub, the static website, the search site and a local copy, and how to find a resource by hand
  • setup/reading-an-entry.md: what the formats, licenses and notes at the end of an entry mean, and what the lists leave out
  • setup/ai-agents.md: giving Claude Code, Codex, Cursor and other agents a local copy to read (Mindket's notes, since the maker documents no agent)
  • setup/contribute-and-check.md: the rules for adding a resource and the maker's three checks

Update or remove

A local copy is a Git folder. To update it, run git pull inside it (Mindket's note, ordinary Git). To remove it, delete the folder. Nothing else is installed unless you installed one of the checks' tools.

Outbound connections

  • Reading on GitHub or on the two websites loads those sites. The README's badges are images loaded from other hosts, such as img.shields.io.
  • A local copy opens no connection by itself. Previewing README.md or HOWTO.md in a Markdown viewer loads their badge and chart images from img.shields.io, cdn.rawgit.com and apiseven.com. A link inside a list goes to that resource's own site, which has its own terms and its own privacy practice.
  • The search site is a separate JavaScript page at https://ebookfoundation.github.io/free-programming-books-search/ . Without JavaScript the page says "You need to enable JavaScript to run this app."

Sources

Files
README.md  6 KB
setup/ai-agents.md  2 KB
setup/contribute-and-check.md  8 KB
setup/read-and-search.md  4 KB
setup/reading-an-entry.md  4 KB

5 files, 25 KB, downloaded as a zip.

What’s new

  • Version 2 · 2026-11-09

    Updated by Mindket to the current version of this kit.

  • Version 1 · 2026-11-03

Reviews

No ratings yet

Write a review

No reviews yet.

What people say

Posts and comments that name this project on Hacker News, Bluesky, X, Reddit, Facebook and YouTube, found by a weekly search and on Trendshift. Mindket doesn’t write or check them. Open one to read it where it was posted.

whereistimboEbookFoundation/Free-Programming-Books38 points · 2 repliesGitHub Trending🔥 Hot Repo! 🔥 (100+ new stars) 📦 EbookFoundation / free-programming-books ⭐ 386,359 (+133) 🗒 Python 📚 Freely available programming books1 like@ruyi3699GitHub 上收藏的仓库一抓一大把,可真正点开过的能有几个?说句实在话,这跟囤电子书没啥区别,存下来就当自己已经学过了。📚 能让我反复翻出来看的,兜兜转转也就这 5 个: 1️⃣ public-apis —— 几百个免费 API 按领域分好类,做 demo 时随手一翻就有 https://t.co/zMCUBDciKP 2️⃣ build-your-own-x —— 从零手撸数据库、编译器、Docker,费曼学习法的天花板级实践 https://t.co/FqueFYA8Hz 3️⃣ developer-roadmap ——…chhickmanEbookFoundation/Free-Programming-Books3 points@radiotux.bsky.socialWissensdurst? **Free Programming Books**! 📚💻 #shipit Eine riesige Sammlung kostenloser Programmierbücher & Kurse in vielen Sprachen. Highlights: ✅ Tausende Ressourcen ✅ Mehrsprachig ✅ Open Source Link: https://github.com/EbookFoundation/free-programming-books #RadioTux #Programming #Learning@bdall_1想学编程,却不知道先学什么、学完怎么练? 这 8 个 GitHub 项目可以分别解决这些问题: 1. developer-roadmap 查看不同开发方向的学习路线。 https://t.co/go6lGP0agB 2. freeCodeCamp 跟着课程和练习学习编程。 https://t.co/DYTTAnGdXz 3. free-programming-books 免费的编程书籍和学习资源合集。 https://t.co/uKEYSts8rG 4. build-your-own-x 通过亲手实现数据库、编译器等项目,理解它们的工作原理。 https://t.co/mWAUZSVUso…axiomdata316EbookFoundation/free-programming-books: Freely available programming books3 pointsAndrii Kuznietsov📚 Ресурс де зібрані тисячі книг, курсів і навчальних матеріалів для програмування та не тільки. Охоплює широкий спектр тем — від основ до просунутого рівня. Усі ресурси зручно розподілені за категоріями для швидкого пошуку 🔗 github.com/EbookFoundat...@wanerfu$81MofpofjisDon't Use ISO/IEC 14977:1996 Extended Backus-Naur Form (EBNF) (2023)Evidence to the contrary (anecdotal, admittedly): - https://github.com/EbookFoundation/free-programming-books/is... -- "The most recent freely available draft of C17/C18 used to be c17_updated_proposed_fdis.pdf, but it's no longer available directly and you need to use Wayback Machine to download…Tom Dörrhttps://github.com/EbookFoundation/free-programming-books@huhaoai学编程或者找技术资料的兄弟,把这个东西存死,真能省下大几千块买书钱。 free-programming-books:https://t.co/oXvKpHwBJF GitHub 上近 40 万 Star 的神级公益库,全球开发者维护了十几年。从 Python、Go、Rust、Java、C++ 到 AI 大模型、分布式架构、底层操作系统,几千本高质量正版开源书全给你翻出来。 它甚至还有一个可以直接搜书的官方网页站:https://t.co/yeYU7KX7wK 想找哪门语言、哪本教材,敲个名字直接就能在线看或下载,完全没有关注公众号求资料那些恶心套路。

Searched

More from Mindket

See all from Mindket

upscaler

uwg · Kit

Holds a set of image upscaling models gathered from the OpenModelDB community, for people who want to enlarge low-resolution pictures with AI on their own comp…

New

Pixel Art XL

nerijs · Kit

A pixel art style add-on for Stable Diffusion XL that turns text prompts into pixel-style images, with an optional LCM LoRA for faster runs. For game makers, d…

New

VibeVoice-1.5B

microsoft · Kit

Turns written conversations into spoken audio with up to four speakers and about 90 minutes of speech, an open Microsoft text-to-speech model for research on p…

New

Similar projects

See all in Education

The Algorithms Python

TheAlgorithms · Kit

TheAlgorithms’ open source collection of algorithms and data structures, each written in Python for learning. Setup notes cover reading it on GitHub or its doc…

New226k

Vāgdhenu by prathoshap

prathoshap · Kit

Reads classical Sanskrit verses aloud in a chant style, using one trained voice and a reference clip that sets the rhythm. For people who study, recite or need…

New

Limite 1B - Violetto

paradigma-inc · Kit

Solves hard math problems with a 1B-parameter model trained from scratch for fast, high-volume reasoning. It suits developers who run math workloads on an NVID…

New