Back to repos

EbookFoundation/free-programming-books

View on GitHubAnalyzed March 15, 2026

Overview

EbookFoundation/free-programming-books is a highly popular, community-driven repository that curates and maintains a comprehensive list of free learning resources for programming and computer science. The primary goal of the project is to provide learners worldwide with access to high-quality, freely available programming books, tutorials, courses, podcasts, and cheat sheets in a wide variety of languages and subjects. The repository is administered by the Free Ebook Foundation, a non-profit organization dedicated to promoting the creation and distribution of free ebooks.

The repository is notable for its collaborative nature, with thousands of contributors continually updating and expanding the lists. It is one of GitHub's most-starred repositories, reflecting its value to the global developer and learner community. The content is organized by programming language, subject, and spoken language, making it easy for users to find resources tailored to their needs. The project also provides static and searchable websites generated from the repository content, further enhancing accessibility.

Architecture

This repository is primarily a structured collection of Markdown files, each listing resources for a particular language or subject. The content is organized into directories such as books/, courses/, casts/, and more/, each containing language-specific or topic-specific lists. The root directory contains configuration files for documentation, licensing, and static site generation. The project uses Jekyll (with the Minimal theme) to generate a static website from the Markdown files, as specified in _config.yml. Community contributions are managed via GitHub pull requests, with templates and guidelines provided to maintain consistency and quality.

The repository also includes configuration for GitHub Actions and Dependabot to automate maintenance tasks, such as dependency updates and workflow management. There is no application code or backend logic; the core value lies in the curation, structure, and accessibility of the resource lists.

Key Features

  • Extensive Multilingual Coverage: Resources are available in dozens of spoken languages, each with its own curated list (e.g., books/free-programming-books-ar.md for Arabic).
  • Comprehensive Resource Types: The repository includes books, online courses, interactive tutorials, cheat sheets, podcasts, screencasts, and problem sets.
  • Community-Driven Contributions: Clear contributing guidelines and templates encourage high-quality, consistent submissions from the global community.
  • Static Site Generation: Uses Jekyll and GitHub Pages to provide both a static browsing site and a searchable web interface.
  • Automated Maintenance: GitHub Actions and Dependabot configurations help automate repository upkeep.
  • Open Licensing: All content is licensed under Creative Commons Attribution 4.0, enabling free use and redistribution.

Example Structure

Directory/FilePurpose
books/Language-specific book lists in Markdown
courses/Free online course lists by language
casts/Free podcasts and screencasts
more/Cheat sheets, playgrounds, problem sets, etc.
README.mdMain entry point, project overview, and navigation
_config.ymlJekyll configuration for static site generation
.github/PR templates, automation, and workflow configs

How It Works

  • Curation: Contributors submit new resources or updates via pull requests, following the guidelines in docs/CONTRIBUTING.md.
  • Organization: Resources are grouped by language and topic for easy discovery.
  • Accessibility: The lists are accessible as Markdown on GitHub, as a static website, and via a searchable web interface.
  • Automation: Maintenance tasks (like dependency updates for GitHub Actions) are handled automatically.

This repository is a living, collaborative index of free programming knowledge, serving as a central hub for learners and educators worldwide.