List of freely available programming books

A large variety of programming books that are freely available on the Internet. Here's what the list looks like as of the 28th of August, 2013.


  1. 25 Free Computer Science Ebooks
  2. Book Training - On Video
  3. Cheat Sheets (Free)
  4. CodePlex List of Free E-Books
  5. Free Tech Books
  6. Galileo Computing (German)
  7. How to Design Programs: An Introduction to Computing and Programming
  8. Microsoft Press: Free E-Books
  9. MindView Inc
  10. O'Reilly's Open Books Project
  11. Sofware Program Managers Network
  14. Wikibooks: Programming

Graphics Programming

  1. DirectX manual (draft)
  2. Learning Modern 3D Graphics Programming (draft)
  3. GPU Gems
  4. GPU Gems 2 - ch 8,14,18,29,30 as pdf
  5. GPU Gems 3
  6. Graphics Programming Black Book
  7. ShaderX series

Language Agnostic

  1. 97 Things Every Programmer Should Know
  2. Algorithms and Data-Structures (PDF)
  3. Algorithms (draft)
  4. The Architecture of Open Source Applications
  5. The Art of Unix Programming
  6. Best Kept Secrets of Peer Code Review
  7. Binary Trees
  8. The Cathedral and the Bazaar
  9. Clever Algorithms
  10. Communicating Sequential Processes (PDF) - Tony Hoare
  11. Compiler Construction (PDF)
  12. Computer Musings (lectures by Donald Knuth)
  13. Data Structures and Algorithms: Annotated Reference with Examples
  14. Database Fundamentals (PDF)
  15. Data-Intensive Text Processing with MapReduce (PDF)
  16. The Definitive Guide to Building Code Quality
  17. Designing Interfaces by Jennifer Tidwell
  18. Digital Signal Processing For Engineers and Scientists
  19. Domain Driven Design Quickly
  20. Don't Just Roll the Dice
  21. Essentials of Metaheuristics by Sean Luke
  22. Essential Skills for Agile Development
  23. A Field Guide To Genetic Programming
  24. Flow based Programming
  25. Foundations of Computer Science - Al Aho and Jeff Ullman
  26. Foundations of Programming
  27. Getting Real
  28. Getting started with Open source development (PDF)
  29. The Great Tree List Recursion Problem
  30. Guide to the Software Engineering Body of Knowledge
  31. How Computers Work
  32. How to Design Programs
  33. How to Think Like a Computer Scientist
  34. How to Write Parallel Programs
  35. How to write Unmaintainable Code
  36. I Am a Bug
  37. An Introduction to the Theory of Computation
  38. Introduction to Functional Programming (class lectures and slides)
  39. Introduction to Information Retrieval
  40. Is Parallel Programming Hard, And, If So, What Can You Do About It?
  41. Learn to Program
  42. Let's Build a Compiler
  43. Linkers and loaders
  44. Linked List Basics
  45. Linked List Problems
  46. Mathematical Logic - an Introduction (PDF)
  47. Matters Computational
  48. Mining of Massive Datasets
  49. NASA Manager Handbook for Software Development (PDF)
  50. NASA Software Measurement Handbook
  51. Object-Oriented Reengineering Patterns
  52. Online Course Materials
  53. OO Design
  54. Operating Systems and Middleware (PDF and LaTeX)
  55. Patterns and Practices: Application Architecture Guide 2.0
  56. Patterns of Software: Tales from the Software Community (PDF)
  57. Planning Algorithms
  58. PNG: The Definitive Guide
  59. Pointers And Memory
  60. Producing Open Source Software
  61. Programming Languages: Application and Interpretation
  62. Programming Methodology
  63. Programming Pearls
  64. Project Oberon (PDF)
  65. Seamless Object-Oriented Software Architecture
  66. Security Engineering
  67. Structure and Interpretation of Computer Programs
  68. Summary of the GoF Design Patterns
  69. The Little Book of Semaphores
  70. The TCP/IP Guide
  71. Think Stats: Probability and Statistics for Programmers (PDF, code written in Python)
  72. Type Theory and Functional Programming
  73. Understanding IP Addressing: Everything you ever wanted to know (PDF)


  1. Building Android Apps with HTML, CSS, and JavaScript
  2. Learning Android


  1. GNU Autoconf, Automake and Libtool


  1. NerdDinner Walkthrough

Assembly Language

  1. Programming from the Ground Up (PDF)
  2. Paul Carter's Tutorial on x86 Assembly
  3. Software optimization resources by Agner Fog


  1. Advanced Bash-Scripting Guide
  2. Bash Guide for Beginners by Machtelt Garrels
  3. Lhunath's Bash Guide
  4. The Command Line Crash Course (also a Powershell reference)

C / C++

  1. Beej's Guide to Network Programming
  2. Beej's Guide to C Programming
  3. The C book
  4. C++ Annotations
  5. C++ GUI Programming With Qt 3
  6. CS106X Programming Abstractions in C++
  7. Essential C
  8. Introduction to Design Patterns in C++ with Qt 4 (PDF)
  9. Learn C the hard way
  10. Matters Computational: Ideas, Algorithms, Source Code, by Jorg Arndt
  11. The new C standard - an annotated reference
  12. Object Oriented Programming in C (PDF)
  13. Software optimization resources by Agner Fog
  14. Thinking in C++, Second Edition
  15. Also see: The Definitive C++ Book Guide and List


  1. See .NET below


  1. Clojure Programming
  2. Clojure - Functional Programming for the JVM


  1. Smooth CoffeeScript
  2. The Little Book on CoffeeScript


  1. CFML In 100 Minutes


  1. Getting started with DB2 Express-C (PDF)
  2. Getting started with IBM Data Studio for DB2 (PDF)
  3. Getting started with IBM DB2 development (PDF)

Delphi / Pascal

  1. Essential Pascal Version 1 and 2
  2. The Tomes of Delphi




  1. GNU Emacs Manual, 16th Edition, v. 22
  2. An Introduction to Programming in Emacs Lisp, 3rd Edition


  1. Learn You Some Erlang For Great Good


  1. Getting started with Adobe Flex (PDF)


  1. The F# Survival Guide
  2. F Sharp Programming in Wikibooks
  3. Real World Functional Programming (MSDN Chapters)


  1. Starting Forth
  2. Thinking Forth


  1. Pro Git
  2. The Git Community Book
  3. Git From The Bottom Up (PDF)


  1. The Go Tutorial


  1. Getting Start with Grails


  1. Learn You a Haskell
  2. Real World Haskell


  1. Dive Into HTML5
  2. HTML Dog Tutorials


  1. Java Application Development on Linux by Carl Albing and Michael Schwarz(PDF)
  2. How to Think Like a Computer Scientist
  3. The Java EE6 Tutorial (PDF)
  4. Java Thin-Client Programming
  5. Sun's Java Tutorials
  6. Thinking in Java
  7. OSGi in Practice (PDF)
  8. Category wise tutorials - J2EE
  9. Introduction to Programming Using Java - David J. Eck


  1. Crockford's JavaScript
  2. Eloquent JavaScript
  3. Essential Javascript & jQuery Design Patterns for Beginners
  4. JavaScript Essentials
  5. jQuery Fundamentals (starts with JavaScript basics)
  6. Mozilla Developer Network's JavaScript Guide

JavaScript (Node.js specific)

  1. Up and Running with Node
  2. The Node Beginner Book
  3. Mastering Node.js
  4. Mixu's Node Book


  1. The Not So Short Introduction to LaTeX


  1. Advanced Linux Programming
  2. GNU Autoconf, Automake and Libtool
  3. GTK+/Gnome Application Development
  4. The Linux Development Platform (PDF)
  5. Linux Device Drivers by Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman
  6. The Linux Kernel Module Programming Guide
  7. Secure Programming for Linux and Unix


  1. Common Lisp the Language, 2nd Edition
  2. Common Lisp: A Gentle Introduction to Symbolic Computation - David S. Touretzky
  3. Common Lisp Quick Reference
  4. Let Over Lambda - 50 Years of Lisp
  5. Natural Language Processing in Lisp
  6. On Lisp
  7. Practical Common Lisp
  8. Successful Lisp: How to Understand and Use Common Lisp - David Lamkins
  9. Sketchy LISP - Nils Holm


  1. Programming In Lua (for version 5)


  1. Mathematica® programming: an advanced introduction by Leonid Shifrin


  1. Better Builds with Maven
  2. Maven by Example
  3. Maven: The Complete Reference
  4. Repository Management with Nexus
  5. Developing with Eclipse and Maven


  1. Mercurial: The Definitive Guide
  2. HGInit - Mercurial Tutorial by Joel Spolsky


  1. See .NET below

.NET (C# / VB / Nemerle / Visual Studio)

  1. C# Essentials
  2. C# Programming - Wikibook
  3. C# Yellow Book (intro to programming)
  4. Charles Petzold's .NET Book Zero
  5. Data Structures and Algorithms with Object-Oriented Design Patterns in C#
  6. Entity Framework
  7. Moving to Microsoft Visual Studio 2010
  8. Nemerle
  9. Programmer's Heaven C# School Book (covers C# 1.0 and 2.0)
  10. Threading in C#
  11. Visual Basic Essentials
  12. Visual Studio Tips and Tricks (VS 2003-2005 only)


  1. CouchDB: The Definitive Guide
  2. The Little MongoDB Book
  3. The Little Redis Book


  1. Programming in Oberon (PDF)


  1. The Objective-C Programming Language
  2. Object-Oriented Programming with Objective-C


  1. Introduction to Objective Caml (PDF)
  2. Objective Caml for Scientists (first chapter only)
  3. Unix System Programming in OCaml
  4. Developing Applications With Objective Caml

Oracle Server

  1. Oracle's Guides and Manuals

Oracle PL/SQL

  1. PL/SQL Language Reference
  2. PL/SQL Packages and Types Reference
  3. Steven Feuerstein's PL/SQL Obsession - Videos and Presentations

Parrot / Perl 6

  1. Using Perl 6 (work in progress)


  1. Beginning Perl
  2. Embedding Perl in HTML with Mason
  3. Essential Perl
  4. Extreme Perl
  5. Higher-Order Perl
  6. The Mason Book
  7. Modern Perl 5
  8. Perl & LWP
  9. Perl for the Web
  10. Perl Free Online EBooks (meta-list)
  11. Perl The Hard Way
  12. Practical mod_perl
  13. Web Client Programming with Perl


  1. PHP Essentials
  2. Practical PHP Programming (wiki containing O'Reilly's PHP In a Nutshell)
  3. Symfony2
  4. Zend Framework: Survive the Deep End


  1. Mastering PowerShell


  1. Adventure in Prolog
  2. Applications of Prolog
  3. Building Expert Systems in Prolog
  4. Introduction to Prolog for Mathematicians
  5. Learn Prolog Now!
  6. Logic, Programming and Prolog (2ed)
  7. Natural Language Processing in Prolog
  8. Natural Language Processing Techniques in Prolog
  9. Prolog Programming A First Course
  10. Prolog Techniques
  11. Simply Logical
  12. Visual Prolog 7.2 for Tyros


  1. Practical PostgreSQL


  1. Building Skills in Python Version 2.5
  2. Byte of Python
  3. Data Structures and Algorithms in Python
  4. Dive into Python
  5. Dive into Python 3
  6. The Django Book
  7. How to Think Like a Computer Scientist: Learning with Python
  8. Invent Your Own Computer Games With Python
  9. Learn Python The Hard Way
  10. Natural Language Processing with Python
  11. Python Bibliotheca
  12. Python for Fun
  13. Snake Wrangling For Kids
  14. Think Python (PDF)
  15. Thinking in Python


  1. The R Manuals
  2. The R Language
  3. R by example
  4. Computational Statistics, Jeremy Penzer


  1. Learn Ruby the hard way
  2. MacRuby: The Definitive Guide
  3. Mr. Neighborly's Humble Little Ruby Book
  4. Programming Ruby
  5. Ruby Best Practices
  6. Why's (Poignant) Guide to Ruby (mirror)

Ruby on Rails

  1. Ruby on Rails Tutorial: Learn Rails By Example


  1. Exploring Lift (published earlier as "The Definitive Guide to Lift", PDF)
  2. Lift
  3. Pro Scala: Monadic Design Patterns for the Web
  4. Programming in Scala, First Edition
  5. Programming Scala
  6. Scala By Example (PDF)
  7. A Scala Tutorial for Java programmers (PDF)
  8. Xtrace


  1. Concrete Abstractions: An Introduction to Computer Science Using Scheme
  2. The Scheme Programming Language Edition 3, Edition 4
  3. Simply Scheme: Introducing Computer Science


  1. Sed - An Introduction and Tutorial


  1. Dynamic Web Development with Seaside
  2. Free Online Smalltalk Books (meta-list)
  3. Squeak By Example (Smalltalk IDE)


  1. Subversion Version Control (PDF)
  2. Version Control with Subversion

SQL (implementation agnostic)

  1. Developing Time-Oriented Database Applications in SQL
  2. Use The Index, Luke!: A Guide To SQL Database Performance
  3. Learn SQL The Hard Way


  1. Teradata Books


  1. A Byte of Vim
  2. Vim Recipes
  3. Vi Improved -- Vim by Steve Oualline


  1. Getting started with WebSphere (PDF)

Windows Phone

  1. Programming Windows Phone 7
comments powered by Disqus