Open Source Documents
repo: 44bits/awesome-opensource-documents
category: Media
related: Free Programming Books
Awesome Open Source Documents
This is not a list of free programming books. This is a curated list of open source or open source licensed documents, guides, and books which can be read, used, modified, translated, redistributed and even rewritten under their same license.
Document Template
[TITLE][repository-url] by AUTHOR ([SITE][site-url], LICENSE) - SHORT DESCRIPTION
Table of Contents
<a name='subjects'></a>
Subjects
<a name='computer_science'></a>
Computer Science
- Crypto 101 (Site, cc-nc) - the introductory book on cryptography
- The little book about OS development (Site, cc-nc-sa) - This is the source code for the book "The little book about OS development"
- How to Design Programs (Site, cc-nc-nd)
- Structure and Interpretation of Computer Programs (Site, cc-sa)
- Programming Languages: Application and Interpretation (Site, cc-nc-sa)
- Practical Foundations for Programming Languages (Site, cc-nc-nd)
- Open Data Structures (Site, cc) - To provide a high-quality open content data structures textbook that is both mathematically rigorous and provides complete implementation
- Algorithms, Etc. (Site, cc-nc-sa) - This page contains lecture notes and other course materials for various algorithms classes Jeff Erickson have taught at the University of Illinois, Urbana-Champaign.
- Introduction to Theory of Computation (Site, cc-sa) - This is a free textbook for an undergraduate course on the Theory of Computation, which we have been teaching at Carleton University since 2002
- Discrete Structures for Computer Science: Counting, Recursion, and Probability (Site, cc-nc-sa) - This is a free textbook for an undergraduate course on Discrete Structures for Computer Science, which I have been teaching at Carleton University since 2013
- graphbook (GNU-FDL) - A GNU-FDL book on algorithmic graph theory by David Joyner, Minh Van Nguyen, and David Phillips. This is an introductory book on algorithmic graph theory
- Operating Systems and Middleware: Supporting Controlled Interaction (Site cc-sa) - free, modifiable textbook on operating systems principles
- Programming on Parallel Machines (Site, cc-nd) - The purpose of this book is to help you program shared-memory parallel machines without risking your sanity
- Is Parallel Programming Hard, And, If So, What Can You Do About It? (Site, cc-sa) - The purpose of this book is to teach new programmers and scientists about the basics of High Performance Computing
- High Performance Computing (Site, cc)
- Natural Language Processing for the Working Programmer (Site, cc) - We will go into many of the techniques that so-called computational linguists use to analyze the structure of human language, and transform it into a form that computers work with
- Fundamentals of Programming: With Object Oriented Programming (Site, cc-nc-sa) - This book presents a balanced and flexible approach to the incorporation of object-oriented principles in introductory courses using Python
- Introduction to Computing (Site, cc-nc-sa) - This book introduces the most important ideas in computing using the Scheme and Python programming languages. It focuses on how to describe information processes by defining procedures, how to analyze the costs required to carry out a procedure, and the fundamental limits of what can and cannot be computed mechanically
- Computer Science from the Bottom Up (Site, cc-sa) - Computer Science from the Bottom Up — A free, online book designed to teach computer science from the bottom end up. Topics covered include binary and binary logic, operating systems internals, toolchain fundamentals and system library fundamentals
- Problem Solving with Algorithms and Data Structures (Site, cc-nc-sa) - Examples and work from Problem Solving with Algorithms and Data Structures Using Python
- Data Compression Explained (Site, custom liscense) - This book is for the reader who wants to understand how data compression works, or who wants to write data compression software.
<a name='data_science'></a>
Data Science and Statistics
- LearnDataScience (BSD) - Open Content for self-directed learning in data science
- Think Stats (Site, cc-sa) - Probability and Statistics for Programmers
- A Brief Introduction to Neural Networks (Site, cc-nc-nd)
- Data Mining for the Masses (PDF, cc)
- Bayesian Methods for Hackers (Site, MIT) - An intro to Bayesian methods and probabilistic programming from a computation/understanding-first, mathematics-second point of view
- Journal of Statistical Software (Site, cc-by)
- The Book Of Jupyter (Site, cc) - This is some of the material that covers the advanced Jupyter/IPython SciPy tutorial that is/was/will be given in July 2015
<a name='devops'></a>
Devops
- Ops School Curriculum (Site, cc) - Ops School is a comprehensive program that will help you learn to be an operations engineer
- Twelve Factor App (Site, MIT) - The twelve-factor app is a methodology for building software-as-a-service apps
- Digital Oceans - Tutorials (Site, cc-nc-sa) - development and sysadmin tutorials
- .htaccess Snippets (Public Domain) - A collection of useful .htaccess snippets, all in one place.
- Travis CI (Site, MIT) - Documentation for Travis
- CoreOS Documentation (Site, Apache 2.0) - Documentation for CoreOS
- Packer Documentation (Site, MPL) - Documentation for Packer
- The Art of Command Line (cc-sa) - Master the command line, in one page
- Command Line Text Processing (Site, cc-nc-sa) - From finding text to search and replace, from sorting to beautifying text and more
- Linux Command Line (Site, cc-nc-sa) - Introduction to Linux commands and Shell scripting
<a name='mathematics'></a>
Mathematics & Physics
- Homotopy type theory (Site, BSD) - Homotopy Type Theory is an interpretation of Martin-Löf’s intensional type theory into abstract homotopy theory.
- Collision Detection (Site, cc-nc-sa) - A book and examples on collision detection
<a name='open_source'></a>
Open Source
- The Architecture of Open Source Applications 1 (Site, cc-nc-sa)
- The Architecture of Open Source Applications 2 (Site, cc-nc-sa)
- The Performance of Open Source Applications (Site, cc-nc-sa)
- Free Software Free Society: Selected Essays (Site, GNU-FDL) - The Architecture of Open Source Applications
- Free as in Freedom (2.0) (Site, GNU-FDL) - Free as in Freedom (2.0) is Stallman's revision of the original biography.
- The Daemon, the GNU & the Penguin ~ by Dr. Peter Salus (Site, cc-nc-nd)
<a name='progromming'></a>
Programming
- 500 Lines or Less (cc & mit) - This is the source for the book 500 Lines or Less, the fourth in the Architecture of Open Source Applications series.
- Guides (cc) - Guides for getting things done, programming well, and programming in style.
- An App Launch Guide (Site, Public Domain) - This guide goes through all of the necessary steps for validating, building, marketing, and launching your product, specifically focused on app dev.
- Reverse Engineering for Beginners (Site, cc-nc-nd) - Topics discussed: x86/x64, ARM/ARM64, MIPS, Java/JVM.
- Build Podcast (Site, Public Domain) - Build Podcast is a show about technology tools for design and development all in the fun spirit of hacking, creating and building stuff!
- Mozilla Developer Network (Site, cc-by-sa) - Shared knowledge for the Open Web
- The Little Introduction To Programming (Site, cc-nc) - This book will teach you the fundamentals of programming and act as a foundation for whatever your programming goals may be.
- The Programming Historian (Site, cc) - The Programming Historian is an online, open-access, peer-reviewed suite of tutorials that help humanists learn a wide range of digital tools, techniques, and workflows to facilitate their research.
- WHAT IS CODE? (Site, cc-nc-nd) - Paul Ford’s “What Is Code?”
<a name='database'></a>
Database
- Elasticsearch - The Definitive Guide (Site, cc-nc-nd) - The Definitive Guide to Elasticsearch
<a name='world_wide_web'></a>
World Wide Web
- HTTP API Design Guide (cc) - HTTP API design guide extracted from work on the Heroku Platform API
- Dive Into HTML5 (Site, cc) - Dive Into HTML5 elaborates on a hand-picked selection of features from the HTML5 specification and other fine standards
- Web Fundamentals (Site, Apache 2.0) - Best practices for modern web development
- Code Guide (Site, MIT) - Standards for flexible, durable, and sustainable HTML and CSS
- HTML Best Practices (cc0) - For writing maintainable and scalable HTML documents
- WebComponents.org (Site, cc-sa) - A place to discuss and evolve Web Component best-practices
- How to lose weight (in the browser) (Site, cc-sa, MIT) - The definitive front-end performance guide
- North (Site, MIT) - MIT Design and development standards to align and guide your project.
- RESTful Web APIs (Site, cc-nc-nd) - Restful Web APIs was the first book-length treatment of RESTful design, and the predecessor to RESTful Web APIs.
- DOM Enlightenment (Site, cc-nc-nd) - Exploring the relationship between JavaScript and the modern HTML DOM
- http2 explained (Site, cc-nc-nd) - http2 explained is a detailed document explaining and documenting HTTP/2, the successor to the widely popular HTTP/1.1 protocol
- RESTful API Guidelines (Site, cc) - Comprehensive, "API First" design guidelines developed by Zalando
<a name='writing_and_documentation'></a>
Writing and Documentation
- Write the Docs (Site, cc) - A place for Sphinx documentation and general writing of things.
- The Hitchhiker's Guide to Documentation! (Site, cc-nc-sa) - This Guide exists to provide advices and a best-practice handbook about creating documentation.
- CommonMark Spec (Site, cc-sa) - CommonMark is a rationalized version of Markdown syntax, with a spec and BSD-licensed reference implementations in C and JavaScript.
- reStructuredText Markup Specification (Site, Public Domain)
- Prose for Programmers (cc-nc-nd) - A book to help software developers write better prose.
<a name='journalism_and_visualization'></a>
Journalism and Visualization
- Data Journalism Handbook (cc-sa) - The Data Journalism Handbook is a free, open source reference book for anyone interested in the emerging field of data journalism
- Intro to D3.js (Site, Apache 2.0) - The tutorial provides a quick intro to D3.js, a Javascript library for creating data visualizations in the browser.
- The Nature of Code (Site, cc-nc, LGPL) - This book focuses on the programming strategies and techniques behind computer simulations of natural systems using Processing
- Data Science 45-min Intros (Public Domain) - Ipython notebook presentations for getting starting with basic programming, statistics and machine learning techniques
- Data + Design (Site, cc-nc-sa) - A Simple Introduction to Preparing and Visualizing Information
- D3 101 Screencasts (Site, MIT) - Curran Kelleher's D3.js screencasts
- Thematic Cartography Guide (Site, cc-nc) - A short, friendly guide to basic principles of thematic mapping.
<a name='android_development'></a>
Android Development
- Android Developers - API Guide (Site, cc) - Documentation for Android development
- Best practices in Android development (cc) - Do's and Don'ts for Android development, by Futurice developers
<a name='ios_development'></a>
IOS Development
- iOS Good Practices (cc) - Good ideas for iOS development, by Futurice developers.
- iOS Developer and Designer Interview Questions (MIT) - A small guide to help those looking to hire a developer or designer for iOS work.
<a name='subject-etc'></a>
ETC
- Cocktails for programmers (MIT) - Сocktails for programmers. Коктейли для программистов.
- Solarized (Site, MIT) - Precision colors for machines and people
- ØMQ - The Guide (Site cc-nc-sa) - Learning and Using ØMQ
- NPR Visuals' Best Practices (cc) - Best practices and coding conventions for the NPR Visuals team.
- 10up Engineering Best Practices (Site, MIT) - This guide dictates how we, as a company, engineer websites
- Peco REAMDE (MIT) - Documenatation for Peco(Simplistic interactive filtering tool)
- Learn X in Y minutes (Site, cc-sa) - Take a whirlwind tour of your next favorite language. Community-driven!
- RxMarbles (Site, BSD) - Interactive diagrams of Rx Observables
<a name="programming_languages"></a>
Programming Languages
<a name='language-assembly'></a>
Assembly
- Some Assembly Required (cc-sa) - An approachable introduction to Assembly
<a name='language-c'></a>
C
- C Style (cc-sa) - My favorite C programming practices
- C Programming (Site, cc-sa) - comprehensive look at the C programming language and its features
<a name='coffeescript'></a>
Cofeescript
- Cofeescript Cookbook (Site, cc) - CoffeeScript recipes for the community by the community.
<a name='css'></a>
CSS
- Bootstrap (Site, cc) - Bootstrap is the most popular HTML, CSS, and JS framework for developing responsive, mobile first projects on the web.
- idiomatic CSS (cc) - Principles of writing consistent
- Font Awesome (Site, cc) - The iconic font and CSS toolkit
<a name='fortran'></a>
Fortran
- Introduction to Programming using Fortran 95 (Site, cc-nc-sa) - This text provides an introduction to programming and problem solving using the Fortran 95 programming language.
<a name='ruby'></a>
Ruby
- Why's Poignant Guide to Ruby (Site, cc-sa) - This is just a small Ruby book. It won’t crush you. It’s light as a feather
- Rails Guide (Site, cc-sa) - Official Guide for Ruby on Rails
- The Rails Style Guide (cc) - A community-driven Ruby on Rails 4 style guide
- Ruby Style Guide (cc) - A community-driven Ruby coding style guide
- Better Spec (Site, MIT) - RSpec Best Practices
- Ruby Hacking Guide (Site, cc-nc-sa) - Ruby hacking guide english translation
- Practicing Ruby (Site, cc-sa) - We provide concentrated doses of programming experience across a wide range of different topics
- Ruby Best Practices (cc-nc-sa) - Ruby Best Practices, by Gregory Brown
- Neo Ruby Koans (Site, cc-nc-sa) - A set of Koans to teach the Ruby language
- Middleman (Site, cc) - Documentation for Middleman
- Jekyll (Site, MIT) - Documentation for Jekyll
- Ruby Scripting (Site, cc-nc-sa) - example based guide for Ruby scripting
- Ruby Regexp (Site, cc-nc-sa) - step by step guide to Ruby regular expressions
<a name='clojure'></a>
Clojure
- ClojureDocs (Site, Eclipse Public License) - community-powered documentation and examples repository for the Clojure programming language
- Clojure Documentation (Site, cc) - community-driven documentation site for the Clojure programming language
<a name='elixir'></a>
Elixir
- Elixir Getting Started (Site, Apache 2.0) - Official Elixir tutorial
- repo-30-days-of-elixir (MIT) - A walk through the Elixir language in 30 exercises
- Elixir Style Guide (cc) - A community driven style guide for Elixir
<a name='forth'></a>
Forth
- Thinking Forth Project Thinking Forth Project (PDF, cc-nc-sa)
<a name='erlang'></a>
Erlang
- Learn You Some Erlang for Great Good! (Site, cc-nc-nd)
- Structure and Interpretation of Computer Program (Site, cc-sa) - Structure and Interpretation of Computer Programs, the LFE edition
<a name='go'></a>
Go
- Go by Example (cc) - Go by Example is a hands-on introduction to Go using annotated example programs
- Build Web Application With Golang (cc-sa) - A golang ebook intro how to build a web with golang
<a name='haskell'></a>
Haskell
- Learn You a Haskell for Great Good! ([Site][site-lyhfgg], cc-nc-sa) - Learn You a Haskell for Great Good! is a hilarious, illustrated guide to this complex functional language
- [How to learn Haskell][repo-howtlh] (cc0) - This is a recommended path for learning Haskell based on experience helping others
- [Haskell By Example][repo-haskell-example] ([Site][site-haskell-example], cc) - Haskell by Example is a port of Go by Example to Haskell
truncated — full list on GitHub