Learning a new programming language always is fun and there are many great books legally available for free online. Here’s a selection of 70 of them:
Lisp/Scheme:
Common Lisp: A Gentle Introduction to Symbolic Computation
How to Design Programs
Interpreting Lisp
Let Over Lambda
On Lisp
Practical Common Lisp
Programming in Emacs Lisp
Programming Languages. Application and Interpretation
Simply Scheme: Introducing Computer Science
Successful Lisp: How to Understand and Use Common Lisp
Structure and Interpretation of Computer Programs
Teach Yourself Scheme in Fixnum Days
Ruby:
The Bastards Book of Ruby
Clever Algorithms
Data Structures and Algorithms with Object-Oriented Design Patterns in Ruby
Learn Ruby the Hard Way
Learn to Program
MacRuby: The Definitive Guide
Mr. Neighborly’s Humble Little Ruby Book
Programming Ruby
Read Ruby 1.9
Ruby Best Practices
Ruby on Rails Tutorial Book
Javascript:
Building iPhone Apps with HTML, CSS, and JavaScript
Eloquent Javascript
Essential JavaScript Design Patterns For Beginners
jQuery Fundamentals
Mastering Node
The Node Beginner Book
Haskell:
Implementing functional languages: a tutorial
Learn You a Haskell for Great Good
Real World Haskell
The Haskell Road to Logic, Maths and Programming
Erlang:
Concurrent Programming in Erlang
Learn You Some Erlang for Great Good
Perl:
Beginning Perl
Higher-Order Perl
Impatient Perl
Modern Perl
Python:
A Byte of Python
Dive Into Python
Dive Into Python 3
How to Think Like a Computer Scientist – Learning with Python
Invent Your Own Computer Games with Python
Learn Python The Hard Way
Non-Programmer’s Tutorial for Python 3
Smalltalk:
Dynamic Web Development with Seaside
Pharo by Example
Squeak by Example
Misc:
A to Z of C
Algorithms
The Art of Assembly Language
Building Accessible Websites
The C Book
C# Yellow Book
Compiler Construction
Dive Into HTML 5
The Implementation of Functional Programming Languages
An Introduction to R
Learn Prolog Now!
Learning Go
The Little MongoDB Book
The Little Redis Book
Objective-C 2.0 Essentials
Parsing Techniques
Programming Scala
Smooth CoffeeScript
Starting FORTH
Type Theory and Functional Programming