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
## Subjects ###
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.
### 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
### 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
### Mathematics & Physics
### Open Source
### 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?”
### Database
### 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
### 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.
### 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.
### Android Development
### IOS Development
### ETC
## Programming Languages
### 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
### Cofeescript
### 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
### 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.
### 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
### 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
### Elixir
### Forth
-
Thinking Forth Project Thinking Forth Project (PDF, cc-nc-sa)
### Erlang
### Go
### Haskell
-
Learn You a Haskell for Great Good! (Site, cc-nc-sa) - Learn You a Haskell for Great Good! is a hilarious,
illustrated guide to this complex functional language
-
How to learn Haskell
(cc0) - This is a recommended path for learning Haskell based on
experience helping others
-
Haskell By Example
(Site, cc) -
Haskell by Example is a port of Go by Example to Haskell
### Javascript
-
Learning JavaScript Design Patterns (Site, cc-nc-nd) - In this book we will explore applying both classical and
modern design patterns to the JavaScript programming language
-
JavaScript-Garden
(Site, MIT)
- A collection of documentation about the most quirky parts of the
JavaScript language
-
ECMAScript 6 Features
(MIT) - ECMAScript 6, also known as ECMAScript 2015, is the latest
version of the ECMAScript standard
-
React Primer Draft
(GNU) - A primer for building Single-Page Applications with React
-
Angular Style Guide
(MIT) - Angular Style Guide: A starting point for Angular development
teams to provide consistency through good practices
-
JavaScript : The Right Way
(Site, cc-nc-sa) - This is a
guide intended to introduce new developers to JavaScript and help
experienced developers learn more about its best practices
-
Idiomatic JavaScript
(cc) - Principles of Writing Consistent, Idiomatic JavaScript
-
Angular Test Patterns
(MIT) - A High-Quality Guide for Testing Angular 1.x Applications
-
Airbnb JavaScript Style Guide
(MIT) - A mostly reasonable approach to JavaScript
-
JavaScript Garden
(Site, MIT)
- A collection of documentation about the most quirky parts of the
JavaScript language
-
Node.js Style Guide
(cc-sa) - A guide for styling your node.js / JavaScript code. Fork &
adjust to your taste
-
Node.js Best Practices
(Site, MIT) - This is a list of best practices for writing robust Node.js
code. It is inspired by other guilds such as Felix Geisendörfer’s Node
Style Guide and what is popular within the community
-
function qualityGuide () {
(MIT) - This style guide aims to provide the ground rules for an
application’s JavaScript code, such that it’s highly readable and
consistent across different developers on a team
-
The Node Beginner Book
(Site, cc-nc-sa) - The Node
Beginner Book is a comprehensive introduction to Node.js and some of the
more advanced JavaScript topics like functional programming
-
Learn You The Node.js For Much Win!
(MIT) - Learn You The Node.js For Much Win! An intro to Node.js via a
set of self-guided workshops.
-
Understanding ECMAScript 6 (Site, cc-nc-nd) - ECMAScript 6 is coming, are you ready? There’s a lot of
new concepts to learn and understand. Get a headstart with this book!
-
An introduction to Node.js
(cc-sa) - a short introduction to node.js
-
stream-handbook
(cc) - how to write node programs with streams
-
You Don’t Know JS
(Site, cc-nc-nd) - A book series on JavaScript.
@YDKJS on twitter.
-
Eloquent JavaScript (Site,
cc-nc) - about JavaScript, programming, and the wonders of the digital
-
CasperJS
(Site, MIT) -
Documentation for CasperJS
-
Ember.js Guide (Site, MIT) - Official Guide for Ember.js
-
React Document
(Site, cc) - Documentation for React
-
Flux Application Architecture
(Site,
cc) - Documenatiton for Flux application architecture
-
Redux Document
(Site, MIT) - Documentation
for Redux
-
JavaScript RegExp
(Site, cc-nc-sa) - step by step guide to JavaScript regular expressions
### Lisp
-
DIY Lisp (BSD) - A
hands-on, test driven guide to implementing a simple programming
language.
-
Build Your Own Lisp
(Site, cc-nc-sa) - Learn
C and build your own programming language in under 1000 lines of code!
### Objective-C
### Ocaml
-
Real World OCaml (Site, cc-nc-nd) - Real World OCaml is aimed at programmers who have some
experience with conventional programming languages, but not specifically
with statically typed functional programming.
### Perl
-
Perl intro
(Site, cc-nc-sa) - Introductory course for Perl 5 through examples
### PHP
-
PHP: The Right Way
(Site, by-nc-sa) - An
easy-to-read, quick reference for PHP best practices, accepted coding
standards, and links to authoritative tutorials around the Web
### Python
-
Python Enhancement Proposals
(Site, Open Publication
License)
-
The Hitchhiker’s Guide to Python!
(Site, cc-nc-sa) -
Python best practices guidebook, written for Humans.
-
Django Documentation
(Site, bsd) -
Documenatiton for Django which is python web framework
-
Dive Into Python 3 (Site,
cc-sa) - Dive Into Python is a free Python book for experienced
programmers
-
Explore Flask (Site, Public Domain) - Explore Flask is a book about best practices and
patterns for developing web applications with Flask
-
Full Stack Python
(Site, MIT) - Full Stack
Python source with Pelican, Bootstrap and Markdown
-
A Byte of Python
(Site, cc-sa) - “A
Byte of Python” is a free book on programming using the Python language.
It serves as a tutorial or guide to the Python language for a beginner
audience
-
Learning to Program Using Python (Site, cc-sa)
-
A guide to Python’s magic methods
(Site,
cc-nc-sa) - This guide is the culmination of a few months’ worth of blog
posts. The subject is magic methods
-
Think Python
(Site,
cc-nc) - How to Think Like a Computer Scientist
-
Automate the Boring Stuff with Python (Site, cc-nc-sa) - learn how to use Python to write programs that do in
minutes what would take you hours to do by hand - no prior programming
experience required
-
A Whirlwind Tour of Python
(Site, cc0) - fast-paced introduction to essential components of the Python
language for researchers and developers who are already familiar with
programming in another language
-
Practical Python Programming
(Site,
cc-sa) - covers foundational aspects of Python programming with an
emphasis on script writing, data manipulation, and program organization
-
Python Basics
(Site, cc-nc-sa) - Introduction to Python
-
Google’s Python Class (Site, cc) - this is a free class for people with a little bit of
programming experience who want to learn Python (Note that this course
is designed for Python 2.6 or later, not Python 3.x)
-
Think DSP (Site, cc-nc) - introduction to Digital Signal Processing in Python
-
Python re(gex)?
(Site, cc-nc-sa) - step by step guide to learning Python regular expressions
### Rust
### R
-
Introduction to R (Site, cc-nc-sa & apache 2.0) - These are notes for an introductory R
workshop I am teaching for Python Programmers
-
Cookbook for R (Site, cc-sa) -
The goal of the cookbook is to provide solutions to common tasks and
problems in analyzing data
### Racket
-
Racket Documentation (Site, LGPL) - Documentation for Racket
### Scala
### Smalltalk
-
Deep into Pharo (Site, cc-sa) -
Deep into Pharo is the second volume of a series of books covering Pharo
-
Pharo by example (Site, cc-sa)
- Pharo by Example, intended for both students and developers, will
guide you gently through the Pharo language and environment by means of
a series of examples and exercises
-
Dynamic Web Development with Seaside (Site, cc-nc-sa) - Dynamic Web Development with Seaside, intended for
developers, will present the core of Seaside as well as advanced
features such as Web 2.0 support and deployment
-
Squeak by Example (Site,
cc-sa) - Squeak by Example, intended for both students and developers,
will guide you gently through the Squeak language and environment by
means of a series of examples and exercises
## Tools
### Server
### Editor
-
GNU Emacs manual (Site, GNU-FDL) - Emacs is the extensible, customizable, self-documenting
real-time display editor. This manual describes how to edit with Emacs
and some of the ways to customize it
-
GNU Emacs Lisp Reference Manual (Site, GNU-FDL) - Documentation for Emacs Lisp
-
Emacs is sexy!
(Site, GNU) - Simple website to share
the love for Emacs
-
Learn Vimscript the Hard Way
(Site,
custom license) - Learn Vimscript the Hard Way is a book for users of
the Vim editor who want to learn how to customize Vim
-
The Emacs Lisp Style Guide
(cc) - This Emacs Lisp style guide recommends best practices so that
real-world Emacs Lisp programmers can write code that can be maintained
by other real-world Emacs Lisp programmers
-
A Byte of Vim (Site,
cc-sa) - “A Byte of Vim” is a book which aims to help you to learn how
to use the Vim editor (version 7), even if all you know is how to use
the computer keyboard
-
Vim Reference
(Site, cc-nc-sa) - guide for beginner to intermediate users
### Git
-
Pro Git (Site, cc-nc-sa) - An open source book on Git by Scott Chacon and Ben Straub
-
A Git Style Guide
(cc) - This is a Git Style Guide inspired by How to Get Your Change Into
the Linux Kernel, the git man pages and various practices popular among
the community.
-
Github Cheatsheet
(MIT) - A list of cool features of Git and GitHub
-
Git Magic (Site, GPL) - A guide to using Git
-
Git it (Site, BSD) - A workshopper for learning Git and GitHub.
### etc.
-
Gibber User Manual (Site, cc) - Gibber is a creative coding environment that runs in the
browser. This book explains why Gibber was created, what its features
are and how to use it
-
Upstart Intro, Cookbook and Best Practises (Site, cc-sa)
## Library Documentation
## Other Languages
### Korean
-
점프 투 파이썬 (Site,
cc-nc-nd) - 이 책은 파이썬이란 언어를 처음 접해보는 독자들과
프로그래밍을 한 번도 해 본적이 없는 사람들을 대상으로 한다. 프로그래밍을
할 때 사용되는 전문적인 용어들을 알기 쉽게 풀어서 쓰려고 노력하였으며,
파이썬이란 언어의 개별적인 특성만을 강조하지 않고 프로그래밍 전반에 관한
사항을 파이썬이란 언어를 통해 알 수 있도록 알기 쉽게 설명하였다.
-
emacsbook (cc-nc)
-
꾸준히, 자유롭게, 즐겁게 : 한국 오픈 소스 개발자들 이야기 (Site, cc-nc-nd)
### Chinese
## Japanese
## Another Documents List /
References
-
Beautiful Docs
- Pointers to useful, well-written, and otherwise beautiful
documentation
-
Papers We Love
- Papers from the computer science community to read and discuss
-
Awesome Awesomeness
- A curated list of amazingly awesome awesomeness
-
Awesome - A
curated list of awesome lists
-
Readings in Databases
- A list of papers essential to understanding databases and building new
data systems
-
Python Reference
- Useful functions, tutorials, and other Python-related things
-
Guides - Design and
development guides
-
List of Free Learning Resources
- Freely available programming books
-
Gitbook - A modern publishing
toolchain. Simply taking you from ideas to finished, polished books
-
O’Reilly Open Books -
O’Reilly has published a number of Open Books–books with various forms
of “open” copyright–over the years. The reasons for “opening” copyright,
as well as the specific license agreements under which they are opened,
are as varied as our authors
-
OnlineProgrammingBooks.com
- This site lists free eBooks and online books related to programming,
computer science, software engineering, web design, mobile app
development, networking, databases, information technology, AI, graphics
and computer hardware which are provided by publishers or authors on
their websites legally
-
Free Software Foundation - books/documentation
-
Green Tea Press - Free books
by Allen Downey
-
Wikipedia books(community books)
-
Python Books -
PythonBooks is a showcase of the best free ebooks about Python
-
JSbooks - The best free
JavaScript resources
## License