## BY SUBJECT
This list, organized by subject, is for books that cover a programming-related subject in a programming-language agnostic way.
Books that cover a specific programming language can be found in the [BY PROGRAMMING LANGUAGE ](free-programming-books-langs.md ) list.
### Index
* [0 - Meta-Lists ](#0---meta-lists )
* [Algorithms & Data Structures ](#algorithms--data-structures )
* [Artificial Intelligence ](#artificial-intelligence )
feat(books): Add blockchain subject (#6210)
* feat(books): Add Blockchain subject
Add new section about the `Blockchain` topic.
Suggested at EbookFoundation/free-programming-books#5696, commit https://github.com/EbookFoundation/free-programming-books/pull/5696/commits/69b21f283a0c098a3d871113216eee5ec1d40f8c
* feat(books): Add `Blockchain for Dummies`
Title: Blockchain for Dummies, 2nd IBM Limited Edition
Author: Manav Gupta
Year: 2018
Editorial: IBM
Publisher: John Wiley & Sons, Inc
* feat(books): Starting with Enterprise Blockchain
Title: Getting Started with Enterprise Blockchain. A Guide to Design and Development
Url: https://www.ibm.com/downloads/cas/RYWXAR0M
Authors: Michael Bradley, David Gorman, Matt Lucas, Matthew Golby-Kirk
Editor: IBM Corporation
Publisher: O'Really Media Inc
* feat(books): Add `IBM Blockchain: The Founder’s Handbook`
TITLE: IBM Blockchain: The Founder’s Handbook (An introduction to building a blockchain solution), Third Edition
AUTHORS: Antonio Banda, Matthew Hamilton, Eileen Lowry, John Widdifield, Andy Carelli, Jerry Cuomo, Kalie Dove-Maguire, Elaine Lai, Brigid McDermott, Carolyn Rogers, Don Thibeau
DATE: June 2020
EDITOR: IBM Corporation
PUBLISHER: IBM Corporation
* chore(books): Classify other Blockchain resources
Move some resources from `Misc` ... to `Blockchain` section
Some other related topics that can fit:
- Cryptocurrencies
- Hyperledge
- Bitcoin
- Ethereum
- Solidity
* chore(books): CDN 2 website link + all authors
BOOK: Bitcoin and Cryptocurrency Technologies
AUTHORS: Arvind Narayanan, Joseph Bonneau, Edward Felten, Andrew Miller, Steven Goldfeder, Jeremy Clark
CDN (draft): https://d28rh4a8wq0iu5.cloudfront.net/bitcointech/readings/princeton_bitcoin_book.pdf
FRONTEND: http://bitcoinbook.cs.princeton.edu
3 years ago
* [Blockchain ](#blockchain )
* [Cellular Automata ](#cellular-automata )
* [Cloud Computing ](#cloud-computing )
* [Competitive Programming ](#competitive-programming )
* [Compiler Design ](#compiler-design )
* [Computer Organization and Architecture ](#computer-organization-and-architecture )
* [Computer Science ](#computer-science )
* [Computer Vision ](#computer-vision )
* [Containers ](#containers )
* [Data Science ](#data-science )
* [Database ](#database )
* [Embedded Systems ](#embedded-systems )
* [Game Development ](#game-development )
* [Graphical user interfaces ](#graphical-user-interfaces )
* [Graphics Programming ](#graphics-programming )
* [IDE and editors ](#ide-and-editors )
* [Information Retrieval ](#information-retrieval )
* [Licensing ](#licensing )
* [Machine Learning ](#machine-learning )
* [Mathematics ](#mathematics )
* [Mathematics For Computer Science ](#mathematics-for-computer-science )
* [Misc ](#misc )
* [Networking ](#networking )
* [Object Oriented Programming ](#object-oriented-programming )
* [Open Source Ecosystem ](#open-source-ecosystem )
* [Operating Systems ](#operating-systems )
* [Parallel Programming ](#parallel-programming )
* [Partial Evaluation ](#partial-evaluation )
* [Professional Development ](#professional-development )
Update free-programming-books-subjects.md (#9275)
* 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
2 years ago
* [Programming ](#programming )
* [Programming Paradigms ](#programming-paradigms )
* [Prompt Engineering ](#prompt-engineering )
* [Quantum Computing ](#quantum-computing )
* [Regular Expressions ](#regular-expressions )
* [Reverse Engineering ](#reverse-engineering )
* [Search Engines ](#search-engines )
* [Security & Privacy ](#security--privacy )
* [Software Architecture ](#software-architecture )
* [Standards ](#standards )
* [Theoretical Computer Science ](#theoretical-computer-science )
* [Version Control Systems ](#version-control-systems )
* [Web Performance ](#web-performance )
* [Web Services ](#web-services )
* [Workflow ](#workflow )
### 0 - Meta-Lists
* [Atariarchives.org ](https://www.atariarchives.org ) - Atariarchives.org makes books, information, and software for Atari and other classic computers available on the Web.
* [Bento ](https://www.bento.io )
* [Bitsavers.org ](http://bitsavers.trailing-edge.com )
* [Code Catalog: A Collection of Code Examples from Prominent Open Source Projects ](https://codecatalog.org )
* [conceptf1.blogspot.com ](https://conceptf1.blogspot.com/2013/11/list-of-freely-available-programming.html )
* [Free Tech Books ](https://www.freetechbooks.com )
* [Goalkicker ](https://goalkicker.com ) - Programming Notes for Professionals books
* [IBM Redbooks ](https://www.redbooks.ibm.com )
* [InfoQ Minibooks ](https://www.infoq.com/minibooks/ )
* [InTech: Computer and Information Science ](https://www.intechopen.com/subjects/9 )
* [JSBooks - directory of free javascript ebooks ](https://github.com/revolunet/JSbooks )
* [Learn X in Y minutes ](https://learnxinyminutes.com )
* [Learneroo Resources to Learn Programming ](https://www.learneroo.com/modules/12/nodes/96 )
* [Microsoft Guides to Software ](https://blogs.msdn.microsoft.com/mssmallbiz/2014/07/07/largest-collection-of-free-microsoft-ebooks-ever-including-windows-8-1-windows-8-windows-7-office-2013-office-365-office-2010-sharepoint-2013-dynamics-crm-powershell-exchange-server-lync-2/ )
* [Microsoft Press: Free E-Books ](https://mva.microsoft.com/ebooks )
* [Microsoft Technologies 1, including books on Windows Azure, SharePoint, Visual Studio Guide, Windows phone development, ASP.net, Office365, etc. collection by Eric Ligman ](https://blogs.msdn.microsoft.com/mssmallbiz/2012/07/27/large-collection-of-free-microsoft-ebooks-for-you-including-sharepoint-visual-studio-windows-phone-windows-8-office-365-office-2010-sql-server-2012-azure-and-more/ )
* [Microsoft Technologies 2, including books on Windows Azure, SharePoint, Visual Studio Guide, Windows phone development, ASP.net, etc. collection by Eric Ligman ](https://blogs.msdn.microsoft.com/mssmallbiz/2012/07/30/another-large-collection-of-free-microsoft-ebooks-and-resource-kits-for-you-including-sharepoint-2013-office-2013-office-365-duet-2-0-azure-cloud-windows-phone-lync-dynamics-crm-and-more/ )
* [Microsoft Technologies 3, DevOps for ASP.NET Core Developers ](https://raw.githubusercontent.com/dotnet-architecture/eBooks/main/current/devops-aspnet-core/DevOps-for-ASP.NET-Core-Developers.pdf ) - Cam Soper, Scott Addie, Colin Dembovsky (PDF)
* [O'Reilly's Open Books Project ](https://www.oreilly.com/openbook/ )
* [Papers we love ](https://github.com/papers-we-love/papers-we-love )
* [Red Gate Books ](https://www.red-gate.com/hub/books/ )
* [Rip Tutorials ](https://riptutorial.com/ebook )
* [Stef's Free Online Smalltalk Books ](http://stephane.ducasse.free.fr/FreeBooks/ )
* [TechBeamers.com ](https://www.techbeamers.com )
* [TechBooksForFree.com ](https://www.techbooksforfree.com )
* [The Definitive C++ Book Guide and List ](https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list )
* [Theassayer.org ](http://theassayer.org )
* [Tutorials Point ](https://www.tutorialspoint.com )
* [Visualgo: Algorithm and Data Structure Visualization ](https://visualgo.net ) - Visualise data structures and algorithms through animation
### Algorithms & Data Structures
* [A Field Guide To Genetic Programming ](https://web.archive.org/web/20191020195105/http://www0.cs.ucl.ac.uk/staff/W.Langdon/ftp/papers/poli08_fieldguide.pdf ) - Riccardo Poli, William B. Langdon, Nicholas F. McPhee (PDF) *(:card_file_box: archived)* (CC BY-NC-ND)
* [Algorithm Design ](https://archive.org/details/AlgorithmDesign1stEditionByJonKleinbergAndEvaTardos2005PDF ) - Jon Kleinberg, Éva Tardos
* [Algorithmic Graph Theory ](https://code.google.com/p/graphbook/ ) - David Joyner, Minh Van Nguyen, David Phillips (PDF) (GFDL)
* [Algorithmic Thinking ](https://labuladong.gitbook.io/algo-en ) - Donglai Fu
* [Algorithms ](https://en.wikibooks.org/wiki/Algorithms ) - Wikibooks
* [Algorithms ](https://jeffe.cs.illinois.edu/teaching/algorithms/book/Algorithms-JeffE.pdf ) - Jeff Erickson (PDF)
* [Algorithms, 4th Edition ](https://algs4.cs.princeton.edu/home/ ) - Robert Sedgewick, Kevin Wayne
* [Algorithms and Automatic Computing Machines (1963) ](https://archive.org/details/Algorithms_And_Automatic_Computing_Machines ) - B. A. Trakhtenbrot
* [Algorithms and Complexity ](https://www.math.upenn.edu/~wilf/AlgoComp.pdf ) - Herbert S. Wilf (PDF)
* [Algorithms and Data Structures - With Applications to Graphics and Geometry ](https://textbookequity.org/Textbooks/Nievergelt_Algorithms%20and%20Data%20Structures08.pdf ) - Jurg Nievergelt, Klaus Hinrichs (PDF)
* [Algorithms Course Materials ](https://jeffe.cs.illinois.edu/teaching/algorithms/ ) - Jeff Erickson
* [Algorithms Notes for Professionals ](https://goalkicker.com/AlgorithmsBook ) - Compiled from StackOverflow Documentation (PDF)
* [Annotated Algorithms in Python: Applications in Physics, Biology, and Finance ](https://github.com/mdipierro/nlib ) - Massimo Di Pierro
* [Binary Trees ](http://cslibrary.stanford.edu/110/BinaryTrees.pdf ) - Nick Parlante (PDF)
* [Data Structures ](https://adityacse.weebly.com/uploads/2/4/0/7/24078687/data-structures.pdf ) - Aditya CSE (PDF)
* [Data Structures ](https://en.wikibooks.org/wiki/Data_Structures ) - Wikibooks
* [Data Structures (Into Java) ](https://inst.eecs.berkeley.edu/~cs61b/fa14/book2/data-structures.pdf ) - Paul N. Hilfinger (PDF)
* [Data Structures and Algorithm Analysis in C++ ](https://people.cs.vt.edu/~shaffer/Book/C++3elatest.pdf ) - Clifford A. Shaffer (PDF)
* [Data Structures and Algorithms: Annotated Reference with Examples ](https://web.archive.org/web/20170715160229/http://dotnetslackers.com/Community/files/folders/data-structures-and-algorithms/entry30283.aspx ) - G. Barnett, L. Del Tongo *(:card_file_box: archived)*
* [Data Structures Succinctly Part 1, Syncfusion ](https://www.syncfusion.com/resources/techportal/ebooks/datastructurespart1 ) - Robert Horvick
* [Data Structures Succinctly Part 2, Syncfusion ](https://www.syncfusion.com/resources/techportal/ebooks/datastructurespart2 ) - Robert Horvick
* [Elementary Algorithms ](https://github.com/liuxinyu95/AlgoXY ) - Larry Liu Xinyu (PDF)
* [Essential Algorithms ](https://www.programming-books.io/essential/algorithms/ ) - Krzysztof Kowalczyk and Stack Overflow Documentation project (HTML)
* [Foundations of Computer Science ](http://infolab.stanford.edu/~ullman/focs.html ) - Al Aho, Jeff Ullman
* [Learning Algorithm ](https://riptutorial.com/Download/algorithm.pdf ) - Compiled from StackOverflow documentation (PDF)
* [Lectures Notes on Algorithm Analysis and Computational Complexity (Fourth Edition) ](https://ianparberry.com/books/free/license.html ) - Ian Parberry (use form at bottom of license)
* [LEDA: A Platform for Combinatorial and Geometric Computing ](https://people.mpi-inf.mpg.de/~mehlhorn/LEDAbook.html ) - K. Mehlhorn, St. Näher
* [Linked List Basics ](http://cslibrary.stanford.edu/103/LinkedListBasics.pdf ) - Nick Parlante (PDF)
* [Linked List Problems ](http://cslibrary.stanford.edu/105/LinkedListProblems.pdf ) - Nick Parlante (PDF)
* [Matters Computational: Ideas, Algorithms, Source Code ](https://www.jjj.de/fxt/fxtbook.pdf ) - Jörg Arndt (PDF)
* [Open Data Structures: An Introduction ](https://opendatastructures.org ) - Pat Morin
* [Planning Algorithms ](http://lavalle.pl/planning/ ) - Steven M. LaValle
* [Problems on Algorithms (Second Edition) ](https://ianparberry.com/books/free/license.html ) - Ian Parberry (use form at bottom of license)
* [Purely Functional Data Structures (1996) ](https://web.archive.org/web/20210917054102/http://www.cs.cmu.edu/~rwh/theses/okasaki.pdf ) - Chris Okasaki (PDF) *(:card_file_box: archived)*
* [Sequential and parallel sorting algorithms ](https://www.inf.hs-flensburg.de/lang/algorithmen/sortieren/algoen.htm ) - Hans Werner Lang (HTML)
* [Text Algorithms ](https://igm.univ-mlv.fr/~mac/REC/text-algorithms.pdf ) - Maxime Crochemore, Wojciech Rytter (PDF)
* [The Algorithm Design Manual ](https://www8.cs.umu.se/kurser/TDBAfl/VT06/algorithms/BOOK/BOOK/BOOK.HTM ) - Steven S. Skiena (HTML)
* [The Algorithms ](https://the-algorithms.com )
* [The Design of Approximation Algorithms ](https://www.designofapproxalgs.com/book.pdf ) - David P. Williamson, David B. Shmoys (PDF)
* [The Great Tree List Recursion Problem ](http://cslibrary.stanford.edu/109/TreeListRecursion.pdf ) - Nick Parlante (PDF)
* [The Kademlia Protocol Succinctly ](https://www.syncfusion.com/ebooks/kademlia_protocol_succinctly ) - Marc Clifton
* [Think Complexity (2nd Edition) ](https://greenteapress.com/wp/think-complexity-2e/ ) - Allen B. Downey
### Artificial Intelligence
* [Artificial Intelligence and the Future for Teaching and Learning ](https://www2.ed.gov/documents/ai-report/ai-report.pdf ) - Office of Educational Technology (PDF)
* [Artificial Intelligence for a Better Future: An Ecosystem Perspective on the Ethics of AI and Emerging Digital Technologies ](https://link.springer.com/book/10.1007/978-3-030-69978-9 ) - Bernd Carsten Stahl (PDF, EPUB)
* [Artificial Intelligence: Foundations of Computational Agents (2010), 1st Edition ](https://artint.info/aifca1e.html ) - David L. Poole, Alan K. Mackworth @ Cambridge University Press (HTML)
* [Artificial Intelligence: Foundations of Computational Agents (2017), 2nd Edition ](https://artint.info ) - David L. Poole, Alan K. Mackworth @ Cambridge University Press (HTML, Slides)
* [Clever Algorithms Nature-Inspired Programming Recipes ](https://bjpcjp.github.io/pdfs/ruby/Clever-Algorithms.pdf ) - Jason Brownlee (PDF) (CC BY-NC-SA)
* [Getting Started with Artificial Intelligence , 2nd Edition ](https://www.ibm.com/downloads/cas/OJ6WX73V ) - Tom Markiewicz, Josh Zheng (PDF)
* [Graph Representational Learning Book ](https://www.cs.mcgill.ca/~wlh/grl_book/ ) - William L. Hamilton
* [Introduction to Autonomous Robots ](https://github.com/correll/Introduction-to-Autonomous-Robots/releases ) - Nikolaus Correll (PDF)
* [Machine Learning For Dummies®, IBM Limited Edition ](https://www.ibm.com/downloads/cas/GB8ZMQZ3 ) - Daniel Kirsch, Judith Hurwitz (PDF)
* [On the Path to AI: Law’s prophecies and the conceptual foundations of the machine learning age ](https://link.springer.com/book/10.1007/978-3-030-43582-0 ) - Thomas D. Grant, Damon J. Wischik (PDF, EPUB)
* [Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp ](https://github.com/norvig/paip-lisp ) - Peter Norvig
* [Probabilistic Programming & Bayesian Methods for Hackers ](https://camdavidsonpilon.github.io/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/ ) - Cam Davidson-Pilon (HTML, Jupyter Notebook)
* [The History of Artificial Intelligence ](https://courses.cs.washington.edu/courses/csep590/06au/projects/history-ai.pdf ) - Chris Smith, Brian McGuire, Ting Huang, Gary Yang (PDF)
* [The Quest for Artificial Intelligence: A History of Ideas and Achievements ](https://ai.stanford.edu/~nilsson/QAI/qai.pdf ) - Nils J. Nilsson (PDF)
feat(books): Add blockchain subject (#6210)
* feat(books): Add Blockchain subject
Add new section about the `Blockchain` topic.
Suggested at EbookFoundation/free-programming-books#5696, commit https://github.com/EbookFoundation/free-programming-books/pull/5696/commits/69b21f283a0c098a3d871113216eee5ec1d40f8c
* feat(books): Add `Blockchain for Dummies`
Title: Blockchain for Dummies, 2nd IBM Limited Edition
Author: Manav Gupta
Year: 2018
Editorial: IBM
Publisher: John Wiley & Sons, Inc
* feat(books): Starting with Enterprise Blockchain
Title: Getting Started with Enterprise Blockchain. A Guide to Design and Development
Url: https://www.ibm.com/downloads/cas/RYWXAR0M
Authors: Michael Bradley, David Gorman, Matt Lucas, Matthew Golby-Kirk
Editor: IBM Corporation
Publisher: O'Really Media Inc
* feat(books): Add `IBM Blockchain: The Founder’s Handbook`
TITLE: IBM Blockchain: The Founder’s Handbook (An introduction to building a blockchain solution), Third Edition
AUTHORS: Antonio Banda, Matthew Hamilton, Eileen Lowry, John Widdifield, Andy Carelli, Jerry Cuomo, Kalie Dove-Maguire, Elaine Lai, Brigid McDermott, Carolyn Rogers, Don Thibeau
DATE: June 2020
EDITOR: IBM Corporation
PUBLISHER: IBM Corporation
* chore(books): Classify other Blockchain resources
Move some resources from `Misc` ... to `Blockchain` section
Some other related topics that can fit:
- Cryptocurrencies
- Hyperledge
- Bitcoin
- Ethereum
- Solidity
* chore(books): CDN 2 website link + all authors
BOOK: Bitcoin and Cryptocurrency Technologies
AUTHORS: Arvind Narayanan, Joseph Bonneau, Edward Felten, Andrew Miller, Steven Goldfeder, Jeremy Clark
CDN (draft): https://d28rh4a8wq0iu5.cloudfront.net/bitcointech/readings/princeton_bitcoin_book.pdf
FRONTEND: http://bitcoinbook.cs.princeton.edu
3 years ago
### Blockchain
* [Bitcoin and Cryptocurrency Technologies ](https://bitcoinbook.cs.princeton.edu ) - Arvind Narayanan, Joseph Bonneau, Edward Felten, Andrew Miller, Steven Goldfeder, Jeremy Clark (PDF)
feat(books): Add blockchain subject (#6210)
* feat(books): Add Blockchain subject
Add new section about the `Blockchain` topic.
Suggested at EbookFoundation/free-programming-books#5696, commit https://github.com/EbookFoundation/free-programming-books/pull/5696/commits/69b21f283a0c098a3d871113216eee5ec1d40f8c
* feat(books): Add `Blockchain for Dummies`
Title: Blockchain for Dummies, 2nd IBM Limited Edition
Author: Manav Gupta
Year: 2018
Editorial: IBM
Publisher: John Wiley & Sons, Inc
* feat(books): Starting with Enterprise Blockchain
Title: Getting Started with Enterprise Blockchain. A Guide to Design and Development
Url: https://www.ibm.com/downloads/cas/RYWXAR0M
Authors: Michael Bradley, David Gorman, Matt Lucas, Matthew Golby-Kirk
Editor: IBM Corporation
Publisher: O'Really Media Inc
* feat(books): Add `IBM Blockchain: The Founder’s Handbook`
TITLE: IBM Blockchain: The Founder’s Handbook (An introduction to building a blockchain solution), Third Edition
AUTHORS: Antonio Banda, Matthew Hamilton, Eileen Lowry, John Widdifield, Andy Carelli, Jerry Cuomo, Kalie Dove-Maguire, Elaine Lai, Brigid McDermott, Carolyn Rogers, Don Thibeau
DATE: June 2020
EDITOR: IBM Corporation
PUBLISHER: IBM Corporation
* chore(books): Classify other Blockchain resources
Move some resources from `Misc` ... to `Blockchain` section
Some other related topics that can fit:
- Cryptocurrencies
- Hyperledge
- Bitcoin
- Ethereum
- Solidity
* chore(books): CDN 2 website link + all authors
BOOK: Bitcoin and Cryptocurrency Technologies
AUTHORS: Arvind Narayanan, Joseph Bonneau, Edward Felten, Andrew Miller, Steven Goldfeder, Jeremy Clark
CDN (draft): https://d28rh4a8wq0iu5.cloudfront.net/bitcointech/readings/princeton_bitcoin_book.pdf
FRONTEND: http://bitcoinbook.cs.princeton.edu
3 years ago
* [Blockchain for Dummies, 2nd IBM Limited Edition ](https://www.ibm.com/downloads/cas/36KBMBOG ) - Manav Gupta (PDF)
* [chain.courses ](https://web.archive.org/web/20220127020549/https://chain.courses/ ) - James Gan, Rishub Kumar *(:card_file_box: archived)*
feat(books): Add blockchain subject (#6210)
* feat(books): Add Blockchain subject
Add new section about the `Blockchain` topic.
Suggested at EbookFoundation/free-programming-books#5696, commit https://github.com/EbookFoundation/free-programming-books/pull/5696/commits/69b21f283a0c098a3d871113216eee5ec1d40f8c
* feat(books): Add `Blockchain for Dummies`
Title: Blockchain for Dummies, 2nd IBM Limited Edition
Author: Manav Gupta
Year: 2018
Editorial: IBM
Publisher: John Wiley & Sons, Inc
* feat(books): Starting with Enterprise Blockchain
Title: Getting Started with Enterprise Blockchain. A Guide to Design and Development
Url: https://www.ibm.com/downloads/cas/RYWXAR0M
Authors: Michael Bradley, David Gorman, Matt Lucas, Matthew Golby-Kirk
Editor: IBM Corporation
Publisher: O'Really Media Inc
* feat(books): Add `IBM Blockchain: The Founder’s Handbook`
TITLE: IBM Blockchain: The Founder’s Handbook (An introduction to building a blockchain solution), Third Edition
AUTHORS: Antonio Banda, Matthew Hamilton, Eileen Lowry, John Widdifield, Andy Carelli, Jerry Cuomo, Kalie Dove-Maguire, Elaine Lai, Brigid McDermott, Carolyn Rogers, Don Thibeau
DATE: June 2020
EDITOR: IBM Corporation
PUBLISHER: IBM Corporation
* chore(books): Classify other Blockchain resources
Move some resources from `Misc` ... to `Blockchain` section
Some other related topics that can fit:
- Cryptocurrencies
- Hyperledge
- Bitcoin
- Ethereum
- Solidity
* chore(books): CDN 2 website link + all authors
BOOK: Bitcoin and Cryptocurrency Technologies
AUTHORS: Arvind Narayanan, Joseph Bonneau, Edward Felten, Andrew Miller, Steven Goldfeder, Jeremy Clark
CDN (draft): https://d28rh4a8wq0iu5.cloudfront.net/bitcointech/readings/princeton_bitcoin_book.pdf
FRONTEND: http://bitcoinbook.cs.princeton.edu
3 years ago
* [Getting Started with Enterprise Blockchain: A Guide to Design and Development ](https://www.ibm.com/downloads/cas/RYWXAR0M ) - Michael Bradley, David Gorman, Matt Lucas, Matthew Golby-Kirk (PDF)
* [Grokking Bitcoin ](https://rosenbaum.se/book/ ) - Kalle Rosenbaum (HTML)
* [IBM Blockchain: The Founder’s Handbook, Third Edition ](https://www.ibm.com/downloads/cas/GZPPMWM5 ) - Antonio Banda, Matthew Hamilton, Eileen Lowry, John Widdifield, et al. (PDF)
* [Learning Bitcoin from the Command Line ](https://github.com/BlockchainCommons/Learning-Bitcoin-from-the-Command-Line ) - Christopher Allen, Shannon Appelcline, et al. (HTML)
* [Mastering Bitcoin - Unlocking digital currencies (2017), 2nd Edition ](https://github.com/bitcoinbook/bitcoinbook ) - Andreas M. Antonopoulos (AsciiDoc)
* [Mastering Ethereum (2018), 1st Edition ](https://github.com/ethereumbook/ethereumbook ) - Andreas M. Antonopoulos, Gavin Wood (AsciiDoc)
* [Mastering the Lightning Network ](https://github.com/lnbook/lnbook ) - Andreas M. Antonopoulos, Olaoluwa Osuntokun, Rene Pickhardt (AsciiDoc)
feat(books): Add blockchain subject (#6210)
* feat(books): Add Blockchain subject
Add new section about the `Blockchain` topic.
Suggested at EbookFoundation/free-programming-books#5696, commit https://github.com/EbookFoundation/free-programming-books/pull/5696/commits/69b21f283a0c098a3d871113216eee5ec1d40f8c
* feat(books): Add `Blockchain for Dummies`
Title: Blockchain for Dummies, 2nd IBM Limited Edition
Author: Manav Gupta
Year: 2018
Editorial: IBM
Publisher: John Wiley & Sons, Inc
* feat(books): Starting with Enterprise Blockchain
Title: Getting Started with Enterprise Blockchain. A Guide to Design and Development
Url: https://www.ibm.com/downloads/cas/RYWXAR0M
Authors: Michael Bradley, David Gorman, Matt Lucas, Matthew Golby-Kirk
Editor: IBM Corporation
Publisher: O'Really Media Inc
* feat(books): Add `IBM Blockchain: The Founder’s Handbook`
TITLE: IBM Blockchain: The Founder’s Handbook (An introduction to building a blockchain solution), Third Edition
AUTHORS: Antonio Banda, Matthew Hamilton, Eileen Lowry, John Widdifield, Andy Carelli, Jerry Cuomo, Kalie Dove-Maguire, Elaine Lai, Brigid McDermott, Carolyn Rogers, Don Thibeau
DATE: June 2020
EDITOR: IBM Corporation
PUBLISHER: IBM Corporation
* chore(books): Classify other Blockchain resources
Move some resources from `Misc` ... to `Blockchain` section
Some other related topics that can fit:
- Cryptocurrencies
- Hyperledge
- Bitcoin
- Ethereum
- Solidity
* chore(books): CDN 2 website link + all authors
BOOK: Bitcoin and Cryptocurrency Technologies
AUTHORS: Arvind Narayanan, Joseph Bonneau, Edward Felten, Andrew Miller, Steven Goldfeder, Jeremy Clark
CDN (draft): https://d28rh4a8wq0iu5.cloudfront.net/bitcointech/readings/princeton_bitcoin_book.pdf
FRONTEND: http://bitcoinbook.cs.princeton.edu
3 years ago
* [Playtime with Hyperledger Composer ](https://schadokar.dev/ebooks/playtime-with-hyperledger-composer/ ) - Shubham Chadokar (PDF)
### Cellular Automata
* [A New Kind of Science ](https://www.wolframscience.com/nksonline/toc.html ) - Stephen Wolfram
### Cloud Computing
* [AWS Well-Architected Framework ](https://docs.aws.amazon.com/wellarchitected/latest/framework ) (PDF, HTML)
* [Azure for Architects, Third Edition ](https://azure.microsoft.com/en-us/resources/azure-for-architects/ ) (PDF) *(email address or account required)*
* [Azure Functions Succinctly, Syncfusion ](https://www.syncfusion.com/ebooks/azure-functions-succinctly ) (PDF, Kindle) (email address requested, not required)
* [Building Serverless Applications with Google Cloud Run ](https://www.cockroachlabs.com/guides/oreilly-building-serverless-applications-with-google-cloud-run/ ) - Wietse Venema (PDF) (email address requested, not required)
* [Cloud Computing for Science and Engineering ](https://cloud4scieng.org/chapters/ ) - Ian Foster, Dennis B. Gannon *(:construction: in process)*
* [Cloud Design Patterns ](https://docs.microsoft.com/en-us/azure/architecture/patterns/ )
* [Designing Distributed Systems ](https://azure.microsoft.com/en-us/resources/designing-distributed-systems/ ) *(account required)*
* [Distributed Systems 3rd edition ](https://www.distributed-systems.net/index.php/books/ds3/ ) - Maarten van Steen, Andrew S. Tanenbaum *(email address required)*
* [How to optimize storage costs using Amazon S3 ](https://aws.amazon.com/s3/cloud-storage-cost-optimization-ebook/ ) - AWS (PDF)
* [Kubernetes Hardening Guidance ](https://media.defense.gov/2022/Aug/29/2003066362/-1/-1/0/CTR_KUBERNETES_HARDENING_GUIDANCE_1.2_20220829.PDF ) - NSA, CISA (PDF)
* [Learn Azure in a Month of Lunches ](https://clouddamcdnprodep.azureedge.net/gdc/2014519/original ) - Iain Foulds (PDF)
* [Monitoring Modern Infrastructure ](https://www.datadoghq.com/ebook/monitoring-modern-infrastructure/ ) *(account required)*
* [Multi-tenant Applications for the Cloud, 3rd Edition ](https://www.microsoft.com/en-us/download/details.aspx?id=29263 )
* [Openstack CERN Admin guide ](https://clouddocs.web.cern.ch/index.html )
* [OpenStack Operations Guide ](https://docs.openstack.org/ops-guide/index.html )
* [Streamline microservice management with Istio Service Mesh ](https://developers.redhat.com/books/introducing-istio-service-mesh-microservices/ ) *(account required)*
* [The Developer’s Guide to Azure ](https://azure.microsoft.com/en-us/campaigns/developer-guide/ )
### Competitive Programming
* [Competitive Programmer's Handbook ](https://cses.fi/book/book.pdf ) - Antti Laaksonen (PDF)
* [Competitive Programming, 1st Edition ](https://cpbook.net/#CP1details ) - Steven Halim [(PDF) ](https://www.comp.nus.edu.sg/~stevenha/myteaching/competitive_programming/cp1.pdf )
* [Competitive Programming, 2nd Edition ](https://cpbook.net/#CP2details ) - Steven Halim [(PDF) ](https://www.comp.nus.edu.sg/~stevenha/myteaching/competitive_programming/cp2.pdf )
* [Principles of Algorithmic Problem Solving ](https://www.csc.kth.se/~jsannemo/slask/main.pdf ) - Johan Sannemo (PDF)
### Compiler Design
* [An Introduction to GCC ](https://web.archive.org/web/20170326232435/http://www.network-theory.co.uk/docs/gccintro/index.html ) - Brian Gough *(:card_file_box: archived)*
* [Basics of Compiler Design (Anniversary Edition) ](http://www.diku.dk/~torbenm/Basics/ ) - Torben Mogensen
* [Compiler Design in C (1990) ](https://holub.com/goodies/compiler/compilerDesignInC.pdf ) - Allen Holub, Prentice Hall (PDF)
* [Compiler Design: Theory, Tools, and Examples, C/C++ Edition ](http://elvis.rowan.edu/~bergmann/books/Compiler_Design/c_cpp/Text/C_CppEd.pdf ) - Seth D. Bergmann (PDF)
* [Compiler Design: Theory, Tools, and Examples, Java Edition ](http://elvis.rowan.edu/~bergmann/books/Compiler_Design/java/CompilerDesignBook.pdf ) - Seth D. Bergmann (PDF)
* [Compiling Scala for the Java Virtual Machine ](https://lampwww.epfl.ch/~schinz/thesis-final-A4.pdf ) - Michel Schinz (PDF)
* [Compiling Techniques (1969) ](https://www.chilton-computing.org.uk/acl/literature/books/compilingtechniques/overview.htm ) - F.R.A. Hopgood, Macdonald
* [Crafting Interpreters ](https://www.craftinginterpreters.com/contents.html ) - Bob Nystrom (HTML)
* [EXPL NITC: Build your own Compiler ](https://silcnitc.github.io ) - Murali Krishnan K., students in the Department of Computer Science and Engineering of the Calicut National Institute of Technology (HTML)
* [Implementing Functional Languages: A Tutorial ](https://research.microsoft.com/en-us/um/people/simonpj/Papers/pj-lester-book/ ) - Simon Peyton Jones, David Lester
* [Introduction to Compilers and Language Design ](https://www3.nd.edu/~dthain/compilerbook/compilerbook.pdf ) - Douglas Thain (PDF)
* [Let's Build a Compiler ](https://www.stack.nl/~marcov/compiler.pdf ) - Jack W. Crenshaw (PDF)
* [Practical and Theoretical Aspects of Compiler Construction ](https://web.stanford.edu/class/archive/cs/cs143/cs143.1128/ ) (class lectures and slides)
* [The ANTLR Mega Tutorial ](https://tomassetti.me/antlr-mega-tutorial/ )
### Computer Organization and Architecture
* [Basic Computer Architecture ](https://www.cse.iitd.ac.in/~srsarangi/archbooksoft.html ) - Smruti R. Sarangi (HTML, PDF, Slides, Videos)
* [Computer Organization and Design Fundamentals ](https://faculty.etsu.edu/tarnoff/138292 ) - David Tarnoff (PDF)
* [Digital Circuit Projects: An Overview of Digital Circuits Through Implementing Integrated Circuits - Second Edition ](https://cupola.gettysburg.edu/cgi/viewcontent.cgi?article=1000&context=oer ) - Charles W. Kann (PDF) (CC BY)
* [Dive Into Systems: A Gentle Introduction to Computer Systems ](https://diveintosystems.org ) - Suzanne J. Matthews, Tia Newhall, Kevin C. Webb (HTML)
### Computer Science
* [A Data-Centric Introduction to Computing ](https://dcic-world.org ) - Kathi Fisler, Shriram Krishnamurthi, Benjamin S. Lerner, Joe Gibbs Politz (HTML)
* [Computational Thinking ](https://www.cs.cmu.edu/~15110-s13/Wing06-ct.pdf ) - Jeannette Wing, Carnegie-Mellon University (PDF)
* [Computer Science Class XI ](https://cbseacademic.nic.in/web_material/doc/cs/1_Computer-Science-Python-Book-Class-XI.pdf ) - CBSE (PDF)
* [Computer Science Class XII ](https://cbseacademic.nic.in/web_material/doc/cs/2_Computer_Science_Python_ClassXII.pdf ) - CBSE (PDF)
* [Computer Science I ](https://cse.unl.edu/~cbourke/ComputerScienceOne.pdf ) - Chris Bourke (PDF) (CC BY-SA)
* [Computer Science II ](https://cse.unl.edu/~cbourke/ComputerScienceTwo.pdf ) - Chris Bourke (PDF) (CC BY-SA)
* [CS Principles: Big Ideas in Programming ](https://www.openbookproject.net/books/StudentCSP/ ) - Mark Guzdial, Barbara Ericson (HTML)
* [Pull Requests and Code Review ](https://scs.tl/book-pr ) – Sebastien Castiel
* [What to Look for in a Code Review ](https://leanpub.com/whattolookforinacodereview ) - Trisha Gee (HTML, PDF, EPUB, Kindle) *(Leanpub account or valid email requested)*
### Computer Vision
* [Computer Vision ](https://homepages.inf.ed.ac.uk/rbf/BOOKS/BANDB/bandb.htm ) - Dana Ballard, Chris Brown
* [Computer Vision: Algorithms and Applications ](https://szeliski.org/Book/ ) - Richard Szeliski
* [Computer Vision: Foundations and Applications ](http://vision.stanford.edu/teaching/cs131_fall1718/files/cs131-class-notes.pdf ) - Ranjay Krishna (PDF)
* [Computer Vision: Models, Learning, and Inference ](http://www.computervisionmodels.com ) - Simon J.D. Prince
* [Programming Computer Vision with Python ](http://programmingcomputervision.com ) - Jan Erik Solem
### Containers
* [CI/CD for Monorepos: Effectively building, testing, and deploying code with monorepos ](https://github.com/semaphoreci/book-monorepo-cicd ) - Pablo Tomas Fernandez Zavalia, Marko Anastasov, SemaphoreCI (PDF, EPUB, Kindle)
* [CI/CD with Docker and Kubernetes Book ](https://github.com/semaphoreci/book-cicd-docker-kubernetes ) - Marko Anastasov, Jérôme Petazzoni, Pablo Tom F. Zavalia, SemaphoreCI (PDF, EPUB, Kindle)
* [Docker Jumpstart ](https://odewahn.github.io/docker-jumpstart/ ) - Andrew Odewahn
* [Docker Tutorial ](https://people.irisa.fr/Anthony.Baire/docker-tutorial.pdf ) - Anthony Baire (PDF) (CC BY-NC-ND)
* [Docker Tutorial ](https://www.tutorialspoint.com/docker/ ) - Tutorials Point (HTML, PDF)
* [Dotnet Microservices Architecture for Containerized NET Applications ](https://aka.ms/microservicesebook ) - Cesar de la Torre, Bill Wagner, Mike Rousos (PDF)
* [Kubernetes Deployment & Security Patterns ](https://resources.linuxfoundation.org/LF+Projects/CNCF/TheNewStack_Book2_KubernetesDeploymentAndSecurityPatterns.pdf ) - Alex Williams (PDF)
* [Kubernetes for Full-Stack Developers ](https://www.digitalocean.com/community/books/digitalocean-ebook-kubernetes-for-full-stack-developers ) - Jamon Camisso, Hanif Jetha, Katherine Juell (PDF, EPUB)
* [Uncomplicating Kubernetes ](https://livro.descomplicandokubernetes.com.br/en/ ) - Jeferson Fernando
### Data Science
* [A Programmer's Guide to Data Mining ](http://guidetodatamining.com ) - Ron Zacharski (Draft)
* [Data Jujitsu: The Art of Turning Data into Product ](http://www.oreilly.com/data/free/data-jujitsu.csp ) (email address *requested* , not required)
* [Data Mining Algorithms In R ](https://en.wikibooks.org/wiki/Data_Mining_Algorithms_In_R ) - Wikibooks
* [Data Mining Concepts and Techniques ](https://ia800702.us.archive.org/7/items/datamining_201811/DS-book%20u5.pdf ) - Jiawei Han, Micheline Kamber, Jian Pei (PDF) (:card_file_box: archived)
* [Data Science at the Command Line ](https://datascienceatthecommandline.com/2e/ ) - Jeroen Janssens
* [Elements of Data Science ](https://allendowney.github.io/ElementsOfDataScience/README.html ) - Allen B. Downey
* [Feature Engineering and Selection: A Practical Approach for Predictive Models ](https://bookdown.org/max/FES/ ) - Max Kuhn, Kjell Johnson
* [Foundations of Data Science ](https://www.cs.cornell.edu/jeh/book.pdf ) - Avrim Blum, John Hopcroft, Ravindran Kannan (PDF)
* [Fundamentals of Data Visualization ](https://clauswilke.com/dataviz/ ) - Claus O. Wilke (HTML)
* [Hands-On Data Visualization ](https://handsondataviz.org ) - Jack Dougherty, Ilya Ilyankou (HTML)
* [High-Dimensional Data Analysis with Low-Dimensional Models: Principles, Computation, and Applications ](https://book-wright-ma.github.io/Book-WM-20210422.pdf ) - John Wright, Yi Ma (PDF)
* [Internet Advertising: An Interplay among Advertisers, Online Publishers, Ad Exchanges and Web Users ](https://arxiv.org/pdf/1206.1754v2.pdf ) (PDF)
* [Introduction to Cultural Analytics & Python ](https://melaniewalsh.github.io/Intro-Cultural-Analytics/welcome.html ) - Melanie Walsh
* [Introduction to Data Science ](https://docs.google.com/file/d/0B6iefdnF22XQeVZDSkxjZ0Z5VUE/edit?pli=1 ) - Jeffrey Stanton
* [Mining of Massive Datasets ](http://infolab.stanford.edu/~ullman/mmds/book.pdf ) - Jure Leskovec, Anand Rajaraman, Jeffrey D. Ullman (PDF)
* [Probability and Statistics with Examples using R ](https://www.isibang.ac.in/~athreya/psweur/index.html#usage ) - Siva Athreya, Deepayan Sarkar, Steve Tanner (HTML) (:construction: *in process* )
* [School of Data Handbook ](https://schoolofdata.org/handbook/ )
* [Statistical inference for data science ](https://leanpub.com/LittleInferenceBook/read ) - Brian Caffo
* [The Ultimate Guide to 12 Dimensionality Reduction Techniques (with Python codes) ](https://www.analyticsvidhya.com/blog/2018/08/dimensionality-reduction-techniques-python/ ) - Pulkit Sharma
* [Theory and Applications for Advanced Text Mining ](https://www.intechopen.com/books/theory-and-applications-for-advanced-text-mining )
### Database
* [Database Design – 2nd Edition ](https://opentextbc.ca/dbdesign01/ ) - Adrienne Watt, Nelson Eng @ BCcampus Open Pressbooks (HTML, PDF, EPUB, Kindle)
* [Database Design Succinctly ](https://www.syncfusion.com/succinctly-free-ebooks/database-design-succinctly ) - Joseph D. Booth (HTML, PDF, EPUB, MOBI)
* [Database Explorations ](https://www.dcs.warwick.ac.uk/~hugh/TTM/Database-Explorations-revision-2.pdf ) - C.J. Date, Hugh Darwen (PDF)
* [Database Fundamentals ](https://public.dhe.ibm.com/software/dw/db2/express-c/wiki/Database_fundamentals.pdf ) - Neeraj Sharma et al. (PDF)
* [Database Management Systems Solutions Manual Third Edition ](https://pages.cs.wisc.edu/~dbbook/openAccess/thirdEdition/solutions/ans3ed-oddonly.pdf ) - Raghu Ramakrishnan, Johannes Gehrke, Jeff Derstadt, Scott Selikof, and Lin Zhu (PDF)
* [Databases, Types, and The Relational Model: The Third Manifesto ](https://www.dcs.warwick.ac.uk/~hugh/TTM/DTATRM.pdf ) - C.J. Date, Hugh Darwen (PDF)
* [Foundations of Databases ](http://webdam.inria.fr/Alice/ )
* [Readings in Database Systems, 5th Ed. ](http://www.redbook.io )
* [Temporal Database Management ](https://people.cs.aau.dk/~csj/Thesis/ ) - Christian S. Jensen
* [The Theory of Relational Databases ](https://web.cecs.pdx.edu/~maier/TheoryBook/TRD.html )
### Embedded Systems
* [Control and Embedded Systems ](http://www.learn-c.com ) (HTML)
* [Discovering the STM32 Microcontroller ](http://www.cs.indiana.edu/~geobrown/book.pdf ) (PDF) (CC BY-NC-SA)
* [First Steps with Embedded Systems ](https://www.phaedsys.com/principals/bytecraft/bytecraftdata/bcfirststeps.pdf ) - Byte Craft Limited (PDF)
* [Introduction to Embedded Systems, Second Edition ](https://ptolemy.berkeley.edu/books/leeseshia/releases/LeeSeshia_DigitalV2_2.pdf ) - Edward Ashford Lee, Sanjit Arunkumar Seshia (PDF)
* [Introduction to Microcontrollers ](http://www.embeddedrelated.com/showarticle/453.php ) (HTML)
* [Mastering the FreeRTOS Real Time Kernel - a Hands On Tutorial Guide ](https://freertos.org/Documentation/RTOS_book.html ) - freertos.org ([PDF](https://freertos.org/fr-content-src/uploads/2018/07/161204_Mastering_the_FreeRTOS_Real_Time_Kernel-A_Hands-On_Tutorial_Guide.pdf))
### Game Development
* [2D Game Development: From Zero To Hero ](https://github.com/Penaz91/2DGD_F0TH ) - Daniele Penazzo (HTML, [PDF, EBPUB, Kindle... ](https://therealpenaz91.itch.io/2dgd-f0th#download )) *(:construction: in process)*
* [3D Math Primer for Graphics and Game Development ](https://gamemath.com/book/intro.html ) - Fletcher Dunn (HTML)
* [Coding With Minecraft ](https://turtleappstore.com/book/ ) - Al Sweigart
* [Designing Virtual Worlds ](https://mud.co.uk/richard/DesigningVirtualWorlds.pdf ) - Richard A. Bartle (PDF)
* [Game AI Pro ](https://www.gameaipro.com ) - Steve Rabin
* [Game Design with AGS ](https://ensadi.github.io/AGSBook/ ) - Dave Ensminger, A. G. Madi
* [Game Programming Patterns ](https://gameprogrammingpatterns.com ) - Bob Nystrom
* [Level up your code with game programming patterns ](https://resources.unity.com/games/level-up-your-code-with-game-programming-patterns ) - Unity (HTML & PDF)
* [Procedural Content Generation in Games ](https://pcgbook.com ) - Noor Shaker, Julian Togelius, Mark Nelson
### Graphics Programming
* [3D Game Shaders For Beginners ](https://github.com/lettier/3d-game-shaders-for-beginners ) - David Lettier (Git) [(HTML) ](https://lettier.github.io/3d-game-shaders-for-beginners )
* [Blender 3D: Noob to Pro ](https://en.wikibooks.org/wiki/Blender_3D%3A_Noob_to_Pro ) - Wikibooks
* [Blender Manual ](https://docs.blender.org/manual/en/latest )
* [Computer Graphics from scratch ](http://gabrielgambetta.com/computer-graphics-from-scratch ) - Gabriel Gambetta *(:construction: in process)*
* [DirectX manual ](http://user.xmission.com/~legalize/book/download/index.html ) (draft)
* [GPU Gems ](https://developer.nvidia.com/gpugems/GPUGems/gpugems_pref01.html )
* [Graphics Programming Black Book ](https://www.gamedev.net/tutorials/_/technical/graphics-programming-and-theory/graphics-programming-black-book-r1698/ ) - Michael Abrash (PDF)
* [Introduction to Modern OpenGL ](https://open.gl ) - Alexander Overvoorde (HTML, EPUB, PDF) (C++)
* [Introduction to TouchDesigner 099 ](https://leanpub.com/introductiontotouchdesigner/ ) *(Leanpub account or valid email requested)*
* [JPEG - Idea and Practice ](https://en.wikibooks.org/wiki/JPEG_-_Idea_and_Practice )
* [Learn Computer Graphics From Scratch! ](https://www.scratchapixel.com ) - Scratchapixel *(:construction: in process)*
* [Learn OpenGL ](https://learnopengl.com ) - Joey de Vries
* [Learn OpenGL RS ](https://github.com/bwasty/learn-opengl-rs ) - Benjamin Wasty, et al. *(:construction: in process)*
* [Learning Modern 3D Graphics Programming ](https://web.archive.org/web/20150225192611/http://www.arcsynthesis.org/gltut/index.html ) - Jason L. McKesson (draft) *(:card_file_box: archived)*
* [Notes for a Computer Graphics Programming Course ](https://dokumen.tips/documents/computer-grafics-notes.html ) - Steve Cunningham (PDF)
* [OpenGL ](https://www.songho.ca/opengl/index.html ) - Concepts and illustrations
* [Physically Based Rendering, Third Edition: from Theory to Implementation ](https://www.pbr-book.org ) - Matt Pharr, Wenzel Jakob, Greg Humphreys
* [Ray Tracing Gems ](https://www.realtimerendering.com/raytracinggems/rtg/index.html ) - Eric Haines, Tomas Akenine-Möller
* [Ray Tracing Gems II ](https://www.realtimerendering.com/raytracinggems/rtg2/index.html ) - Adam Marrs, Peter Shirley, Ingo Wald
* [Ray Tracing in One Weekend ](https://raytracing.github.io ) - Peter Shirley (HTML)
* [ShaderX series ](https://www.realtimerendering.com/resources/shaderx/ ) - Wolfgang Engel
* [Tutorials for modern OpenGL ](https://www.opengl-tutorial.org )
* [Virtual Reality ](http://lavalle.pl/vr/ ) - Steven M. LaValle
* [WebGL Insights ](http://webglinsights.com ) - Patrick Cozzi, et al.
### Graphical User Interfaces
* [Event-Driven GTK by Example — 2021 Edition ](https://mmstick.github.io/gtkrs-tutorials/ ) - Michael Murphy
* [GUI development with Relm4 ](https://relm4.org/book/stable/ ) - Aaron Erhardt
* [GUI development with Rust and GTK 4 ](https://gtk-rs.org/gtk4-rs/stable/latest/book/ ) - Julian Hofer
* [Programming with gtkmm 4 ](https://developer.gnome.org/gtkmm-tutorial/stable/ )
* [Search User Interfaces ](https://searchuserinterfaces.com/book/ ) - Marti A. Hearst
* [Web Design Primer ](https://pressbooks.library.ryerson.ca/webdesign/ ) - Richard Adams, Ahmed Sagarwala
* [Web Style Guide Online ](https://www.webstyleguide.com/wsg3/index.html ) - Patrick J. Lynch, Sarah Horton
### IDE and editors
> :information_source: See also … [Emacs Lisp](free-programming-books-langs.md#emacs-lisp), [Regular Expressions](#regular-expressions)
* [A Byte of Vim ](https://www.swaroopch.com/notes/vim/ ) - Swaroop (PDF)
* [GNU Emacs Manual ](https://www.gnu.org/software/emacs/manual/emacs.html ) - Free Software Foundation Inc. (HTML, PDF)
* [Learn Vim (the Smart Way) ](https://github.com/iggredible/Learn-Vim ) - Igor Irianto (HTML) *(:construction: in process)*
* [Learn Vim For the Last Time ](https://danielmiessler.com/study/vim/ ) - Daniel Miessler
* [Learn Vim Progressively ](https://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/ ) - Yann Esposito
* [Learn Vimscript the Hard Way ](https://learnvimscriptthehardway.stevelosh.com ) - Steve Losh
* [The Craft of Text Editing or A Cookbook for an Emacs ](https://www.finseth.com/craft/ ) - Craig A. Finseth (HTML, PDF, ePUB, Kindle, PostScript, LaTeX)
* [Vi Improved -- Vim ](https://www.truth.sk/vim/vimbook-OPL.pdf ) - Steve Oualline (PDF)
* [VIM-GALORE - All things Vim! ](https://github.com/mhinz/vim-galore#readme ) - Marco Hinz (HTML)
* [Vim Recipes ](https://web.archive.org/web/20130302172911/http://vim.runpaint.org/vim-recipes.pdf ) - Run Paint Run Run, Run Paint Press (PDF) *(:card_file_box: archived)*
* [Vim Reference Guide ](https://learnbyexample.github.io/vim_reference/ ) - Sundeep Agarwal
* [Vim Regular Expressions 101 ](https://vimregex.com ) - Oleg Raisky
* [Visual Studio .NET Tips and Tricks ](https://www.infoq.com/minibooks/vsnettt ) - Minh T. Nguyen (PDF)
* [Visual Studio 2019 Succinctly ](https://www.syncfusion.com/ebooks/visual-studio-2019-succinctly ) - Alessandro Del Sole (online, PDF)
### Information Retrieval
* [Information Retrieval: A Survey ](http://www.csee.umbc.edu/csee/research/cadip/readings/IR.report.120600.book.pdf ) (PDF)
* [Information Retrieval: Implementing and Evaluating Search Engines ](https://mitmecsept.files.wordpress.com/2018/05/stefan-bc3bcttcher-charles-l-a-clarke-gordon-v-cormack-information-retrieval-implementing-and-evaluating-search-engines-2010-mit.pdf ) - Stefan Böttcher, Charles L. A. Clarke, Gordon V. Cormack (PDF)
* [Introduction to Information Retrieval ](https://nlp.stanford.edu/IR-book/information-retrieval-book.html )
### Licensing
* [Creative Commons: a user guide ](https://archive.org/download/CreativeCommonsUserGuide/CreativeCommonsUserGuide.pdf ) - Simone Aliprandi (PDF)
* [Open Source Licensing Software Freedom and Intellectual Property Law ](https://rosenlaw.com/oslbook/ ) - Lawrence Rosen
* [The Public Domain: Enclosing the Commons of the Mind ](https://www.thepublicdomain.org/download/ ) - James Boyle
### Machine Learning
* [A Brief Introduction to Machine Learning for Engineers ](https://arxiv.org/pdf/1709.02840.pdf ) - Osvaldo Simeone (PDF)
* [A Brief Introduction to Neural Networks ](https://www.dkriesel.com/en/science/neural_networks )
* [A Comprehensive Guide to Machine Learning ](https://www.eecs189.org/static/resources/comprehensive-guide.pdf ) - Soroush Nasiriany, Garrett Thomas, William Wang, Alex Yang (PDF)
* [A Course in Machine Learning ](http://ciml.info/dl/v0_9/ciml-v0_9-all.pdf ) (PDF)
* [A First Encounter with Machine Learning ](https://web.archive.org/web/20210420163002/https://www.ics.uci.edu/~welling/teaching/ICS273Afall11/IntroMLBook.pdf ) - Max Welling (PDF) *(:card_file_box: archived)*
* [A Selective Overview of Deep Learning ](https://arxiv.org/abs/1904.05526 ) - Fan, Ma, Zhong (PDF)
* [Algorithms for Reinforcement Learning ](https://sites.ualberta.ca/~szepesva/papers/RLAlgsInMDPs.pdf ) - Csaba Szepesvári (PDF)
* [An Introduction to Statistical Learning ](https://www.statlearning.com ) - Gareth James, Daniela Witten, Trevor Hastie, Robert Tibshirani
* [Approaching Almost Any Machine Learning Problem ](https://github.com/abhishekkrthakur/approachingalmost ) - Abhishek Thakur (PDF)
* [Bayesian Reasoning and Machine Learning ](http://web4.cs.ucl.ac.uk/staff/D.Barber/pmwiki/pmwiki.php?n=Brml.HomePage )
* [Deep Learning ](https://www.deeplearningbook.org ) - Ian Goodfellow, Yoshua Bengio, Aaron Courville
* [Deep Learning for Coders with Fastai and PyTorch ](https://github.com/fastai/fastbook ) - Jeremy Howard, Sylvain Gugger (Jupyter Notebooks)
* [Dive into Deep Learning ](https://d2l.ai )
* [Explorations in Parallel Distributed Processing: A Handbook of Models, Programs, and Exercises ](https://web.stanford.edu/group/pdplab/pdphandbook ) - James L. McClelland
* [Foundations of Machine Learning, Second Edition ](https://mitpress.ublish.com/ebook/foundations-of-machine-learning--2-preview/7093/Cover ) - Mehryar Mohri, Afshin Rostamizadeh, Ameet Talwalkar
* [Free and Open Machine Learning ](https://nocomplexity.com/documents/fossml/ ) - Maikel Mardjan (HTML)
* [Gaussian Processes for Machine Learning ](https://www.gaussianprocess.org/gpml/ ) - Carl Edward Rasmussen, Christopher K.I. Williams
* [IBM Machine Learning for Dummies ](https://www.ibm.com/downloads/cas/GB8ZMQZ3 ) - Judith Hurwitz, Daniel Kirsch
* [Information Theory, Inference, and Learning Algorithms ](http://www.inference.phy.cam.ac.uk/itila/ ) - David J.C. MacKay
* [Interpretable Machine Learning ](https://christophm.github.io/interpretable-ml-book/ ) - Christoph Molnar
* [Introduction to CNTK Succinctly ](https://www.syncfusion.com/ebooks/cntk_succinctly ) - James McCaffrey
* [Introduction to Machine Learning ](https://arxiv.org/abs/0904.3664v1 ) - Amnon Shashua
* [Keras Succinctly ](https://www.syncfusion.com/ebooks/keras-succinctly ) - James McCaffrey
* [Learn Tensorflow ](https://bitbucket.org/hrojas/learn-tensorflow ) - Jupyter Notebooks
* [Learning Deep Architectures for AI ](https://mila.quebec/wp-content/uploads/2019/08/TR1312.pdf ) - Yoshua Bengio (PDF)
* [Machine Learning ](https://www.intechopen.com/books/machine_learning )
* [Machine Learning for Beginners ](https://github.com/Microsoft/ML-For-Beginners ) - Microsoft
* [Machine Learning for Data Streams ](https://moa.cms.waikato.ac.nz/book-html/ ) - Albert Bifet, Ricard Gavaldà, Geoff Holmes, Bernhard Pfahringer
* [Machine Learning from Scratch ](https://dafriedman97.github.io/mlbook/ ) - Danny Friedman (HTML, PDF, Jupyter Book)
* [Machine Learning, Neural and Statistical Classification ](https://www1.maths.leeds.ac.uk/~charles/statlog/ ) - D. Michie, D.J. Spiegelhalter, C.C. Taylor
* [Machine Learning Simplified ](https://themlsbook.com/read ) - Andrew Wolf
* [Machine Learning with Python ](https://www.tutorialspoint.com/machine_learning_with_python/ ) - Tutorials Point (HTML, [PDF ](https://www.tutorialspoint.com/machine_learning_with_python/machine_learning_with_python_tutorial.pdf ))
* [Mathematics for Machine Learning ](https://gwthomas.github.io/docs/math4ml.pdf ) - Garrett Thomas (PDF)
* [Mathematics for Machine Learning ](https://mml-book.github.io ) - Marc Peter Deisenroth, A Aldo Faisal, Cheng Soon Ong
* [Neural Network Design (2nd Edition) ](https://hagan.okstate.edu/NNDesign.pdf ) - Martin T. Hagan, Howard B. Demuth, Mark H. Beale, Orlando De Jesús (PDF)
* [Neural Networks and Deep Learning ](http://neuralnetworksanddeeplearning.com )
* [Pattern Recognition and Machine Learning ](https://www.microsoft.com/en-us/research/uploads/prod/2006/01/Bishop-Pattern-Recognition-and-Machine-Learning-2006.pdf ) - Christopher M. Bishop (PDF)
* [Practitioners guide to MLOps ](https://services.google.com/fh/files/misc/practitioners_guide_to_mlops_whitepaper.pdf ) - Khalid Samala, Jarek Kazmierczak, Donna Schut (PDF)
* [Probabilistic Machine Learning - An Introduction ](https://github.com/probml/pml-book/releases/latest/download/book1.pdf ) - Kevin P. Murphy (PDF)
* [Probabilistic Models in the Study of Language ](https://idiom.ucsd.edu/~rlevy/pmsl_textbook/text.html ) (Draft, with R code)
* [Python Machine Learning Projects ](https://www.digitalocean.com/community/books/python-machine-learning-projects-a-digitalocean-ebook ) - Lisa Tagliaferri, Brian Boucheron, Michelle Morales, Ellie Birkbeck, Alvin Wan (PDF, EPUB, Kindle)
* [Reinforcement Learning: An Introduction ](http://incompleteideas.net/book/RLbook2020.pdf ) - Richard S. Sutton, Andrew G. Barto (PDF) (CC BY-NC-ND)
* [Speech and Language Processing (3rd Edition Draft) ](https://web.stanford.edu/~jurafsky/slp3/ed3book.pdf ) - Daniel Jurafsky, James H. Martin (PDF)
* [The Elements of Statistical Learning ](https://web.stanford.edu/~hastie/ElemStatLearn/ ) - Trevor Hastie, Robert Tibshirani, and Jerome Friedman
* [The LION Way: Machine Learning plus Intelligent Optimization ](https://intelligent-optimization.org/LIONbook/lionbook_3v0.pdf ) - Roberto Battiti, Mauro Brunato (PDF)
* [The Little Book of Deep Learning ](https://fleuret.org/public/lbdl.pdf ) - François Fleuret (PDF) (CC BY-NC-SA)
* [The Mathematical Engineering of Deep Learning ](https://deeplearningmath.org ) - Benoit Liquet, Sarat Moka, Yoni Nazarathy
* [The Mechanics of Machine Learning ](https://mlbook.explained.ai ) - Terence Parr, Jeremy Howard
* [The Python Game Book ](https://web.archive.org/web/20210308080726/https://thepythongamebook.com/en%3Astart ) - Horst Jens *(:card_file_box: archived)*
* [Top 10 Machine Learning Algorithms Every Engineer Should Know ](https://www.dezyre.com/article/top-10-machine-learning-algorithms/202 ) - Binny Mathews, Omair Aasim
* [Understanding Machine Learning: From Theory to Algorithms ](https://www.cs.huji.ac.il/~shais/UnderstandingMachineLearning ) - Shai Shalev-Shwartz, Shai Ben-David
### Mathematics
* [A Computational Introduction to Number Theory and Algebra ](https://shoup.net/ntb/ ) - Victor Shoup
* [A Computational Logic (1979) ](https://www.cs.utexas.edu/users/boyer/acl.pdf ) - Robert S. Boyer, J Strother Moore (PDF)
* [A Cool Brisk Walk Through Discrete Mathematics ](http://stephendavies.org/brisk.pdf ) - Stephen Davies (PDF)
* [A First Course in Complex Analysis ](https://matthbeck.github.io/papers/complexorth.pdf ) - Matthias Beck, Gerald Marchesi, Dennis Pixton, Lucas Sabalka (PDF)
* [A First Course in Linear Algebra ](http://linear.ups.edu ) - Rob Beezer
* [A Friendly Introduction to Mathematical Logic ](https://milneopentextbooks.org/a-friendly-introduction-to-mathematical-logic/ ) - Christopher C. Leary, Lars Kristiansen
* [A Gentle Introduction to the Art of Mathematics ](https://osj1961.github.io/giam/ ) - Joseph E. Fields
* [A Programmer's Introduction to Mathematics ](https://pimbook.org ) - Jeremy Kun
* [A Quick Steep Climb Up Linear Algebra ](http://stephendavies.org/quick.pdf ) - Stephen Davies (PDF)
* [Abstract Algebra: Theory and Applications ](http://abstract.ups.edu ) - Tom Judson
* [Active Calculus ](https://scholarworks.gvsu.edu/books/20/ ) - Matt Boelkins
* [Advanced Algebra ](https://www.math.stonybrook.edu/~aknapp/download/a2-alg-inside.pdf ) - Anthony W. Knapp (PDF)
* [Algebra: Abstract and Concrete ](https://homepage.divms.uiowa.edu/~goodman/algebrabook.dir/algebrabook.html ) - Frederick Goodman
* [Algebra: An Elementary Text-Book, Part I (1904) ](http://djm.cc/library/Algebra_Elementary_Text-Book_Part_I_Chrystal_edited.pdf ) - G. Chrystal (PDF)
* [Algebra: An Elementary Text-Book, Part II (1900) ](http://djm.cc/library/Algebra_Elementary_Text-Book_Part_II_Chrystal_edited02.pdf ) - G. Chrystal (PDF)
* [Algebraic Topology ](https://pi.math.cornell.edu/~hatcher/AT/ATpage.html ) - Allen Hatcher (PDF)
* [An Infinite Descent into Pure Mathematics ](https://infinitedescent.xyz/dl/infdesc.pdf ) - Clive Newstead (PDF)
* [An Introduction to the Theory of Numbers ](http://www.trillia.com/moser-number.html ) - Leo Moser (PDF)
* [Analytic Geometry (1922) ](http://djm.cc/library/Analytic_Geometry_Siceloff_Wentworth_Smith_edited.pdf ) - Lewis Parker Siceloff, George Wentworth, David Eugene Smith (PDF)
* [APEX Calculus ](https://www.apexcalculus.com ) - Gregory Hartman, Brian Heinold, Troy Siemers, and Dimplekumar Chalishajar
* [Applied Combinatorics ](https://rellek.net/book/app-comb.html ) - Mitchel T. Keller, William T. Trotter
* [Applied Discrete Structures ](https://faculty.uml.edu/klevasseur/ads2/ ) - Alan Doerr, Kenneth Levasseur
* [Basic Algebra ](https://www.math.stonybrook.edu/~aknapp/download/b2-alg-inside.pdf ) - Anthony W. Knapp (PDF)
* [Basic Analysis: Introduction to Real Analysis ](https://www.jirka.org/ra/ ) - Jiří Lebl
* [Basics of Algebra, Topology, and Differential Calculus ](https://www.cis.upenn.edu/~jean/math-basics.pdf ) (PDF)
* [Bayesian Methods for Hackers ](https://github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers ) - Cameron Davidson-Pilon
* [Beginning and Intermediate Algebra ](http://www.wallace.ccfaculty.org/book/book.html ) - Tyler Wallace
* [Book of Proof ](https://www.people.vcu.edu/~rhammack/BookOfProof/ ) - Richard Hammack [(PDF) ](https://www.people.vcu.edu/~rhammack/BookOfProof/Main.pdf )
* [Calculus ](https://ocw.mit.edu/courses/res-18-001-calculus-fall-2023/pages/textbook/ ) - Gilbert Strang (PDF)
* [Calculus I ](https://resolver.caltech.edu/CaltechBOOK:1985.001 ) - Jerrold E. Marsden, Alan Weinstein
* [Calculus in Context ](http://www.math.smith.edu/~callahan/intromine.html ) - James Callahan
* [Calculus Made Easy ](https://www.gutenberg.org/ebooks/33283 ) - Silvanus P. Thompson (PDF)
* [Calculus Volume 1 ](https://openstax.org/details/books/calculus-volume-1 ) - Edwin Herman, Gilbert Strang (PDF)
* [Calculus Volume 2 ](https://openstax.org/details/books/calculus-volume-2 ) - Edwin Herman, Gilbert Strang (PDF)
* [Calculus Volume 3 ](https://openstax.org/details/books/calculus-volume-3 ) - Edwin Herman, Gilbert Strang (PDF)
* [Category Theory for the Sciences ](https://math.mit.edu/~dspivak/CT4S.pdf ) - David I. Spivak (PDF)
* [CK-12 Probability and Statistics - Advanced ](https://www.ck12.org/book/Probability-and-Statistics---Advanced-%2528Second-Edition%2529/ )
* [CLP-1 Differential Calculus ](https://www.math.ubc.ca/~CLP/CLP1/ ) - Joel Feldman, Andrew Rechnitzer, Elyse Yeager
* [CLP-2 Integral Calculus ](https://www.math.ubc.ca/~CLP/CLP2/ ) - Joel Feldman, Andrew Rechnitzer, Elyse Yeager
* [CLP-3 Multivariable Calculus ](https://www.math.ubc.ca/~CLP/CLP3/ ) - Joel Feldman, Andrew Rechnitzer, Elyse Yeager
* [CLP-4 Vector Calculus ](https://www.math.ubc.ca/~CLP/CLP4/ ) - Joel Feldman, Andrew Rechnitzer, Elyse Yeager
* [Collaborative Statistics ](https://cnx.org/contents/5e0744f9-9e79-4348-9237-ed012213a2d6%4040.9 )
* [College Trigonometry ](https://open.umn.edu/opentextbooks/textbooks/college-trigonometry ) - Carl Stitz, Jeff Zeager (PDF)
* [Combinatorics Through Guided Discovery ](https://bogart.openmathbooks.org ) - Kenneth Bogart
* [Complex Analysis ](https://people.math.gatech.edu/~cain/winter99/complex.html ) - George Cain
* [Computational and Inferential Thinking. The Foundations of Data Science ](https://www.inferentialthinking.com ) - Ani Adhikari, John DeNero, David Wagner
* [Computational Geometry ](https://web.mit.edu/hyperbook/Patrikalakis-Maekawa-Cho/ )
* [Computational Mathematics with SageMath ](https://www.sagemath.org/sagebook/ ) - Paul Zimmermann, Alexandre Casamayou, Nathann Cohen, Guillaume Connan, et al. (PDF)
* [Concepts & Applications of Inferential Statistics ](http://vassarstats.net/textbook/ )
* [Convex Optimization ](https://web.stanford.edu/~boyd/cvxbook ) - Stephen Boyd, Lieven Vandenberghe
* [Coordinate Geometry (1911) ](http://djm.cc/library/Coordinate_Geometry_Fine_Thompson_edited03.pdf ) - Henry Buchard Fine, Henry Dallas Thompson (PDF)
* [Course Of Linear Algebra And Multidimensional Geometry ](https://arxiv.org/pdf/math/0405323 ) - Ruslan Sharipov(PDF)
* [Differential Equations ](http://tutorial.math.lamar.edu/Classes/DE/DE.aspx ) - Paul Dawkins (PDF, use download menu to download)
* [Differential Equations (1922) ](http://djm.cc/library/Differential_Equations_Phillips_edited.pdf ) - H. B. Phillips (PDF)
* [Discrete Mathematics: An Open Introduction ](https://discrete.openmathbooks.org/dmoi3.html ) - Oscar Levin
* [Discrete Mathematics: First and Second Course ](https://cseweb.ucsd.edu/~gill/BWLectSite/ ) - Edward A. Bender, S. Gill Williamson
* [Elementary Differential Equations ](http://ramanujan.math.trinity.edu/wtrench/texts/TRENCH_DIFF_EQNS_I.PDF ) - William F. Trench (PDF)
* [Elementary Differential Equations (with Boundary Value Problems) ](https://digitalcommons.trinity.edu/mono/9/ ) - William F. Trench
* [Elementary Number Theory: Primes, Congruences, and Secrets ](https://wstein.org/ent/ ) - William Stein
* [Elementary Real Analysis ](https://www.classicalrealanalysis.info/com/Elementary-Real-Analysis.php ) - Brian S. Thomson, Judith B. Bruckner, Andrew M. Bruckner
* [Elements of Abstract and Linear Algebra ](https://www.math.miami.edu/~ec/book/ ) - E. H. Connell
* [Elements of Differential and Integral Calculus (1911) ](http://djm.cc/library/Elements_Differential_Integral_Calculus_Granville_edited_2.pdf ) - William Anthony Granville (PDF)
* [Essentials of Metaheuristics ](https://cs.gmu.edu/~sean/book/metaheuristics/ ) - Sean Luke
* [First Course in Algebra (1910) ](http://djm.cc/library/First_Algebra_Hawkes_Luby_Touton_edited.pdf ) - Herbert E. Hawkes, William A. Luby, Frank C. Touton (PDF)
* [Foundations of Combinatorics with Applications ](https://www.math.ucsd.edu/~ebender/CombText/ ) - Edward A. Bender, S. Gill Williamson
* [Foundations of Constructive Probability Theory ](https://arxiv.org/pdf/1906.01803.pdf ) - Yuen-Kwok Chan (PDF)
* [Geometry with an Introduction to Cosmic Topology ](https://mphitchman.com ) - Michael P. Hitchman
* [Graph Theory ](http://compalg.inf.elte.hu/~tony/Oktatas/TDK/FINAL/ )
* [Guide to Discrete Mathematics ](https://core.ac.uk/download/pdf/326762636.pdf ) - David Gries, Fred B. Schneider (PDF)
* [How We Got from There to Here: A Story of Real Analysis ](https://milneopentextbooks.org/how-we-got-from-there-to-here-a-story-of-real-analysis/ ) - Robert Rogers, Eugene Boman
* [Introduction to Modern Statistics ](https://openintro-ims.netlify.app ) - Mine Çetinkaya-Rundel, Johanna Hardin (HTML, PDF) (email address required for PDF)
* [Introduction to Probability ](https://math.dartmouth.edu/~prob/prob/prob.pdf ) - Charles M. Grinstead, J. Laurie Snell (PDF)
* [Introduction to Probability and Statistics Spring 2014 ](https://ocw.mit.edu/courses/mathematics/18-05-introduction-to-probability-and-statistics-spring-2014/ )
* [Introduction to Proofs ](http://joshua.smcvt.edu/proofs/ ) - Jim Hefferon
* [Introduction to Real Analysis ](https://digitalcommons.trinity.edu/mono/7/ ) - William F. Trench
* [Introduction to Statistical Thought ](https://people.math.umass.edu/~lavine/Book/book.html ) - Michael Lavine
* [Introductory Statistics for the Life and Biomedical Sciences ](https://www.openintro.org/book/isrs/ ) - Julie Vu, David Harrington
* [Kalman and Bayesian Filters in Python ](https://github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python )
* [Knapsack Problems - Algorithms and Computer Implementations ](http://www.or.deis.unibo.it/knapsack.html ) - Silvano Martello, Paolo Toth
* [Lecture Notes of Linear Algebra ](https://home.iitk.ac.in/~psraj/mth102/lecture_notes.html ) - P. Shunmugaraj, IIT Kanpur (PDF)
* [Lecture Notes on Linear Algebra ](https://home.iitk.ac.in/~arlal/book/LA_Solution_Dec20.pdf ) - Dr. Arbind K Lal, Sukant Pati (PDF) *(:construction: in process)*
* [Lies, Damned Lies, or Statistics: How to Tell the Truth with Statistics ](https://www.poritz.net/jonathan/share/ldlos.pdf ) - Jonathan A. Poritz (PDF)
* [Linear Algebra ](https://www.math.ucdavis.edu/~linear/linear-guest.pdf ) - David Cherney et al. (PDF)
* [Linear Algebra ](http://joshua.smcvt.edu/linearalgebra/ ) - Jim Hefferon
* [Linear Algebra Done Right ](https://linear.axler.net ) - Sheldon Axler
* [Linear Algebra Done Wrong ](https://www.math.brown.edu/streil/papers/LADW/LADW.html ) - Sergei Treil
* [Linear Algebra, Infinite Dimensions, and Maple ](https://people.math.gatech.edu/~herod/Hspace/Hspace.html ) - James Herod
* [Linear Methods of Applied Mathematics ](http://www.mathphysics.com/pde ) - Evans M. Harrell II, James V. Herod
* [Magic Squares and Cubes (1917) ](http://djm.cc/library/Magic_Squares_Cubes_Andrews_edited.pdf ) - W. S. Anderson (PDF)
* [Math in Society ](https://www.opentextbookstore.com/mathinsociety/ ) - David Lippman
* [Mathematical Analysis I ](http://www.trillia.com/zakon-analysisI.html ) - Elias Zakon
* [Mathematical Discovery ](https://classicalrealanalysis.info/com/Mathematical-Discovery.php ) - Andrew M. Bruckner, Brian S. Thomson, Judith B. Bruckner
* [Mathematical Logic - an Introduction ](https://www.ii.uib.no/~michal/und/i227/book/book.pdf ) (PDF)
* [Mathematical Reasoning: Writing and Proof ](https://www.tedsundstrom.com/mathematical-reasoning-3 ) - Ted Sundstrom
* [Mathematics, MTH101A ](https://home.iitk.ac.in/~psraj/mth101/ ) - P. Shunmugaraj, IIT Kanpur
* [Multivariable Calculus ](https://people.math.gatech.edu/~cain/notes/calculus.html ) - George Cain, James Herod
* [Non-Uniform Random Variate Generation ](http://luc.devroye.org/rnbookindex.html ) - Luc Devroye (PDF)
* [Notes on Diffy Qs ](https://www.jirka.org/diffyqs/ ) - Jiří Lebl
* [Number Theory ](https://github.com/holdenlee/number-theory ) - Holden Lee MIT
* [Number Theory: In Context and Interactive ](https://math.gordon.edu/ntic/ ) - Karl-Dieter Crisman (HTML, PDF)
* [Odds and Ends: Introducing Probability & Decision with a Visual Emphasis ](https://jonathanweisberg.org/vip/ ) - Jonathan Weisberg
* [Online Statistics Education ](https://onlinestatbook.com ) - David Lane
* [OpenIntro Statistics ](https://www.openintro.org/stat/textbook.php ) - David M. Diez, Christopher D. Barr, Mine Çetinkaya-Rundel
* [ORCCA: Open Resources for Community College Algebra ](https://spaces.pcc.edu/pages/viewpage.action?pageId=52729944 ) - Portland Community College
* [Ordinary Differential Equations ](https://en.wikibooks.org/wiki/Ordinary_Differential_Equations ) - Wikibooks
* [Paul's Online Notes: Algebra, Calculus I-III and Differential Equations ](https://tutorial.math.lamar.edu ) - Paul Dawkins @ Lamar University
* [Plane Geometry (1913) ](http://djm.cc/library/Plane_Geometry_Wentworth_Smith_edited.pdf ) - George Wentworth, David Eugene Smith (PDF)
* [Planes and Spherical Trigonometry (1915) ](http://djm.cc/library/Plane_Spherical_Trigonometry_Wentworth_Smith_edited_2.pdf ) - George Wentworth, David Eugene Smith (PDF)
* [Precalculus ](https://stitz-zeager.com ) - Carl Stitz, Jeff Zeager [(PDF) ](https://stitz-zeager.com/szprecalculus07042013.pdf )
* [Probability and Statistics Cookbook ](http://statistics.zone )
* [Probability and Statistics EBook ](http://wiki.stat.ucla.edu/socr/index.php/Probability_and_statistics_EBook )
* [Probability: Lectures and Labs ](https://www.markhuberdatascience.org/probability-textbook ) - Mark Huber
* [Proofs and Types ](https://www.paultaylor.eu/stable/Proofs+Types ) - Jean-Yves Girard, Yves Lafont, Paul Taylor
* [Recreations in Math ](http://djm.cc/library/Recreations_in_Mathematics_Licks_edited.pdf ) - H. E. Licks (PDF)
* [Sage for Undergraduates ](http://www.gregorybard.com/books.html ) - Gregory Bard
* [Second Course in Algebra ](http://djm.cc/library/Second_Algebra_Hawkes_Luby_Touton_edited.pdf ) - Herbert E. Hawkes, William A. Luby, Frank C. Touton (PDF)
* [Seven Sketches in Compositionality: An Invitation to Applied Category Theory ](https://arxiv.org/pdf/1803.05316.pdf ) - Brendan Fong, David I. Spivak (PDF)
* [Statistical Thinking for the 21st Century ](https://statsthinking21.org ) - Russell A. Poldrack
* [Statistics Done Wrong ](https://www.statisticsdonewrong.com ) - Alex Reinhart
* [SticiGui ](https://www.stat.berkeley.edu/~stark/SticiGui/ ) - Philip Stark
* [Tea Time Numerical Analysis ](https://lqbrin.github.io/tea-time-numerical/ ) - Leon Q. Brin
* [The Open Logic Text ](https://builds.openlogicproject.org/open-logic-complete.pdf ) - Open Logic Project (PDF)
* [Think Bayes: Bayesian Statistics Made Simple ](https://www.greenteapress.com/thinkbayes/ ) - Allen B. Downey
* [Think Stats: Probability and Statistics for Programmers ](https://greenteapress.com/thinkstats/ ) - Allen B. Downey (using Python)
* [Vector Calculus ](https://www.mecmath.net ) - Michael Corral
* [Yet Another Introductory Number Theory Textbook ](https://www.poritz.net/jonathan/share/yaintt.pdf ) - Jonathan A. Poritz (PDF)
### Mathematics For Computer Science
* [A Mathematical Theory of Communication ](https://archive.org/details/bstj27-4-623 ) - Claude E.Shannon
* [Combinatorial Problems And Exercises (1979) ](https://archive.org/details/in.ernet.dli.2015.141538/ ) - L. Lovasz
* [Discrete Structures for Computer Science: Counting, Recursion, and Probability ](https://cglab.ca/~michiel/DiscreteStructures/ ) - Michiel Smid
* [Exploring Math for Programmers and Data Scientists ](https://freecontent.manning.com/free-ebook-exploring-math-for-programmers-and-data-scientists/ ) - Paul Orland
* [Graph Theory Exercises ](https://www.ime.usp.br/~pf/graph-exercises/ ) - Paulo Feofiloff (PDF)
* [Isomorphism -- Mathematics of Programming ](https://github.com/liuxinyu95/unplugged ) - Larry LIU Xinyu
* [Mathematics for Computer Science ](https://courses.csail.mit.edu/6.042/spring18/mcs.pdf ) - Eric Lehman, F. Thomson Leighton, Albert R. Meyer (PDF)
### Misc
* [10 Keys to Great Landing Pages ](https://ithemes.com/wp-content/uploads/downloads/2012/09/10-keys-to-great-landing-pages-eBook.pdf ) - iThemes Media (PDF)
* [2016 European Software Development Salary Survey ](https://www.oreilly.com/radar/2016-european-software-development-salary-survey/ ) - Andy Oram, John King (HTML)
* [2016 Software Development Salary Survey ](https://www.oreilly.com/radar/2016-software-development-salary-survey-report/ ) - John King, Roger Magoulas (HTML)
* [A MACHINE MADE THIS BOOK ten sketches of computer science ](https://ocaml-book.com/s/popbook.pdf ) - JOHN WHITINGTON (PDF)
* [Ansible Up & Running (first three chapters) ](https://www.ansible.com/ebooks ) *(account required)*
* [Asterisk™: The Definitive Guide ](https://solmu.org/pub/help/Asterisk/3nd_Edition_for_Asterisk_1.8 ) - Leif Madsen, Jim Van Meggelen, Russell Bryant (HTML)
* [Atomic Design ](https://atomicdesign.bradfrost.com ) - Brad Frost
* [Barcode Overview ](https://www.tec-it.com/download/PDF/Barcode_Reference_EN.pdf ) (PDF)
* [Come, Let's Play: Scenario-Based Programming Using Live Sequence Charts ](https://www.wisdom.weizmann.ac.il/~playbook/ ) - David Harel, Rami Marelly
* [Communicating Sequential Processes ](http://www.usingcsp.com/cspbook.pdf ) - Tony Hoare (PDF)
* [Confessions of an Unintentional CTO: Lessons in Growing a Web App ](https://www.jackkinsella.ie/books/confessions_of_an_unintentional_cto ) - Jack Kinsella
* [Culture \& Empire: Digital Revolution ](http://hintjens.com/books ) - Pieter Hintjens (PDF)
* [Design With FontForge ](http://designwithfontforge.com/en-US/index.html )
* [Designing Interfaces ](http://designinginterfaces.com ) - Jennifer Tidwell
* [DevDocs ](https://devdocs.io ) - Documents for Developers in 1 place
* [DevOps For Dummies, 3rd IBM Limited Edition ](https://www.ibm.com/downloads/cas/P9NYOK3B ) - Sanjeev Sharma, Bernie Coyne (PDF)
* [Digital Signal Processing For Communications ](https://www.sp4comm.org ) - Paolo Prandoni, Martin Vetterli
* [Digital Signal Processing For Engineers and Scientists ](https://www.dspguide.com ) - Steven W. Smith
* [Digital Signal Processing in Python ](https://greenteapress.com/wp/think-dsp ) - Allen B. Downey
* ["DYNAMIC LINKED LIBRARIES": Paradigms of the GPL license in contemporary software ](https://www.lulu.com/shop/http://www.lulu.com/shop/luis-enr%C3%ADquez-a/dynamic-linked-libraries-paradigms-of-the-gpl-license-in-contemporary-software/ebook/product-21419788.html ) - Luis A. Enríquez
* [Encyclopedia of Human Computer Interaction 2nd Edition ](https://www.interaction-design.org/literature/book/the-encyclopedia-of-human-computer-interaction-2nd-ed )
* [Essential Image Optimization ](https://images.guide ) - Addy Osmani
* [Foundations of Programming ](https://openmymind.net/FoundationsOfProgramming.pdf ) - Karl Seguin (PDF)
* [Front-End Developer Handbook 2016 ](https://frontendmasters.com/guides/front-end-handbook/2016/ ) - Cody Lindley (HTML)
* [Front-End Developer Handbook 2017 ](https://frontendmasters.com/guides/front-end-handbook/2017/ ) - Cody Lindley (HTML)
* [Front-End Developer Handbook 2018 ](https://frontendmasters.com/guides/front-end-handbook/2018/ ) - Cody Lindley (HTML)
* [Front-End Developer Handbook 2019 ](https://frontendmasters.com/guides/front-end-handbook/2019/ ) - Cody Lindley (HTML)
* [Getting Real ](https://basecamp.com/books/getting-real ) - Basecamp, 37signals ([HTML](https://basecamp.com/gettingreal), [PDF ](https://basecamp.com/gettingreal/getting-real.pdf ))
* [GNU GREP and RIPGREP ](https://learnbyexample.github.io/learn_gnugrep_ripgrep/ ) - Sundeep Agarwal
* [Google Maps API Succinctly ](https://www.syncfusion.com/ebooks/google_maps_api_succinctly ) - Mark Lewin
* [Hacknot: Essays on Software Development ](https://www.lulu.com/shop/ed-johnson/hacknot-essays-on-software-development/ebook/product-17544641.html ) - Ed Johnson
* [Hello SDL ](https://lazyfoo.net/tutorials/SDL ) - Lazy Foo' Productions
* [High-Performance Scientific Computing ](https://andreask.cs.illinois.edu/Teaching/HPCFall2012 ) (class lectures and slides)
* [HoloLens Succinctly ](https://www.syncfusion.com/ebooks/hololens_succinctly ) - Lars Klint
* [How Computers Work ](https://www.fastchip.net/howcomputerswork/p1.html ) - R. Young
* [How to Become a Programmer ](http://softwarebyrob.wpengine.netdna-cdn.com/assets/Software_by_Rob%20_How_to_Become_a%20_Programmer_1.0.pdf ) - Rob Walling (PDF)
* [How To Manage Remote Servers with Ansible ](https://www.digitalocean.com/community/books/how-to-manage-remote-servers-with-ansible-ebook ) - Erika Heidi (PDF, EPUB)
* [How to Think Like a Computer Scientist ](https://openbookproject.net/thinkcs/ ) - Peter Wentworth, Jeffrey Elkner, Allen B. Downey, Chris Meyers
* [Image Processing in C: Analyzing and Enhancing Digital Images ](https://homepages.inf.ed.ac.uk/rbf/BOOKS/PHILLIPS/ ) - Dwayne Phillips
* [Information Technology and the Networked Economy ](https://web.archive.org/web/20200731035935/https://florida.theorangegrove.org/og/file/49843a6a-9a9d-4bad-b4d4-d053f9cdf73e/1/InfoTechNetworkedEconomy.pdf ) - Patrick McKeown (PDF) *(:card_file_box: archived)*
* [Introduction to Scientific Programming in C++ and Fortran ](https://web.corral.tacc.utexas.edu/CompEdu/pdf/isp/EijkhoutIntroSciProgramming-book.pdf ) - Victor Eijkhout (PDF)
* [IRPF90 Fortran code generator ](https://www.gitbook.com/book/scemama/irpf90/details ) - Anthony Scemama
* [Learn Programming ](https://progbook.org ) - Antti Salonen
* [Learn to Program ](https://pine.fm/LearnToProgram/ ) - Chris Pine
* [Learning 30 Technologies in 30 Days: A Developer Challenge ](https://blog.openshift.com/learning-30-technologies-in-30-days-a-developer-challenge/ ) - Shekhar Gulati
* [Linked Data Patterns: A pattern catalogue for modelling, publishing, and consuming Linked Data ](https://patterns.dataincubator.org/book/ ) - Leigh Dodds, Ian Davis
* [Magic Ink: Information Software and The Graphical Interface ](http://worrydream.com/#!/MagicInk ) - Bret Victor
* [Mobile Developer's Guide to the Galaxy ](https://leanpub.com/mobiledevelopersguide/read ) (HTML)
* [Modeling Reactive Systems with Statecharts ](https://www.wisdom.weizmann.ac.il/~harel/reactive_systems.html ) - D. Harel, M. Politi
* [MSIX Succinctly ](https://www.syncfusion.com/ebooks/msix-succinctly ) - Matteo Pagani
* [Networks, Crowds, and Markets: Reasoning About a Highly Connected World ](https://www.cs.cornell.edu/home/kleinber/networks-book/ ) - David Easley, Jon Kleinberg
* [Object-Oriented Reengineering Patterns ](http://win.ua.ac.be/~sdemey/ ) - Serge Demeyer, Stéphane Ducasse, Oscar Nierstrasz
* [Open Government; Collaboration, Transparency, and Participation in Practice ](https://github.com/oreillymedia/open_government ) - Daniel Lathrop, Laurel Ruma
* [PDQ: Pretty Darn Quick: An Agile, All-Purpose Methodology ](https://leanpub.com/PDQ ) - Jeff Franz-Lien *(Leanpub account or valid email requested)*
* [Philosophy of Computer Science ](https://www.cse.buffalo.edu/~rapaport/Papers/phics.pdf ) (PDF)
* [PNG: The Definitive Guide ](http://www.libpng.org/pub/png/book/ ) - Greg Roelofs
* [Pointers And Memory ](http://cslibrary.stanford.edu/102/PointersAndMemory.pdf ) - Nick Parlante (PDF)
* [Programming Fundamentals ](https://press.rebus.community/programmingfundamentals/ ) - Kenneth Leroy Busbee, Dave Braunschweig
* [Programming with Unicode ](https://unicodebook.readthedocs.org )
* [Real-World Maintainable Software ](https://www.oreilly.com/ideas/real-world-maintainable-software ) - Abraham Marin-Perez
* [Record-Playback Test Automation: Sahi & Selenium IDE: Critical Evaluation of Record-Playback Automation Tools ](https://leanpub.com/manualToAutomatedWithSeleniumIDEAndSahi ) - Shashikant Jagtap *(Leanpub account or valid email requested)*
* [Scientific Programming and Computer Architecture ](https://divakarvi.github.io/bk-spca/spca.html ) - Divakar Viswanath
* [Signal Computing: Digital Signals in the Software Domain ](http://faculty.washington.edu/stiber/pubs/Signal-Computing/Signal%20Computing.pdf ) - Michael Stiber, Bilin Zhang Stiber, Eric C. Larson (PDF)
* [Small Memory Software ](https://smallmemory.charlesweir.com/book.html ) - Charles Weir, James Noble (HTML)
* [Software Technical Writing: A Guidebook ](https://jamesg.blog/book.pdf ) - James Gallagher (PDF)
* [The Web Development Glossary ](https://github.com/frontenddogma/web-development-glossary ) – Jens Oliver Meiert
* [Using Z Specification, Refinement, and Proof ](http://www.usingz.com/usingz.pdf ) - Jim Woodcock, Jim Davies (PDF)
* [Web Almanac ](https://almanac.httparchive.org/static/pdfs/web_almanac_2019_en.pdf ) (PDF)
* [Writing Native Mobile Apps in a Functional Language Succinctly ](https://www.syncfusion.com/ebooks/writing_native_mobile_apps_in_a_functional_language_succinctly ) - Vassili Kaplan
### Networking
* [An Introduction to Computer Networks ](https://intronetworks.cs.luc.edu ) (HTML, PDF, Kindle)
* [Beej's Guide to Network Programming - Using Internet Sockets ](https://beej.us/guide/bgnet/ ) - Brian "Beej Jorgensen" Hall (HTML, PDF)
* [Bits, Signals, and Packets: An Introduction to Digital Communications and Networks ](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-02-introduction-to-eecs-ii-digital-communication-systems-fall-2012/readings/ )
* [Code Connected vol.1 ](https://hintjens.wdfiles.com/local--files/main%3Afiles/cc1pe.pdf ) (PDF) (book on ZeroMQ)
* [Computer Networking : Principles, Protocols and Practice ](http://cnp3book.info.ucl.ac.be/1st/html/index.html ) (HTML, ePub, PDF, Kindle)
* [Computer Networks ](https://kanchiuniv.ac.in/coursematerials/VINODKUMAR_COMPUTER_NETWORKS.pdf ) - J.Vinoth kumar (PDF)
* [Computer Networks: A Systems Approach ](https://book.systemsapproach.org ) - Larry Peterson, Bruce Davie (HTML, epub, mobi, PDF)
* [Distributed systems for fun and profit ](https://book.mixu.net/distsys/single-page.html )
* [High-Performance Browser Networking ](https://hpbn.co ) - Ilya Grigorik
* [How HTTPS Works ](https://howhttps.works ) - DNSimple
* [HTTP Succinctly, Syncfusion ](https://www.syncfusion.com/resources/techportal/ebooks/http ) (PDF, Kindle) (email address *requested* , not required)
* [HTTP2 Explained ](https://daniel.haxx.se/http2/ ) - Daniel Stenberg
* [Introduction to HTTP ](https://launchschool.com/books/http ) - Launch School
* [IPv6 for IPv4 Experts ](https://sites.google.com/site/yartikhiy/home/ipv6book ) - Yar Tikhiy (PDF)
* [Kafka gentle introduction ](https://www.gentlydownthe.stream ) - Mitch Seymour
* [Kafka, The definitive Guide ](https://assets.confluent.io/m/1b509accf21490f0/original/20170707-EB-Confluent_Kafka_Definitive-Guide_Complete.pdf ) - Neha Narkhede (PDF)
* [Linux IP Stacks Commentary ](https://www.satchell.net/ipstacks/ ) - Stephen Satchell, H. B. J. Clifford (HTML) *(:construction: in process)*
* [Mininet Walkthrough ](https://mininet.org/walkthrough/ )
* [Network Science ](http://networksciencebook.com ) - Albert-Laszló Barabási
* [Networking! ACK! ](https://wizardzines.com/zines/networking/ ) - Julia Evans (PDF)
* [Securing Wireless Networks for the Home User Guide ](https://mohamedation.com/securing-wifi/en/ ) - Mohamed Adel (HTML)
* [The TCP/IP Guide ](http://www.tcpipguide.com/free/t_toc.htm )
* [Understanding IP Addressing: Everything you ever wanted to know ](http://pages.di.unipi.it/ricci/501302.pdf ) (PDF)
* [ZeroMQ Guide ](https://zguide.zeromq.org )
### Object Oriented Programming
* [Object Oriented Programming ](https://www.cl.cam.ac.uk/teaching/0910/OOProg/OOP.pdf ) - Robert Harle (PDF)
* [OOP – Learn Object Oriented Thinking and Programming ](https://files.bruckner.cz/be2a5b2104bf393da7092a4200903cc0/PecinovskyOOP.pdf ) - Rudolf Pecinovsky (PDF)
### Open Source Ecosystem
* [500 lines or less ](https://github.com/aosabook/500lines ) - Build from Source Code
* [Contributing to opensource: the right way ](https://github.com/Mte90/Contribute-to-opensource-the-right-way ) - Daniele Scasciafratte
* [Data Journalism Handbook ](https://datajournalismhandbook.org )
* [Free as in Freedom: Richard Stallman and the free software revolution ](https://archive.org/details/faif-2.0 ) - Sam Williams (PDF)
* [Free for All ](https://unglue.it/work/136445/ ) - Peter Wayner
* [Free Software, Free Society: Selected Essays of Richard M. Stallman ](https://shop.fsf.org/product/free-software-free-society-2/ )
* [Getting Started with InnerSource ](https://www.oreilly.com/programming/free/getting-started-with-innersource.csp ) (email address *requested* , not required)
* [Getting started with Open source development ](https://public.dhe.ibm.com/software/dw/db2/express-c/wiki/Getting_started_with_open_source_development_p2.pdf ) (PDF)
* [GitLab Handbook ](https://about.gitlab.com/handbook/ )
* [How to get started with open source ](https://opensource.com/resources/ebook/how-get-started-open-source ) (ePub & ODT)
* [Innovation Happens Elsewhere ](https://dreamsongs.com/IHE/IHE.html ) - Ron Goldman, Richard P. Gabriel
* [Introduction to Networking ](https://do1.dr-chuck.net/net-intro/EN_us/net-intro.pdf ) - Charles Severance (PDF)
* [Open Advice: FOSS: What We Wish We Had Known When We Started ](http://open-advice.org )
* [Open source in Brazil ](https://www.oreilly.com/ideas/open-source-in-brazil ) - Andy Oram
* [Producing Open Source Software ](https://producingoss.com ) - Karl Fogel
* [Roads and Bridges: The Unseen Labor Behind Our Digital Infrastructure ](https://www.fordfoundation.org/work/learning/research-reports/roads-and-bridges-the-unseen-labor-behind-our-digital-infrastructure/ ) - Nadia Eghbal
* [The Architecture of Open Source Applications: Vol. 1: Elegance, Evolution, and a Few Fearless Hacks; Vol. 2: Structure, Scale, and a Few More Feerless Hacks ](https://www.aosabook.org/en/index.html )
* [The Art of Community ](https://artofcommunityonline.org/Art_of_Community_Second_Edition.pdf ) - Jono Bacon (PDF)
* [The Cathedral and the Bazaar ](http://www.catb.org/esr/writings/cathedral-bazaar/ ) - Eric S. Raymond
* [The Future of the Internet ](https://futureoftheinternet.org ) - Jonathan Zittrain
* [The Open Source Way ](https://www.theopensourceway.org/book/ )
* [The Wealth of Networks: How Social Production Transforms Markets and Freedom ](https://cyber.law.harvard.edu/wealth_of_networks/Main_Page ) - Yochai Benkler
### Operating Systems
* [A short introduction to operating systems (2001) ](https://markburgess.org/os/os.pdf ) - Mark Burgess (PDF)
* [Computer Science from the Bottom Up ](https://www.bottomupcs.com ) - Ian Wienand (PDF)
* [Flexible Operating System Internals: The Design and Implementation of the Anykernel and Rump Kernels ](https://aaltodoc.aalto.fi/handle/123456789/6318 ) - Antti Kantee (PDF)
* [How to Make a Computer Operating System ](https://github.com/SamyPesse/How-to-Make-a-Computer-Operating-System ) - Samy Pesse *(:construction: in process)*
* [How to write a simple operating system in assembly language ](https://mikeos.sourceforge.net/write-your-own-os.html ) - Mike Saunders (HTML)
* [Making Servers Work: A Practical Guide to Linux System Administration ](https://www.digitalocean.com/community/books/sysadmin-ebook-making-servers-work ) - Jamon Camisso (PDF, EPUB)
* [Operating Systems and Middleware ](https://gustavus.edu/mcs/max/os-book/ ) - Max Hailperin (PDF, LaTeX)
* [Operating Systems: From 0 to 1 ](https://github.com/tuhdo/os01/releases/tag/0.0.1 ) - Tu, Ho Doang (PDF) (:construction: *in process* )
* [Operating Systems: Three Easy Pieces ](https://pages.cs.wisc.edu/~remzi/OSTEP/ ) - Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau (PDF)
* [Practical File System Design: The Be File System ](https://www.nobius.org/~dbg/practical-file-system-design.pdf ) - Dominic Giampaolo (PDF)
* [Project Oberon: The Design of an Operating System, a Compiler, and a Computer ](https://people.inf.ethz.ch/wirth/ProjectOberon/index.html ) - Niklaus Wirth, Jürg Gutknecht (PDF)
* [The Art of Unix Programming ](http://catb.org/esr/writings/taoup/html/ ) - Eric S. Raymond (HTML)
* [The Little Book About OS Development ](https://littleosbook.github.io ) - Erik Helin, Adam Renberg - (PDF, HTML)
* [The Little Book of Semaphores ](https://greenteapress.com/semaphores/ ) - Allen B. Downey (PDF) (CC BY-NC-SA)
* [Think OS: A Brief Introduction to Operating Systems ](https://www.greenteapress.com/thinkos/index.html ) - Allen B. Downey (PDF)
* [UNIX Application and System Programming, lecture notes ](http://www.compsci.hunter.cuny.edu/~sweiss/course_materials/unix_lecture_notes.php ) - Stewart Weiss (PDF) (CC BY-SA)
* [Writing a Simple Operating System from Scratch ](https://www.cs.bham.ac.uk/~exr/lectures/opsys/10_11/lectures/os-dev.pdf ) - Nick Blundell (PDF)
* [Xv6, a simple Unix-like teaching operating system ](https://pdos.csail.mit.edu/6.828/2022/xv6.html ) - Russ Cox, Frans Kaashoek and Robert Morris (PDF, HTML)
### Parallel Programming
* [High Performance Computing ](http://cnx.org/contents/bb821554-7f76-44b1-89e7-8a2a759d1347%405.2 ) - Charles Severance, Kevin Dowd (PDF, ePUB)
* [High Performance Computing Training ](https://hpc.llnl.gov/documentation/tutorials ) (LLNL materials)
* [High-Performance Scientific Computing ](https://andreask.cs.illinois.edu/Teaching/HPCFall2012 ) (class lectures and slides)
* [Introduction to High-Performance Scientific Computing ](http://pages.tacc.utexas.edu/~eijkhout/istc/istc.html ) - Victor Eijkhout
* [Introduction to Parallel Computing ](https://hpc.llnl.gov/documentation/tutorials/introduction-parallel-computing-tutorial ) - Blaise Barney
* [Is Parallel Programming Hard, And, If So, What Can You Do About It? ](https://www.kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.html ) - Paul E. McKenney
* [Programming on Parallel Machines; GPU, Multicore, Clusters and More ](http://heather.cs.ucdavis.edu/parprocbook ) - Norm Matloff
Kerridge (PDF) (email address *requested* , not required)
* [The OpenCL Programming Book ](https://us.fixstars.com/products/opencl/book/OpenCLProgrammingBook/contents/ )
### Partial Evaluation
* [Partial Evaluation and Automatic Program Generation ](https://www.itu.dk/people/sestoft/pebook/ ) - Neil D. Jones, C.K. Gomard, Peter Sestoft (PDF)
### Professional Development
* [Clean Code Developer: An initiative for more professionalism in software development ](https://www.gitbook.com/book/ccd_school/clean-code-developer-com/details ) *(:construction: in process)*
* [Confessions of an IT Manager ](https://www.red-gate.com/library/confessions-of-an-it-manager ) - Phil Factor (PDF)
* [Don't Just Roll the Dice ](https://www.red-gate.com/library/dont-just-roll-the-dice ) - Neil Davidson (PDF)
* [How to Do What You Love & Earn What You’re Worth as a Programmer ](https://leanpub.com/dowhatyoulove/read ) - Reginald Braithwaite
* [How to Learn to Code & Get a Developer Job in 2023 ](https://www.freecodecamp.org/news/learn-to-code-book ) - Quincy Larson
* [How to Stand Out as a Software Engineer ](https://github.com/lvndry/how-to-stand-out-as-a-software-engineer/blob/main/how_to_stand_out_as_a_software_engineer.pdf ) - Landry Monga (PDF)
* [Professional Software Development For Students ](https://mixmastamyk.bitbucket.io/pro_soft_dev/intro.html ) - Mike G. Miller
* [Software Engineering at Google ](https://abseil.io/resources/swe-book ) - Titus Winters, Tom Manshreck, Hyrum Wright
* [Software Environment Concepts ](https://softwareconcepts.vercel.app ) - Amr Elmohamady *(:construction: in process)*
* [Teaching Tech Together ](http://teachtogether.tech/en/ ) - Greg Wilson (HTML)
* [What I've Learned From Failure ](https://leanpub.com/shippingsoftware/read ) - Reginald Braithwaite
Update free-programming-books-subjects.md (#9275)
* 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
2 years ago
### Programming
* [A Short Introduction to the Art of Programming (1971) ](https://www.cs.utexas.edu/users/EWD/transcriptions/EWD03xx/EWD316.html ) - Edsger W. Dijkstra (HTML)
Update free-programming-books-subjects.md (#9275)
* 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
2 years ago
* [Design of a Programmer ](https://www.smashwords.com/books/view/639609 ) - Prakash Hegade (PDF)
* [Introduction to Computer Science ](https://www.cse.iitd.ernet.in/~suban/CSL102/ ) - Subhashis Banerjee, IIT Delhi
* [Introduction to Computing ](https://www.computingbook.org ) - David Evans
Update free-programming-books-subjects.md (#9275)
* 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
2 years ago
* [Principled Programming / Introduction to Coding in Any Imperative Language ](https://www.cs.cornell.edu/info/people/tt/Principled_Programming.html ) - Tim Teitelbaum
* [Programming and Programming Languages ](https://papl.cs.brown.edu/2019/ ) - Shriram Krishnamurthi
* [Programming Languages: Application and Interpretation (2nd Edition) ](https://cs.brown.edu/~sk/Publications/Books/ProgLangs/ ) - Shriram Krishnamurthi
* [Structure and Interpretation of Computer Programs ](https://web.mit.edu/6.001/6.037/sicp.pdf ) - Harold Abelson, Gerald Jay Sussman, Julie Sussman (PDF) (CC BY-SA)
* [Structure and Interpretation of Computer Programs ](https://sarabander.github.io/sicp/html/index.xhtml ) - Harold Abelson, Gerald Jay Sussman, Julie Sussman (HTML) (CC BY-SA)
Update free-programming-books-subjects.md (#9275)
* 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
2 years ago
* [The Black Art of Programming ](http://self.gutenberg.org/wplbn0002828847-the-black-art-of-programming-by-mcilroy-mark.aspx? ) - Mark McIlroy
* [The Craft of Programming ](https://kilthub.cmu.edu/articles/The_Craft_of_Programming/6610514 ) - John C. Reynolds
* [The Nature of Code ](https://natureofcode.com/book ) - Daniel Shiffman (HTML)
* [The Super Programmer ](https://github.com/keyvank/tsp ) - Keyvan Kambakhsh (PDF, HTML) *(:construction: in process)*
Update free-programming-books-subjects.md (#9275)
* 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
2 years ago
* [Think Complexity ](https://greenteapress.com/wp/think-complexity-2e/ ) - - Allen B. Downey (2nd Edition) (PDF, HTML)
### Programming Paradigms
* [Flow based Programming ](https://jpaulmorrison.com/fbp/ ) - J Paul Morrison
* [Introduction to Functional Programming ](https://www.cl.cam.ac.uk/teaching/Lectures/funprog-jrh-1996/ ) - J. Harrison
* [Making Sense of Stream Processing ](https://assets.confluent.io/m/2a60fabedb2dfbb1/original/20190307-EB-Making_Sense_of_Stream_Processing_Confluent.pdf ) - Martin Kleppmann (PDF)
* [Mostly Adequate Guide to Functional Programming ](https://mostly-adequate.gitbooks.io/mostly-adequate-guide/content/ ) - Mostly Adequate Core Team
* [The Pure Function Pipeline Data Flow v3.0 ---- the Grand Unified Programming Theory ](https://github.com/linpengcheng/PurefunctionPipelineDataflow ) - Lin Pengcheng
* [Type Theory and Functional Programming ](https://www.cs.kent.ac.uk/people/staff/sjt/TTFP/ )
### Prompt Engineering
* [DALLE-E 2 prompt book ](https://dallery.gallery/wp-content/uploads/2022/07/The-DALL%C2%B7E-2-prompt-book.pdf ) - Dallery.Gallery, Guy Parson (PDF)
* [Guide to Prompt Engineering ](https://codeahoy.com/learn/promptengineering/toc ) - CodeAhoy (HTML)
* [Prompt Engineering Guide ](https://www.promptingguide.ai ) - DAIR.AI (HTML)
### Quantum Computing
* [Introduction to Classical and Quantum Computing ](https://www.thomaswong.net/introduction-to-classical-and-quantum-computing-1e3p.pdf ) - Thomas G. Wong (PDF)
* [Introduction to Quantum Information ](https://www.gla.ac.uk/media/Media_344957_smxx.pdf ) - Stephen M. Barnett (PDF)
* [Learn Quantum Computation using Qiskit ](https://qiskit.org/textbook/preface.html ) - Frank Harkins, et al. (HTML)
* [Quantum Algorithms ](https://arxiv.org/pdf/0808.0369v1 ) - Michele Mosca (PDF)
* [Quantum Computing for the Quantum Curious ](https://link.springer.com/book/10.1007/978-3-030-61601-4 ) - Ciaran Hughes, Joshua Isaacson, Anastasia Perry, Ranbel F. Sun, Jessica Turner (HTML, PDF, EPUB)
* [Quantum Information Theory ](https://markwilde.com/qit-notes.pdf ) - Mark M. Wilde (PDF)
* [The Functional Analysis of Quantum Information Theory ](https://arxiv.org/abs/1410.7188 ) - Ved Prakash Gupta, Prabha Mandayam, V. S. Sunder (PDF)
### Regular Expressions
* [JavaScript RegExp ](https://learnbyexample.github.io/learn_js_regexp/ ) - Sundeep Agarwal
* [Python re(gex)? ](https://learnbyexample.github.io/py_regular_expressions/ ) - Sundeep Agarwal
* [Regular Expressions for Regular Folk ](https://refrf.shreyasminocha.me ) - Shreyas Minocha
* [RexEgg ](https://www.rexegg.com )
* [Ruby Regexp ](https://learnbyexample.github.io/Ruby_Regexp/ ) - Sundeep Agarwal
* [The 30 Minute Regex Tutorial ](https://www.codeproject.com/Articles/9099/The-Minute-Regex-Tutorial ) - Jim Hollenhorst
### Reverse Engineering
* [BIOS Disassembly Ninjutsu Uncovered 1st Edition ](https://bioshacking.blogspot.co.uk/2012/02/bios-disassembly-ninjutsu-uncovered-1st.html ) - Darmawan Salihun (PDF)
* [Hacking the Xbox: An Introduction to Reverse Engineering ](https://www.nostarch.com/xboxfree/ ) - Andrew "bunnie" Huang
* [iOS App Reverse Engineering ](https://github.com/iosre/iOSAppReverseEngineering ) (PDF)
### Search Engines
* [Elasticsearch Certified Engineer notes ](https://www.pistocop.dev/posts/es_engineer_exam_notes/ ) - (HTML)
* [Elasticsearch: The Definitive Guide ](https://www.elastic.co/guide/en/elasticsearch/guide/current/index.html ) ([fork it on GH](https://github.com/elastic/elasticsearch-definitive-guide))
* [Search Engines: Information Retrieval in Practice ](https://ciir.cs.umass.edu/irbook ) - W. Bruce Croft, Donald Metzler, Trevor Strohman (PDF)
* [Solr for newbies workshop (2019) ](https://github.com/hectorcorrea/solr-for-newbies ) - Hector Correa ([PDF](https://github.com/hectorcorrea/solr-for-newbies/blob/master/tutorial.pdf))
### Security & Privacy
* [A Graduate Course in Applied Cryptography ](https://toc.cryptobook.us )
* [Crypto 101 - Crypto for everyone ](https://www.crypto101.io )
* [Cryptography ](https://en.wikibooks.org/wiki/Cryptography ) - Wikibooks (HTML) *(:construction: in process)*
* [CryptoParty Handbook ](https://unglue.it/work/141611/ )
* [Gray Hat Hacking: The Ethical Hacker's Handbook ](https://pages.cs.wisc.edu/~ace/media/gray-hat-hacking.pdf ) - Allen Harper, Jonathan Ness, Chris Eagle, Shon Harris, Gideon Lenkey, Terron Williams (PDF)
* [Handbook of Applied Cryptography ](https://cacr.uwaterloo.ca/hac/index.html )
* [How HTTPS works ](https://howhttps.works ) - dnsimple
* [How to deal with Passwords ](https://github.com/MHM5000/pass )
* [Information Security Management ](https://www.infosecuritybook.com ) - Marcos Sêmola (PDF)
* [Intrusion Detection Systems with Snort ](https://ptgmedia.pearsoncmg.com/images/0131407333/downloads/0131407333.pdf ) (PDF)
* [OpenSSL Cookbook ](https://www.feistyduck.com/library/openssl-cookbook/ )
* [OWASP Mobile Security Testing Guide ](https://mobile-security.gitbook.io/mobile-security-testing-guide/ ) - Bernhard Mueller et al.
* [OWASP Testing Guide 4.2 ](https://owasp.org/www-project-web-security-testing-guide/v42/ ) - The OWASP® Foundation (HTML, [PDF ](https://github.com/OWASP/wstg/releases/download/v4.2/wstg-v4.2.pdf ))
* [OWASP Top 10 for .NET Developers ](https://www.troyhunt.com/2011/12/free-ebook-owasp-top-10-for-net.html )
* [Practical Cryptography for Developer ](https://cryptobook.nakov.com ) - Svetlin Nakov (GitBook) (:construction: *in process* )
* [Programming Differential Privacy ](https://programming-dp.com ) - Joseph Near, Chiké Abuah (HTML, PDF)
* [Security Engineering ](https://www.cl.cam.ac.uk/~rja14/book.html )
* [The Joy of Cryptography (2021) ](https://joyofcryptography.com/pdf/book.pdf ) - Mike Rosulek (PDF)
* [The MoonMath Manual to zk-SNARKs ](https://leastauthority.com/community-matters/moonmath-manual/ ) - Least Authority
### Software Architecture
* [A Primer on Design Patterns ](https://leanpub.com/aprimerondesignpatterns/read ) - Rahul Batra (HTML)
* [Agile Planning: From Ideas to Story Cards ](https://launchschool.com/books/agile_planning ) - Launch School
* [Architectural Styles and the Design of Network-based Software Architectures ](https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm ) - Roy Thomas Fielding
* [Best Kept Secrets of Peer Code Review ](https://smartbear.com/lp/ebook/collaborator/secrets-of-peer-code-review/ )
* [Building Secure & Reliable Systems ](https://static.googleusercontent.com/media/landing.google.com/en//sre/static/pdf/Building_Secure_and_Reliable_Systems.pdf ) - Heather Adkins, Betsy Beyer, Paul Blankinship, Piotr Lewandowski, Ana Oprea, Adam Stubblefield (PDF)
* [Code Simplicity: The Fundamentals of Software ](https://www.codesimplicity.com/book.pdf ) - Max Kanat-Alexander (PDF)
* [Data-Oriented Design ](https://www.dataorienteddesign.com/dodmain/dodmain.html )
* [Designing Event-Driven Systems. Concepts and Patterns for Streaming Services with Apache Kafka ](https://assets.confluent.io/m/7a91acf41502a75e/original/20180328-EB-Confluent_Designing_Event_Driven_Systems.pdf ) - Ben Stopford (PDF)
* [Developing Reactive Microservices ](https://info.lightbend.com/COLL-20XX-Developing-Reactive-Microservices_Landing-Page.html ) (email address *requested* , not required)
* [Domain Driven Design Quickly ](https://www.infoq.com/minibooks/domain-driven-design-quickly )
* [Domain-Driven Design Reference ](https://www.domainlanguage.com/ddd/reference ) - Eric Evans
* [DSL Engineering: Designing, Implementing and Using Domain-Specific Languages ](http://dslbook.org ) - Markus Voelter
* [Exploring CQRS and Event Sourcing ](https://docs.microsoft.com/en-us/previous-versions/msp-n-p/jj554200(v=pandp.10 )) - Dominic Betts, Julián Domínguez, Grigori Melnik, Mani Subramanian, Fernando Simonazzi ([EPUB, PDF](https://www.microsoft.com/en-us/download/details.aspx?id=34774) - [code samples ](https://go.microsoft.com/fwlink/p/?linkid=258571 ))
* [Guide to the Software Engineering Body of Knowledge ](https://www.computer.org/education/bodies-of-knowledge/software-engineering/v3 ) (email address *requested* )
* [How to Design Programs ](https://www.htdp.org )
* [How to Write Unmaintainable Code ](https://mindprod.com/jgloss/unmain.html )
* [Kanban and Scrum - making the most of both ](https://www.infoq.com/minibooks/kanban-scrum-minibook )
* [Microservices AntiPatterns and Pitfalls ](http://web.archive.org/web/20210205164251/https://www.oreilly.com/programming/free/files/microservices-antipatterns-and-pitfalls.pdf ) - Mark Richards (PDF) *(:card_file_box: archived)*
* [Microservices vs. Service-Oriented Architecture ](https://www.oreilly.com/radar/microservices-vs-service-oriented-architecture/ ) - Mark Richards (HTML)
* [Migrating to Cloud-Native Application Architectures ](https://developers.redhat.com/books/migrating-microservice-databases-relational-monolith-distributed-data/ ) (email address *requested* ) (PDF)
* [Naked objects ](http://downloads.nakedobjects.net/resources/Pawson%20thesis.pdf ) - Richard Pawson (PDF)
* [OAuth - The Big Picture ](https://pages.apigee.com/oauth-big-picture-ebook.html ) (email address *requested* )
* [Object-Oriented Reengineering Patterns ](https://scg.unibe.ch/download/oorp/ ) - S. Demeyer, S. Ducasse, O. Nierstrasz
* [Practicing Domain-Driven Design - Part 1 ](https://leanpub.com/Practicing-DDD ) - Scott Millett *(Leanpub account or valid email requested)*
* [Reactive Microservices Architecture ](https://www.lightbend.com/ebooks/reactive-microservices-architecture-design-principles-for-distributed-systems-oreilly ) (email address *requested* )
* [Reactive Microsystems: The Evolution of Microservices at Scale ](https://www.lightbend.com/ebooks/reactive-microsystems-evolution-of-microservices-scalability-oreilly ) (email address *requested* )
* [Refactor Like a Superhero ](https://github.com/bespoyasov/refactor-like-a-superhero-online-book/blob/main/manuscript-en/README.md ) - Alex Bespoyasov
* [Scrum and XP from the Trenches ](https://www.infoq.com/minibooks/scrum-xp-from-the-trenches-2 )
* [Serverless apps: Architecture, patterns, and Azure implementation ](https://docs.microsoft.com/en-us/dotnet/standard/serverless-architecture/ )
* [Serverless Design Patterns and Best Practices ](https://www.packtpub.com/free-ebooks/serverless-design-patterns-and-best-practices ) - Brian Zambrano (Packt account *required* )
* [Shape Up - Stop Running in Circles and Ship Work that Matters ](https://basecamp.com/shapeup ) - Ryan Singer (PDF)
* [Site Reliability Engineering ](https://landing.google.com/sre/book/index.html )
* [Software Architecture Patterns ](https://www.oreilly.com/programming/free/software-architecture-patterns.csp ) (email address *requested* , not required)
* [Software Engineering for Internet Applications ](https://philip.greenspun.com/seia/ )
* [Source Making Design Patterns and UML ](https://sourcemaking.com/design_patterns )
* [Test Driven Development, Extensive Tutorial ](https://github.com/grzesiek-galezowski/tdd-ebook ) - Grzegorz Gałęzowski
* [The Catalog of Design Patterns ](https://refactoring.guru/design-patterns/catalog )
* [The Site Reliability Workbook ](https://landing.google.com/sre/workbook/toc/ ) - Betsy Beyer, Niall Richard Murphy, David K. Rensin, Kent Kawahara, Stephen Thorne
* [Web API Design ](https://pages.apigee.com/rs/apigee/images/api-design-ebook-2012-03.pdf ) - Brian Mulloy (PDF)
* [Working with Web APIs ](https://launchschool.com/books/working_with_apis ) - Launch School
* [Your API Is Bad ](https://leanpub.com/yourapiisbad/read ) - Paddy Foran
### Standards
* [Linux Standard Base ](https://refspecs.linuxfoundation.org/lsb.shtml )
* [UNIX - The POSIX Standard - IEEE Std 1003.1 ](https://github.com/geoff-codes/posix-standard )
### Theoretical Computer Science
* [Building Blocks for Theoretical Computer Science ](https://mfleck.cs.illinois.edu/building-blocks/index.html ) - Margaret M. Fleck
* [Category Theory for Computing Science ](http://www.tac.mta.ca/tac/reprints/articles/22/tr22.pdf ) (PDF)
* [Category Theory for Programmers ](https://github.com/hmemcpy/milewski-ctfp-pdf ) - Bartosz Milewski (PDF)
* [Delftse Foundations of Computation ](https://textbooks.open.tudelft.nl/textbooks/catalog/book/13 ) - Stefan Hugtenburgand, Neil Yorke-Smith @ TU Delft Open (PDF)
* [Homotopy Type Theory: Univalent Foundations of Mathematics ](https://homotopytypetheory.org/book/ ) (PDF)
* [Introduction to Theory of Computation ](https://cglab.ca/~michiel/TheoryOfComputation/ ) - Anil Maheshwari, Michiel Smid (PDF)
* [Models of Computation ](https://cs.brown.edu/people/jes/book/ ) - John E. Savage
* [Principles of Programming Languages ](https://web.archive.org/web/20150418034451/http://www.cs.jhu.edu/~scott/pl/book/dist/ ) - Scott F. Smith *(:card_file_box: archived)*
* [Programming in Martin-Löf's Type Theory ](https://www.cse.chalmers.se/research/group/logic/book/ ) - Bengt Nordstroem
* [Programming Languages: Application and Interpretation (2nd Edition) ](https://cs.brown.edu/~sk/Publications/Books/ProgLangs/ ) - Shriram Krishnamurthi
* [Programming Languages: Theory and Practice ](http://people.cs.uchicago.edu/~blume/classes/aut2008/proglang/text/offline.pdf ) - Robert Harper (PDF)
* [Semantics with Applications: A Formal Introduction ](https://www.cs.ru.nl/~herman/onderwijs/semantics2019/wiley.pdf ) - Hanne Riis Nielson, Flemming Nielson (PDF)
### <a id="version-control-systems"></a><a id="git"></a><a id="svn"></a><a id="subversion"></a><a id="mercurial"></a>Version Control Systems
* [A git Primer ](https://danielmiessler.com/study/git/ ) - Daniel Miessler
* [A Visual Git Reference ](https://marklodato.github.io/visual-git-guide/index-en.html ) - Mark Lodato
* [Conversational Git ](https://blog.anvard.org/conversational-git/ ) - Alan Hohn
* [get-git ](https://get-git.readthedocs.io/en/latest/ ) - Arialdo Martini (HTML, PDF, EPUB)
* [git - the simple guide ](https://rogerdudler.github.io/git-guide/ ) - Roger Dudler (HTML)
* [Git cookbook ](https://git.seveas.net/about.html ) - Dennis Kaarsemaker (HTML)
* [Git for Computer Scientists ](https://eagain.net/articles/git-for-computer-scientists/ ) - Tommi Virtanen
* [Git From The Bottom Up ](https://jwiegley.github.io/git-from-the-bottom-up/ ) - J. Wiegley
* [Git Immersion ](https://gitimmersion.com ) - Jim Weirich (HTML)
* [Git In The Trenches ](https://cbx33.github.io/gitt/index.html ) - Peter Savage
* [Git internals ](https://github.com/pluralsight/git-internals-pdf/raw/master/drafts/peepcode-git.pdf ) - Scott Chacon (PDF)
* [Git Magic ](http://www-cs-students.stanford.edu/~blynn/gitmagic/ ) - Ben Lynn, et al. (HTML, PDF, EPUB)
* [Git Notes for Professionals ](https://goalkicker.com/GitBook ) - Compiled from StackOverflow Documentation (PDF)
* [Git Pocket Guide ](https://www.oreilly.com/library/view/git-pocket-guide/9781449327507 ) - Richard E. Silverman
* [Git Reference ](https://web.archive.org/web/20170602211147/http://gitref.org/ ) - The GitHub team *(:card_file_box: archived)*
* [Git Succinctly, Syncfusion ](https://www.syncfusion.com/resources/techportal/ebooks/git ) - Ryan Hodson (PDF, Kindle) (email address *requested* , not required)
* [Git Tutorial ](https://www.tutorialspoint.com/git/ ) - Tutorials Point (HTML, PDF)
* [Git-Tutorial For-Beginners ](https://product.hubspot.com/blog/git-and-github-tutorial-for-beginners ) - HubSpot Product Team
* [Git Workflows ](https://web.archive.org/web/20210910133251/http://documentup.com/skwp/git-workflows-book ) - Yan Pritzker *(:card_file_box: archived)*
* [Happy Git and GitHub for the useR ](https://happygitwithr.com ) - Jenny Bryan
* [Hg Init: a Mercurial Tutorial ](https://hginit.github.io ) - Joel Spolsky
* [How to Collaborate on GitHub: A mini book about collaborating on GitHub ](https://github.com/eonist/How-to-collaborate-on-github ) - André J
* [Introduction to Git and Github ](https://launchschool.com/books/git ) - Launch School
* [Introduction to Git and Github - Tutorial ](https://cse.unl.edu/~cbourke/gitTutorial.pdf ) - Chris Bourke (PDF)
* [Introduction to Git and GitHub eBook ](https://github.com/bobbyiliev/introduction-to-git-and-github-ebook ) - Bobby Iliev (Markdown, PDF)
* [Learn Git - Learn Version Control with Git ](https://www.git-tower.com/learn/git/ebook/command-line/introduction ) - Tobias Günther
* [Mercurial: The Definitive Guide ](http://hgbook.red-bean.com ) - Bryan O'Sullivan
* [Mercurial: The Definitive Guide 2nd edition ](https://book.mercurial-scm.org ) - Bryan O'Sullivan
* [Pro Git ](https://git-scm.com/book/en/ ) - Scott Chacon, Ben Straub (HTML, PDF, EPUB, Kindle)
* [Pro Git Reedited ](https://leanpub.com/progitreedited/read ) - Jon Forrest
* [Ry's Git Tutorial ](https://web.archive.org/web/20161121145226/http://rypress.com:80/tutorials/git/index ) - Ryan Hodson *(:card_file_box: archived)*
* [Subversion Version Control ](https://ptgmedia.pearsoncmg.com/images/0131855182/downloads/Nagel_book.pdf ) - William Nagel (PDF)
* [Think Like (a) Git: A Guide for the Perplexed ](https://think-like-a-git.net ) - Sam Livingston-Gray
* [Version Control with Subversion ](https://svnbook.red-bean.com/index.en.html ) - Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato
### Web Performance
* [Book of Speed ](https://www.bookofspeed.com ) - Stoyan Stefanov
* [Designing for Performance ](https://designingforperformance.com ) - Lara Hogan
* [High Performance Accelerated Websites ](https://thisisyuu.github.io/ebook ) - Anshul (HTML) *(:construction: in process)*
* [High Performance Browser Networking ](https://hpbn.co ) - Ilya Grigorik
* [Mature Optimization ](https://carlos.bueno.org/optimization/mature-optimization.pdf ) - Carlos Bueno (PDF)
### Web Services
* [RESTful Web Services ](http://restfulwebapis.org/RESTful_Web_Services.pdf ) (PDF)
### Workflow
* [Declare Peace on Virtual Machines. A guide to simplifying vm-based development on a Mac ](https://leanpub.com/declarepeaceonvms/read )