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.
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:
-
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.
-
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.
-
Cheat Sheets – Quick reference guides for all programming languages, perfect for developers who need a fast refresher on syntax, commands, or patterns.
-
Podcasts and Screencasts – Audio and video content in 20+ languages, ideal for learning on the go or supplementing hands-on practice with expert commentary.
-
Interactive Tutorials – Hands-on learning platforms in 5 languages where you write and execute code directly in your browser, getting immediate feedback.
-
Programming Playgrounds – Browser-based coding environments in 3 languages where you can experiment, prototype, and test ideas without installing anything.
-
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.
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.
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:
- Visit
github.com/EbookFoundation/free-programming-books - Navigate to the
books/directory for programming books - Choose your language or subject area
- Browse the curated list of free resources
Using the Search Website
For targeted searches:
- Visit
ebookfoundation.github.io/free-programming-books-search/ - Type a keyword, language, or topic in the search box
- Results appear instantly with direct links to the resources
Contributing New Resources
If you find a free programming resource that is not listed:
- Read the
CONTRIBUTING.mdguide in thedocs/directory - Fork the repository
- Add the resource in the correct category and language file
- Follow the existing format:
* [Title](URL) - Brief description - 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.
Links
- GitHub Repository: https://github.com/EbookFoundation/free-programming-books
- Search Website: https://ebookfoundation.github.io/free-programming-books-search/
- Static Website: https://ebookfoundation.github.io/free-programming-books/
- Free Ebook Foundation: https://ebookfoundation.org
- Contributing Guide: https://github.com/EbookFoundation/free-programming-books/blob/main/docs/CONTRIBUTING.md
Enjoyed this post? Never miss out on future posts by following us