eba0d7f2ed
* Update free-programming-books-subjects.md I am the author of a new language-agnostic introduction-to-programming textbook, discovered this site, and would like to add my book. The use case I am thinking of is this: A kid wants to learn to program, doesn't know which in language, and comes to this: BY PROGRAMMING LANGUAGE Originally, this list included a section called "Language Agnostic" for books about programming subjects not restricted to a specific programming language. That section got so big, we decided to split it into its own file, the BY SUBJECT file. The kid in intrigued by the idea of learning programming in a language-agnostic manner, goes to BY SUBJECT, and but finds there a list of specialized and advanced-sounding topics. The kid just wants to learn to program, and not finding a suitable category in which to look, is encouraged thereby to return to BY PROGRAMMING LANGUAGE, pick a specific language, and go down that path. Little did the kid suspect that there are language-agnostic introductory-programming texts in Theoretical Computer Science. It took Eric Hellman to point out to me that this is where such great language-agnostic introductory-programming texts as SICP/Ableson&Sussman are catalogued (Yes, SICP uses Scheme, but it isn't really about "How to Program in Scheme"). But the kid will never find SICP, because "Theoretic Computer Science" is an intimidating misnomer. (And furthermore, the category does include highly-theoretical books.) The kid has lost an opportunity, and has been led to believe that programming is all about learning one of the standard programming languages. I am proposing to: 1. Rename the category "Language-Agnostic Introductory Programming / Theoretical Computer Science". 2. Move into alphabetical order in the list of subjects. 3. Insert my own book there. My preference (frankly) would be to separate introductory programming textbooks from highly theoretical books, but (certainly, as a newcomer to the site) I don't propose such a step. * New subject: "Programming" Split "Theoretical Computer Science" into "Programming" and (the residual list) "Theoretical Computer Science". Add my book to "Programming". * Clarify where Language-Agnostic books went. Add one sentence to the preamble clarifying where Language-Agnostic books went. * Add an extra line Added an extra line to fix a lint error |
||
---|---|---|
.github | ||
books | ||
casts | ||
courses | ||
docs | ||
more | ||
.editorconfig | ||
.gitignore | ||
LICENSE | ||
README.md | ||
_config.yml |
README.md
List of Free Learning Resources In Many Languages
Search the list at https://ebookfoundation.github.io/free-programming-books-search/ .
This page is available as an easy-to-read website. Access it by clicking on .
Intro
This list was originally a clone of StackOverflow - List of Freely Available Programming Books with contributions from Karan Bhangui and George Stocker.
The list was moved to GitHub by Victor Felder for collaborative updating and maintenance. It has grown to become one of GitHub's most popular repositories, with 243,000+ stars, about 9,700 watchers, more than 7,100 commits, 1,900+ contributors, and 50,000+ forks.
The Free Ebook Foundation now administers the repo, a not-for-profit organization devoted to promoting the creation, distribution, archiving, and sustainability of free ebooks. Donations to the Free Ebook Foundation are tax-deductible in the US.
How To Contribute
Please read CONTRIBUTING. If you're new to GitHub, welcome! Remember to abide by our adapted from Code of Conduct too (translations also available).
Click on these badges to see how you might be able to help:
How to Share
Resources
This project lists books and other resources grouped by genres:
Books
English, By Programming Language
Other Languages
- Arabic / al arabiya / العربية
- Azerbaijani / Азәрбајҹан дили / آذربايجانجا ديلي
- Bengali / বাংলা
- Bulgarian / български
- Burmese / မြန်မာဘာသာ
- Chinese / 中文
- Czech / čeština / český jazyk
- Catalan / catalan/ català
- Danish / dansk
- Dutch / Nederlands
- Estonian / eesti keel
- Finnish / suomi / suomen kieli
- French / français
- German / Deutsch
- Greek / ελληνικά
- Hebrew / עברית
- Hindi / हिन्दी
- Hungarian / magyar / magyar nyelv
- Indonesian / Bahasa Indonesia
- Italian / italiano
- Japanese / 日本語
- Korean / 한국어 [韓國語]
- Latvian / Latviešu
- Norwegian / Norsk
- Persian / Farsi (Iran) / فارسى
- Polish / polski / język polski / polszczyzna
- Portuguese (Brazil)
- Portuguese (Portugal)
- Romanian (Romania) / limba română / român
- Russian / Русский язык
- Serbian / српски језик / srpski jezik
- Slovak / slovenčina
- Spanish / español / castellano
- Swedish / Svenska
- Tamil / தமிழ்
- Telugu / తెలుగు
- Thai / ไทย
- Turkish / Türkçe
- Ukrainian / Українська
- Vietnamese / Tiếng Việt
Cheat Sheets
Free Online Courses
- Arabic / al arabiya / العربية
- Bengali / বাংলা
- Bulgarian / български
- Chinese / 中文
- English
- Finnish / suomi / suomen kieli
- French / français
- German / Deutsch
- Greek / ελληνικά
- Hebrew / עברית
- Hindi / हिंदी
- Indonesian / Bahasa Indonesia
- Italian / italiano
- Japanese / 日本語
- Kazakh / қазақша
- Khmer / ភាសាខ្មែរ
- Korean / 한국어 [韓國語]
- Malayalam / മലയാളം
- Nepali / नेपाली
- Norwegian / Norsk
- Persian / Farsi (Iran) / فارسى
- Polish / polski / język polski / polszczyzna
- Portuguese (Brazil)
- Portuguese (Portugal)
- Russian / Русский язык
- Sinhala / සිංහල
- Spanish / español / castellano
- Swedish / svenska
- Tamil / தமிழ்
- Telugu / తెలుగు
- Thai / ภาษาไทย
- Turkish / Türkçe
- Ukrainian / Українська
- Vietnamese / Tiếng Việt
Interactive Programming Resources
Problem Sets and Competitive Programming
Podcast - Screencast
Free Podcasts and Screencasts:
- Arabic / al Arabiya / العربية
- Chinese / 中文
- Czech / čeština / český jazyk
- Dutch / Nederlands
- English
- Finnish / Suomi
- French / français
- Hebrew / עברית
- Indonesian / Bahasa Indonesia
- Persian / Farsi (Iran) / فارسى
- Polish / polski / język polski / polszczyzna
- Portuguese (Brazil)
- Portuguese (Portugal)
- Russian / Русский язык
- Sinhala / සිංහල
- Spanish / español / castellano
- Swedish / Svenska
- Turkish / Türkçe
- Ukrainian / Українська
Programming Playgrounds
Write, compile and run your code within a browser. Try it out!
Translations
Volunteers have translated many of our Contributing, How-to, and Code of Conduct documents into languages covered by our lists.
- English
- ... More languages ...
You might notice that there are some missing translations here - perhaps you would like to help out by contributing a translation?
License
Each file included in this repository is licensed under the CC BY License.