Programming Languages
From ADA to Vim, we've got you covered. Check out the free books below for a deep-dive into programming languages.

#include <iostream>
using namespace std;
int main()
{
string blah;
cout<<"Hey, pal. How are ya? Blah\n"; cin.get(cin, blah);
cin.ignore();
}
Ada
-
Ada Distilled (PDF)
-
Ada Reference Manual - ISO/IEC 8652:2012(E) Language and Standard Libraries (PDF)
APL
-
Mastering Dyalog APL (PDF)
Arduino
-
Arduino Programming Notebook - Brian Evans
-
C Programming for Arduino - Julien Bayle, Packt.
-
Introduction to Arduino : A piece of cake! - Alan G. Smith
Assembly Language
-
Easy 6502 - Nick Morgan
-
Machine Language for Beginners - Richard Mansfield [6502 CPU]
Awk
-
Awk - Bruce Barnett
Bash
-
Bash Guide for Beginners by Machtelt Garrels
-
BASH Programming - Mike G mikkey
-
Advanced Bash-Scripting Guide - M. Cooper
-
Conquering the Command Line - Mark Bates
-
Introduction to the Command Line - Launch School
-
Linux Fundamentals - Paul Cobbaut (PDF)
-
Writing Shell Scripts - William E. Shotts, Jr.
Basic
-
10 PRINT CHR$(205.5+RND(1)); - Nick Montfort, Patsy Baudoin, et al.
-
Pick/Basic: A Programmer's Guide - Jonathan E. Sisk
C
-
Beej's Guide to C Programming - B. Hall
-
Beej's Guide to Network Programming - Using Internet Sockets - B. Hall
-
C Programming - Wikibooks
-
Essential C (PDF)
-
Everything you need to know about pointers in C - Peter Hosey
-
Modern C (PDF)
-
Programming in C - Bharat Kinariwala & Tep Dobry
-
The Craft of Text Editing or A Cookbook for an Emacs - Craig A. Finseth
-
The little book about OS development - Erik Helin, Adam Renberg
-
Using C on the UNIX System - David A. Curry
Chapel
Cilk
Clojure
-
Clojure - Functional Programming for the JVM - R. Mark Volkmann
-
Clojure in Small Pieces - Rich Hickey (PDF)
COBOL
CoffeeScript
-
CoffeeScript Ristretto - Reginald Braithwaite
ColdFusion
-
CFML In 100 Minutes - J. Casimir
Coq
C Sharp
-
C# Yellow Book (intro to programming)
-
Daily Design Patterns (PDF)
-
Dissecting a C# Application - Christian Holm, Bernhard Spuida, Mike Kruger
-
Fundamentals of Computer Programming with C# - Svetlin Nakov
-
High level asynchronous programming with Reactive Extensions - Emil Petro
-
Xamarin Cross-Platform Development Cookbook - George Taskos, Packt.
C++
-
C++ Core Guidelines - Editors: Bjarne Stroustrup, Herb Sutter
-
C++ Succinctly, Syncfusion (PDF, Kindle)
-
Financial Numerical Recipes in C++ - Bernt Arne Ødegaard
-
How to make an Operating System - Samy Pesse
-
How To Think Like a Computer Scientist: C++ Version - Allen B. Downey
-
Joint Strike Fighter, C++ Coding Standards, by Bjarne Stroustrup (PDF)
-
Learn C++. (PDF, Online)
-
Software Design Using C++ - Br. David Carlson and Br. Isidore Minerd
-
The Rook's Guide to C++ (PDF)
-
The Ultimate Question of Programming, Refactoring, and Everything
D
Dart
DB2
Delphi / Pascal
-
Essential Pascal Version 1 and 2 - M. Cantù
Django
DTrace
Elasticsearch
Elixir
-
30 Days of Elixir - Tim Morgan (HTML)
-
Elixir School (HTML)
-
Études for Elixir (HTML)
-
Getting Started Guide (HTML)
-
Learning Elixir - Joseph Kain Blog (HTML)
Emacs
-
GNU Emacs Manual (PDF)
Embedded Systems
-
Control and Embedded Systems (HTML)
Erlang
-
Learn You Some Erlang For Great Good - Frederic Trottier-Hebert
-
Erlang Programming (HTML)
-
Études for Erlang - J. David Eisenberg
-
Making reliable distributed systems in the presence of software errors - Joe Armstrong (PDF)
-
Stuff Goes Bad: Erlang in Anger - Fred Herbert (PDF)
Flask
-
The Flask Mega-Tutorial - Miguel Grinberg
Forth
-
And so Forth... (PDF)
-
Programming Forth (PDF)
Fortran
FreeBSD
F Sharp
-
F# for fun and profit (ePub)
-
F# Programming in Wikibooks
-
F# Succinctly, SyncFusion (PDF, Kindle)
-
Real World Functional Programming (MSDN Chapters)
Git
-
A Visual Git Reference - Mark Lodato
-
Git Pocket Guide - Richard E. Silverman
-
GitHub Cheat Sheet - Tim Green
-
Learn Git - Learn Version Control with Git - Tobias Günther
-
Pro Git - Scott Chacon
-
Pro Git Reedited - Jon Forrest
-
Version Control by Example (Mercurial, Subversion, Verasity)
-
Git From The Bottom Up - J. Wiegley
-
Intoduction to Git and Github - Launch School
-
Learn Enough Git to be Dangerous - Michael Hartl
Go
-
Go Bootcamp - Matt Aimonetti
Gradle
-
Gradle User Guide - Hans Dockter, Adam Murdoch (PDF)
Grails
-
The Grails Framework - Reference Documentation - Graeme Rocher, Peter Ledbrook, et al.
Hadoop
-
Cloudera Impala - John Russel
-
Hadoop Illuminated - Mark Kerzner & Sujee Maniyam
-
Programming Pig - Alan Gates
-
Data-Intensive Text Processing with MapReduce - Jimmy Lin and Chris Dyer (PDF)
-
Hadoop Illuminated - Mark Kerzner & Sujee Maniyam
Haskell
-
Anatomy of Programming Languages - William R. Cook
-
Exploring Generic Haskell - Andres Löh (PDF)
-
Haskell web Programming (Yesod tutorial)
-
Introduction to Haskell - Brent Yorgey
-
Learn You a Haskell for Great Good - Miran Lipovaca
-
Parallel and Concurrent Programming in Haskell - Simon Marlow
Haxe
-
Haxe and JavaScript - Matthijs Kamstra (wikibook)
-
Haxe Manual - Haxe Foundation (PDF, HTML)
-
HaxeFlixel Handbook (HTML)
HTML / CSS
-
Adaptive Web Design - Aaron Gustafson
-
Code Guide: Standards for developing flexible, durable, and sustainable HTML and CSS - Mark Otto
-
Computer Language for Beginners: HTML *Special thanks to Chelsea for this stellar contribution to the resource list, and to Ms. Mayer for teaching and supporting the next generation of programmers!
-
Dive Into HTML5 - Mark Pilgrim (PDF)
-
HTML Canvas Deep Dive - Josh Marinacci
-
HTML5 Canvas - Steve Fulton & Jeff Fulton
-
HTML5 for Publishers - Sanders Kleinfeld
-
HTML5 For Web Designers - Jeremy Keith
-
HTML5 Graphing and Data Visualization Cookbook - Ben Fhala, Packt.
-
HTML5 Shoot 'em Up in an Afternoon - Bryan Bibat
-
Scalable and Modular Architecture for CSS - Jonathan Snook
-
Understanding Flexbox: Everything you need to know - Ohans Emmanuel
-
Web Audio API - Boris Smus
-
Twitter Bootstrap 3 Succinctly (PDF, Kindle)
-
Twitter Bootstrap Succinctly (PDF, Kindle)
Isabelle/HOL
J
Java
-
Introduction to Programming Using Java - David J. Eck
-
Java Application Development on Linux by Carl Albing and Michael Schwarz
-
Java Programming for Kids, Parents and Grandparents - Yakov Fain
-
UML For Java Programmers - Robert Cecil Martin
-
Welcome to the Java Workshop - An Apache Project
-
Artificial Intelligence - Foundation of Computational Agents
-
The Java EE6 Tutorial (PDF)
-
OSGi in Practice (PDF)
-
OOP - Learn Object Oriented Thinking & Programming - Rudolf Pecinovsky
-
The Java Language Specification - James Gosling, Bill Joy, Guy Steele, Gilad Bracha
-
Core Servlets and JavaServer Pages - Marty Hall and Larry Brown
-
Introduction to Programming in Java- Robert Sedgewick and Kevin Wayne
-
Welcome to Java for Python Programmers - Brad Miller
-
3D Programming in Java - Daniel Selman (PDF)
-
Apache Jakarta Commons: Reusable Java Components - Will Iverson (PDF)
-
Category wise tutorials - J2EE - Yong Mook Kim
-
Core Servlets and JavaServer Pages, 2nd Ed. (2003) - Marty Hall and Larry Brown
-
Data Structures in Java for the Principled Programmer (2007) - Duane A. Bailey (PDF)
-
Introduction to Computer science using Java - Bradley Kjell
-
Java: A Beginner's Guide - Oracle (PDF)
-
Java Application Development on Linux (2005) - Carl Albing and Michael Schwarz (PDF)
-
Java Language and Virtual Machine Specifications - James Gosling, et al
-
Java Programming for Kids - Yakov Fain
-
Java: The Legend - Ben Evans
-
Learning Java (4th Edition) - Patrick Niemeyer and Daniel Leuck
-
Microservices for Java Developers - Christian Posta
-
Modern Java EE Design Patterns - Markus Eisele
-
Neural Network Development with Java - Alan M. F. Souza and Fabio M. Soares
-
NIO Framework (PDF)
-
Object-Oriented vs. Functional Programming - Richard Warburton
-
Processing XML with Java (A Guide to SAX, DOM, JDOM, JAXP, and TrAX) (2002) - Elliotte Rusty Harold
-
The ABC of PDF with iText: PDF Syntax essentials - Bruno Lowagie
-
The Java EE6 Tutorial (PDF)
-
The Java EE7 Tutorial - Eric Jendrock, et al (PDF)
-
Think Java: How to Think Like a Computer Scientist - Allen B. Downey and Chris Mayfield
-
Welcome to the Java Workshop (2006) - Trevor Miller
-
What's New in Java 8 - Adam L. Davis
JavaScript
-
Crockford's JavaScript - Douglas Crockford
-
JavaScript Garden (Maintained by Tim Ruffles)
-
Eloquent JavaScript - Marijn Haverbeke
-
Learning JavaScript Design Patterns - Addy Osmani
-
JavaScript Bible (PDF)
-
O'Reilly Programming JavaScript Applications - Early Release
-
Javascript Succinctly, Syncfusion (PDF, Kindle)
-
Dojo: The Definitive Guide - Matthew A. Russell
-
jQuery Succinctly, Syncfusion (PDF, Kindle)
-
Knockout.js Succinctly (PDF, Kindle)
-
Node: Up and Running - Tom Hughes-Croucher
Linux
-
Commentary on the Sixth Edition UNIX Operating System - J. Lions
-
Unix Toolbox - Colin Barschel
-
Unix for Poets - Kenneth Ward Church
-
Linux Device Drivers - Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman
Lisp
-
Common Lisp: A Gentle Introduction to Symbolic Computation - David S. Touretzky
-
Sketchy LISP - Nils Holm
Lua
Mathematica
MATLAB
-
MATLAB - A Fundamental Tool for Scientific Computing and Engineering Applications - Volume 1
-
Physical Modeling in MATLAB - Alan B. Downey
Maven
Mercurial
MySql
NoSql
-
Extracting Data from NoSQL Databases: A Step towards Interactive Visual Analysis of NoSQL Data - Petter Nasholm
-
NoSQL Databases - Christof Strauch
Oberon
Objective-C
-
Objective-C Succinctly, Syncfusion (PDF, Kindle)
OCaml
-
Think OCaml - Allen B. Downey and Nicholas Monje
Octave
OpenGL ES
OpenSCAD
Perl
-
Mastering Perl - Bryan D Foy
-
Essential Perl (PDF)
PHP
Prolog
Python
-
Dive into Python 3 - Mark Pilgrim (3.0)
-
Google's Python Class (2.4 - 2.x)
-
Hacking Secret Cyphers with Python - Al Sweigart (3.3)
-
Introduction to Programming Using Python - Cody Jackson (1st edition) (2.3)
-
Introduction to python - Kracekumar (2.7.3)
-
Learn Python The Hard Way (2.5 - 2.6)
-
Learning to Program with Python - Richard L. Halterman (3.2)
-
Learn to Program Using Python - Cody Jackson
-
Modeling Creativity: Case Studies in Python - Tom D. De Smedt
-
Practical Programming in Python - Jeffrey Elkner
-
Python 2.7 quick reference - New Mexico Tech (2.7)
-
Python for Econometrics - Kevin Sheppard (2.7.5)
-
Python for you and me (3.x)
-
Python in Hydrology - Sat Kumar Tomer
-
Python Practice Book (2.7.1)
-
The Programming Historian - William J. Turkel, Adam Crymble and Alan MacEachern
-
Think Python - Allen B. Downey (2.x & 3.0)
-
Web2py: Complete Reference Manual, 6th Edition (pre-release) (2.5 - 2.x)
-
Composing Programs (3.x)
-
Learn Pandas - Hernan Rojas (0.13.0)
-
Dive into Python - Mark Pilgrim
-
Introduction to Programming Using Python - Cody Jackson
-
Invent Your Own Computer Games With Python - Al Sweigart
-
Lectures on scientific computing with python - J.R. Johansson
-
Making Games with Python & Pygame - Al Sweigart
-
Python Cookbook - David Beazley
-
Python Programming - PDF
-
Python Standard Library - Fredrik Lundh
-
Text Processing in Python - David Mertz
-
Welcome to Problem Solving with Algorithms and Data Structures - Brad Miller and David Ranum
R
-
The R Inferno (PDF) - Patrick Burns
-
Introduction to Probability and Statistics Using R (PDF) - G. Jay Kerns
-
R language for Programmers - John D. Cook
Racket
RSpec
Ruby
Ruby on Rails
Rust
Sage
Scala
-
EAI Patterns with Actor Model - Vaughn Vernon
-
Program Transformation in Scala - Anastasia Izmaylova
-
S-99: Ninety-Nine Scala Problems - Phil! Gold
-
Scala & Design Patterns: Exploring Language Expressivity - Fredrik Skeel Løkke
-
Scala for Perl 5 Programmers - Breno G. de Oliveira
-
Scala for the Impatient (A1 Scala Level chapters) - Cay S. Horstmann
-
The Neophyte's Guide to Scala - Daniel Westheide
-
Lift Cookbook - Richard Dallaway
-
Scala By Example (PDF)
Scheme
Scilab
Sinatra
Smalltalk
-
Free Online Smalltalk Books (meta-list)
-
Pharo by Example (Smalltalk DE)
-
Squeak By Example (Smalltalk IDE)
Standards
Subversion
Sql
-
SQL Server Execution Plans (PDF) (RedGate, By Grant Fritchey)
-
Defensive Database Programming (PDF) (RedGate, By Alex Kuznetsov)
-
SQL Server Execution Plans, Second Edition (PDF) (RedGate, By Grant Fritchey)
-
SQL Server Transaction Log Management (RedGate, By Tony Davis and Gail Shaw)
-
The Art of SQL Server FILESTREAM (RedGate, By Jacob Sebastian and Sven Aelterman)
-
SQL Server Concurrency: Locking, Blocking and Row Versioning (RedGate, By Kalen Delaney)
-
SQL Server Backup and Restore (RedGate, By Shawn McGehee)
-
Troubleshooting SQL Server: A Guide for the Accidental DBA (RedGate, By Jonathan Kehayias and Ted Krueger)
-
SQL Server Hardware (RedGate, By Glenn Berry)
-
SQL Server Statistics (RedGate, By Holger Schmeling)
-
Performance Tuning with SQL Server Dynamic Management Views (RedGate, By Tim Ford and Louis Davidson)
-
Brad's Sure Guide to SQL Server Maintenance Plans (RedGate, By Brad McGehee)
-
Best of SQLServerCentral.com Vol 7 (RedGate, By SQLServerCentral Authors)
-
Protecting SQL Server Data (RedGate, By John Magnabosco)
-
SQL Server Tacklebox (RedGate, By Rodney Landrum)
-
How to Become an Exceptional DBA (RedGate, By Brad McGehee)
-
SQL Server Stumpers Vol.5 (RedGate, By SQLServerCentral Authors)
-
Mastering SQL Server Profiler (RedGate, By Brad McGehee)
Squirrel
-
Squirrel Programming Course - Kelvin Shadewing
TeX
-
TeX for the Impatient, by Paul Abrahams, Kathryn Hargreaves, and Karl Berry
-
Notes On Programming in TeX (PDF) by Christian Feursänger
-
TeX by Topic, A TeXnician's Reference, by Victor Eijkhout
-
The Computer Science of TeX and LaTeX, by Victor Eijkhout
TypeScript
-
TypeScript Succinctly, Syncfusion (PDF, Kindle)
Unix
Vim
*Note - This list is largely based on an open source list provided by the Free Ebook Foundation - you can checkout their version of the list here.