What Is the Free Programming Books GitHub Repository?
The EbookFoundation/free-programming-books repository on GitHub is the largest community-maintained directory of free programming resources on the internet. With over 390,000 stars and more than 66,000 forks, it ranks among the top 5 most-starred repositories on GitHub, alongside projects like freeCodeCamp and developer-roadmap.
Originally a clone of a StackOverflow page created by Karan Bhangui and George Stocker, the list was moved to GitHub by Victor Felder in 2013. After going viral on Hacker News, it grew rapidly and is now maintained by the Free Ebook Foundation, a 501(c)(3) non-profit organization based in New Jersey.
As of 2026, the repository contains over 8,000 links to free programming books, courses, podcasts, and screencasts across 43 spoken languages. More than 3,000 contributors have helped build this collection through over 10,000 commits.
How to Navigate the Repository
The repository is organized by language and topic. The main files are Markdown (.md) documents with categorized lists. For example, books/free-programming-books.md contains books sorted by programming language, while courses/free-courses-en.md lists free online courses in English.
GitHub provides a built-in file browser, but the structure can be overwhelming for first-time visitors. The files are plain text, each containing hundreds of links with minimal context — no descriptions, no ratings, and no quality filtering beyond community curation.
The Search Tool
In August 2022, the Free Ebook Foundation launched an official search tool at ebookfoundation.github.io/free-programming-books-search. This tool allows you to filter by language and search across all resources from a single interface. However, it still presents results as a raw list of links without descriptions, metadata, or structured information about each book.
Limitations of the GitHub Repository
While the repository is an incredible resource, it has some notable limitations:
- No quality curation: Resources are added through pull requests. Anyone can submit a link, and there is no editorial review process.
- No descriptions: Each entry is just a title and a URL. There is no information about what the book covers, who it is for, or what license it uses.
- No direct downloads: The repository only links to external resources. It does not host any PDFs or provide direct downloads.
- Broken links: With over 8,000 links maintained by volunteers, many URLs become outdated. The foundation runs automated link checking, but broken links are common.
- No schema or rich results: The repository has no structured data markup, which limits its visibility in search engine result pages.
FreeProgrammingBooks.com: A Curated Alternative
If you prefer a more structured experience, FreeProgrammingBooks.com offers a curated collection of free programming books with several advantages over the GitHub repository:
- Manual curation: Every listing is reviewed for quality and license compliance before being added.
- Detailed descriptions: Each book page includes a full description, table of contents, author information, and license details.
- Direct PDF downloads: Books are hosted directly on the platform, so you can download without navigating to external sites.
- SEO-friendly structure: All pages include Book schema markup for rich search results, OG tags for social sharing, and meta descriptions optimized for search engines.
- Topic-based browsing: Books are organized by programming language and category, with dedicated topic pages for Python, JavaScript, C++, Go, data science, and more.
While the GitHub repository excels at breadth (8,000+ links), FreeProgrammingBooks.com focuses on quality and usability — every book is manually reviewed, described in detail, and available as a direct PDF download.
How to Contribute to the GitHub Repository
The repository welcomes contributions. If you find a free programming book that is not listed, you can submit it by creating a pull request. The process is straightforward:
- Fork the repository on GitHub.
- Add the link to the appropriate file (sorted alphabetically).
- Submit a pull request with a clear description of what you are adding.
- Repository maintainers review and merge your contribution.
Before contributing, read the CONTRIBUTING.md file and the Code of Conduct. The repository follows the CC BY 4.0 license, so all contributions are shared under the same open terms.
Frequently Asked Questions
Is the Free Programming Books repository free?
Yes. The repository is completely free and open source under the Creative Commons Attribution 4.0 International License. No registration or payment is required to access the list.
How many programming languages are covered?
The repository includes resources in 43 languages, including English, Spanish, French, German, Chinese, Japanese, Russian, Arabic, and many more.
What is the difference between the GitHub repo and FreeProgrammingBooks.com?
The GitHub repository is a community-curated list of links with over 8,000 entries but no editorial review. FreeProgrammingBooks.com is a curated directory that includes detailed book descriptions, direct PDF downloads, license verification, and quality filtering. Each book is manually reviewed before being listed.
Does the repository include courses or only books?
Both. The repository includes free programming books, online courses, tutorials, podcasts, screencasts, and interactive programming playgrounds, organized in separate directories within the repository.
How can I support the Free Ebook Foundation?
The Free Ebook Foundation is a 501(c)(3) non-profit. Donations are tax-deductible in the United States. You can contribute through their website at ebookfoundation.org.