Free Programming Books: The Ultimate Resource Guide with 387K Stars

The EbookFoundation’s free-programming-books repository is one of GitHub’s most popular open source projects, boasting over 387,000 stars and thousands of contributors worldwide. Originally a clone of a StackOverflow list, it has grown into the internet’s most comprehensive curated collection of free programming resources – covering books, courses, cheat sheets, podcasts, interactive tutorials, and programming playgrounds across more than 30 human languages and 40+ programming languages.

Resource Ecosystem Overview

The repository organizes its vast collection into seven distinct resource categories, each serving a different learning need. Whether you are a beginner looking for your first programming book or an experienced developer seeking a quick reference cheat sheet, this ecosystem has something for you.

Free Programming Books Resource Ecosystem

Understanding the Ecosystem

The diagram above illustrates how the EbookFoundation repository serves as a central hub connecting seven resource categories to four types of users. At the center, the repository acts as the authoritative source, curated by a global community of contributors and administered by the Free Ebook Foundation, a not-for-profit organization.

Resource Categories:

  1. Books – The flagship collection, organized by both programming language (Python, JavaScript, Rust, etc.) and subject area (algorithms, AI, databases, web development). Available in 30+ human languages including Arabic, Chinese, French, German, Japanese, Russian, and many more.

  2. Free Online Courses – A curated list of free programming courses in 25+ languages, covering video lectures, interactive platforms, and structured curricula from universities and industry leaders.

  3. Cheat Sheets – Quick reference guides for all programming languages, perfect for developers who need a fast refresher on syntax, commands, or patterns.

  4. Podcasts and Screencasts – Audio and video content in 20+ languages, ideal for learning on the go or supplementing hands-on practice with expert commentary.

  5. Interactive Tutorials – Hands-on learning platforms in 5 languages where you write and execute code directly in your browser, getting immediate feedback.

  6. Programming Playgrounds – Browser-based coding environments in 3 languages where you can experiment, prototype, and test ideas without installing anything.

  7. Problem Sets – Competitive programming challenges and algorithm problem sets that sharpen your problem-solving skills and prepare you for technical interviews.

User Types and Pathways:

  • Beginners benefit most from books, courses, and interactive tutorials that provide structured, step-by-step learning paths
  • Developers use cheat sheets, playgrounds, and problem sets for quick reference, experimentation, and skill sharpening
  • Educators leverage the curated lists to find teaching materials and share them with students
  • Contributors maintain and expand the collection through community curation, ensuring resources stay current and relevant

The search engine at ebookfoundation.github.io provides dynamic search across all resources, making it easy to find exactly what you need without browsing through markdown files.

Content Organization Structure

The repository follows a clean, intuitive directory structure that mirrors the resource categories. Understanding this structure helps you navigate the collection efficiently.

Content Organization Structure

Understanding the Organization

The diagram shows how the repository is organized into five main directories, each serving a specific purpose:

books/ – The largest directory, containing programming books organized in three ways:

  • By Programming Language (free-programming-books-langs.md) – Books categorized by programming language (Python, JavaScript, Rust, Go, etc.), covering 40+ languages
  • By Subject (free-programming-books-subjects.md) – Books organized by topic (algorithms, artificial intelligence, databases, web development, etc.)
  • By Human Language – 30+ translated versions for non-English speakers, from Arabic to Vietnamese

courses/ – Free online courses organized by human language, with English courses (free-courses-en.md) as the largest collection and 25+ translated versions covering languages from Arabic to Ukrainian.

casts/ – Podcasts and screencasts in 20+ languages, providing audio and video learning content for developers who prefer multimedia formats.

more/ – Supplementary resources including:

  • Cheat sheets (free-programming-cheatsheets.md) – Quick reference guides for all languages
  • Interactive tutorials in 5 languages – Hands-on browser-based learning
  • Programming playgrounds in 3 languages – Online coding environments
  • Problem sets for competitive programming – Algorithm challenges and interview prep

docs/ – Community documentation including the Contributing guide, Code of Conduct, and How-to guides for new contributors.

Each markdown file in the repository follows a consistent format: resources are listed with their title, URL, and a brief description, making it easy to scan and find what you need.

How to Navigate Free Programming Books

There are three primary ways to access the resources in this collection, each suited to different use cases.

Navigation Workflow

Understanding the Navigation

The diagram shows the three entry points and how they lead to the same curated resources:

1. GitHub Repository – The source of truth at github.com/EbookFoundation/free-programming-books. Browse the markdown files directly, submit issues, or contribute new resources via pull requests. Best for contributors and those who want the most up-to-date content.

2. Search Website – Available at ebookfoundation.github.io/free-programming-books-search/, this dynamic search interface lets you find specific books, courses, or resources by keyword. Best when you know what you are looking for and want instant results.

3. Static Website – Available at ebookfoundation.github.io/free-programming-books/, this provides a clean, readable web interface to the same content. Best for casual browsing and discovering new resources.

Once you choose your entry point, you decide what type of resource you need. If you are looking for books, you then select your preferred language. The result is a curated list of free, high-quality resources ready for immediate use.

If you find a resource that should be added, the project welcomes contributions through pull requests following the guidelines in CONTRIBUTING.md.

Key Features and Highlights

Feature Description
387K+ Stars One of GitHub’s most starred repositories, demonstrating massive community trust
30+ Human Languages Resources available in Arabic, Chinese, French, German, Japanese, Russian, and many more
40+ Programming Languages Books covering Python, JavaScript, Rust, Go, C++, and dozens more
7 Resource Categories Books, courses, cheat sheets, podcasts, interactive tutorials, playgrounds, problem sets
Dynamic Search Full-text search across all resources at the dedicated search website
Community Curated Thousands of contributors ensuring quality and currency
CC BY License All content freely available under the Creative Commons Attribution license
Free Ebook Foundation Administered by a not-for-profit organization with tax-deductible donations

How to Use the Collection

Browsing on GitHub

The simplest way to explore is through the GitHub repository:

  1. Visit github.com/EbookFoundation/free-programming-books
  2. Navigate to the books/ directory for programming books
  3. Choose your language or subject area
  4. Browse the curated list of free resources

Using the Search Website

For targeted searches:

  1. Visit ebookfoundation.github.io/free-programming-books-search/
  2. Type a keyword, language, or topic in the search box
  3. Results appear instantly with direct links to the resources

Contributing New Resources

If you find a free programming resource that is not listed:

  1. Read the CONTRIBUTING.md guide in the docs/ directory
  2. Fork the repository
  3. Add the resource in the correct category and language file
  4. Follow the existing format: * [Title](URL) - Brief description
  5. Submit a pull request

The project is particularly welcoming to new contributors, with “good first issue” labels and a comprehensive Code of Conduct.

Resource Categories in Detail

Programming Books by Language

The books/free-programming-books-langs.md file is the largest single resource in the collection. It organizes free programming books by the programming language they cover, from mainstream languages like Python and JavaScript to specialized ones like Ada, Erlang, and Racket. Each entry includes the book title, a direct link, and often a brief annotation about the content or target audience.

Programming Books by Subject

The books/free-programming-books-subjects.md file takes a different approach, organizing books by topic area. This is ideal when you want to learn about a specific domain rather than a specific language. Major subject categories include:

  • Algorithms and Data Structures
  • Artificial Intelligence and Machine Learning
  • Database Management
  • Embedded Systems
  • Graphics Programming
  • Networking
  • Operating Systems
  • Web Development

Free Online Courses

The courses/ directory contains curated lists of free online programming courses, organized by human language. The English courses file is the most comprehensive, featuring courses from platforms like MIT OpenCourseWare, Stanford Online, and freeCodeCamp. Each course entry includes the platform, topic, and direct enrollment link.

Cheat Sheets

The more/free-programming-cheatsheets.md file is a developer’s best friend – a single reference page linking to cheat sheets for virtually every programming language and tool. From Git commands to Python syntax to regular expressions, these quick reference guides save hours of searching.

Why This Repository Matters

In an era where programming education can cost thousands of dollars, the EbookFoundation’s free-programming-books repository democratizes access to knowledge. It is maintained by a dedicated community that continuously curates, verifies, and updates the collection. The Free Ebook Foundation, a not-for-profit organization, ensures the project’s long-term sustainability through tax-deductible donations.

The repository’s 387,000+ stars are not just a popularity metric – they represent a global community of learners and educators who rely on this collection daily. Whether you are switching careers into tech, expanding your skill set, or teaching others, this resource provides a trusted, comprehensive starting point that would be impossible to assemble individually.

Watch PyShine on YouTube

Contents