A catalog for finding learning material
EbookFoundation/free-programming-books is one of GitHub’s largest education catalogs. It started from the old Stack Overflow list of freely available programming books, moved to GitHub for collaborative maintenance, and is now administered by the Free Ebook Foundation. The README points to both a static website and a separate search site, which matters because the repository is too large to browse comfortably as one markdown page.
The best way to use it is as a catalog, not as a curriculum. It helps you find books, courses, cheat sheets, interactive tutorials, problem sets, programming playgrounds, podcasts, and screencasts. It does not tell you which path to follow, does not check your work, and does not certify completion. If you already know you need a Rust book in Japanese, a Python course in French, or a competitive programming problem set, this repo can save time. If you are deciding what to learn next, a roadmap or guided course is usually a better first stop.
As of 2026-06, the repository has 390,083 stars, 66,440 forks, and 80 open issues. It is licensed under CC BY 4.0, was last pushed on 2026-06-09, and exposes its main site at https://ebookfoundation.github.io/free-programming-books/. The star count says it is famous. The contribution rules say why it has stayed usable.
What the repository covers
The README organizes resources into several families. Books are split into English by programming language, English by subject, and many other languages. The language list includes 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, and more.
The project also keeps lists for cheat sheets, free online courses, interactive programming resources, problem sets and competitive programming, podcasts and screencasts, and programming playgrounds. That makes it broader than the name suggests. It is no longer just a book list.
The Chinese section is worth noting. EbookFoundation has a Chinese list inside the multilingual repository, while justjavac/free-programming-books-zh_CN is a separate Chinese-focused repository with 117,094 stars as of 2026-06. Use the EbookFoundation list when you want the global catalog and consistent contribution policy. Use the Chinese-specific repo when your search is mainly Chinese-language material and you want a repo built around that audience.
Search before browsing
The README links to https://ebookfoundation.github.io/free-programming-books-search/. Use that first. The repository has many markdown files, language splits, subject splits, and resource types. Search is usually faster than scrolling.
The static website at https://ebookfoundation.github.io/free-programming-books/ is better for casual browsing. GitHub is better for checking change history, opening issues, and reviewing contribution rules. For a reader, the flow should be simple: search the site, open the source list when you need context, then verify the resource page directly.
That last step matters. A catalog can tell you a link exists. It cannot promise that the external resource remains high quality, current, legally clean, or suitable for your level.
The contribution rules are the real product
The CONTRIBUTING file is more useful than the README for understanding quality control. The first rule is blunt: a link that lets you download a book is not automatically a free book. Contributors are asked to make sure the content is free. The project does not accept pages that require a working email address to obtain a book, though it allows listings where an email is requested but not required.
The project also rejects Google Drive, Dropbox, Mega, Scribd, Issuu, and similar file hosting links. It prefers authoritative sources, such as the author’s site over a publisher site and a publisher site over a third-party mirror. It rejects shortened URLs, strips tracking codes, prefers HTTPS, removes trailing slashes on root domains, and asks contributors to use current links rather than version-specific links when that is the right choice.
This is the difference between a serious catalog and a link dump. A list of free books attracts questionable PDFs, stale mirrors, copied files, and promotional submissions. The value of free-programming-books comes from the rules that keep those out.
Recent PRs show the maintenance burden
Recent pull requests show how much of the work is editorial and mechanical. In June 2026, PRs included a Kannada React tutorial series, AI course additions, Korean HTTP-to-HTTPS updates, C++ book additions, Chinese contributing guide updates, and security fixes in a linter file.
The automated comments are revealing. Recent PRs failed on missing final newlines, incorrect blank lines between headings and sections, alphabetical ordering, trailing slashes, and merge conflicts. Maintainer comments also ask whether a resource belongs in the courses list instead of the books list, whether links are 404, and whether Chinese-language changes need language review.
Those details are not trivia. They explain why the repository has lasted for more than a decade. Maintaining a free resource catalog means saying no to bad hosting, moving items to the right category, checking language-specific edits, and making small formatting rules machine-checkable.
Compared with freeCodeCamp, roadmap.sh, awesome, and project lists
freeCodeCamp/freeCodeCamp is a learning platform with exercises, projects, progress, and certificates. Choose freeCodeCamp when you want a guided path and work validation. Choose free-programming-books when you already know the topic and want source material.
nilbuild/developer-roadmap helps you decide what to learn next. It is a map of roles and technologies. free-programming-books is the shelf you visit after deciding which topic to study.
sindresorhus/awesome is broader than programming books. It points to topic-specific awesome lists across software and other fields. Use it for domain discovery. Use free-programming-books for learning resources with a stronger focus on books, courses, tutorials, and practice material.
practical-tutorials/project-based-learning is a curated list of project tutorials with 268,556 stars as of 2026-06. It is better when you want to build something concrete. free-programming-books is better when you want references, books, courses, and multi-language learning material.
public-apis/public-apis is useful when you need APIs for practice projects. It is not a learning catalog, but it pairs well with books and tutorials once you start building.
When to use it
Use this repository when you have a specific topic, language, or resource type in mind. It is especially good for finding older canonical books, language-specific material, open courses, cheat sheets, and problem sets. It is also useful for teachers and study groups that want free references without forcing every learner onto the same platform.
Do not use it as a replacement for a study plan. A huge catalog can make beginners feel productive while they keep collecting links. Pick one path, choose one or two resources, and build something. If you are unsure what path to pick, start with roadmap.sh or a structured platform.
For production or classroom use, verify every external link yourself. Check the license of the resource, not only the license of this repository. The repository itself is CC BY 4.0, but linked resources have their own terms.
Star curve reading
The sampled star history shows a long-lived resource repo rather than a short hype spike. It began in 2013, inherited attention from the old Stack Overflow list, and kept growing as GitHub became the default place to maintain public learning resources. Because the repo is very large, the curve is sampled, so short interval spacing should not be overread.
The durable signal is simpler: developers keep searching for free learning material, especially in languages other than English. This repository has survived because it gives that demand a maintainable shape.
Related reading
For guided learning with projects and certificates, read freeCodeCamp/freeCodeCamp. For choosing a learning path before selecting books, see nilbuild/developer-roadmap. For broad developer lists, see sindresorhus/awesome. For project practice after reading, see codecrafters-io/build-your-own-x.
FAQ
Is EbookFoundation/free-programming-books only about books? No. It also includes courses, cheat sheets, interactive tutorials, programming playgrounds, podcasts, screencasts, and problem sets.
Is every linked resource open source? No. The repository is CC BY 4.0, but linked resources have their own licenses and terms. The contribution guide asks contributors to prefer free licenses where they apply, but not every free-to-read item is open source.
Can I use it as a complete learning path? Not by itself. It is a catalog. Pair it with a roadmap, course platform, project list, or teacher-guided plan.
Does it include Chinese programming books? Yes. The EbookFoundation repository includes a Chinese list, and there is also a separate justjavac/free-programming-books-zh_CN repository focused on Chinese material.
What kind of links does the project reject? The contribution guide rejects resources that require a working email address to obtain a book, rejects common file-hosting platforms such as Google Drive and Dropbox, rejects shortened URLs, and prefers authoritative sources.