Study

Intro

I run into free e-books on programming languages frequently.  Releasing or self-publishing e-books has become a great way for programmers to showcase their expertise by teaching others.  Today, coding noobs have their choice of  hundreds of free e-books, as a popular Github repo has illustrated. While not all are worth sharing, the ones I listed below have grown popularity due to great writing and providing an effective guide to learning.  If you are an analytical learner and prefer logical thinking, these books will help you in learning a new language or mastering one.

Please note that not every language is included (sorry Perl, Scala, R, and Haskell fans).  I thought it was important to only focus on a few main languages (with the exception of frameworks).  I also took some time to review each book to find out if it was beginner friendly.  If you feel there is a book that deserves to be on the list below that I left out, please subscribe to Our Code, then send me a message and I’ll review it.

Git

A Practical Git Introduction by Marchel Bling

Git Pocket Guide by Richard E. Silverman

Learn Enough Git to be Dangerous by Michael Hartl

HTML & CSS

Code Guide: Standards for developing flexible, durable, and sustainable HTML and CSS  by Mark Otto

Dive Into HTML5 by Mark Pilgrim

What is HTML5? by Brett McLaughlin

Smashing Magazine’s Mastering CSS3

Javascript

Eloquent Javascript by Marijn Haverbeke

Essential JavaScript and jQuery Design Patterns by Addy Osmani

Human JavaScript by Henrik Joreteg

JavaScript and jQuery: The Missing Manual, 2nd ed. by David Sawyer McFarland

JavaScript plus a Dash of jQuery by Nicholas Johnson

JavaScript the Right Way by William Oliveira

Test-Driven JavaScript Development by Ravi Kumar Gupta, et. all

Java

Oracle’s Java: A Beginner’s Guide

Introduction to Programming in Java by Robert Sedgewick and Kevin Wayne

Learning Java by Patrick Neimeyer

Think Java: How to Think Like A Computer Scientist by Allen B. Downey

Thinking in Java by Bruce Eckel

C

C Programming by Wikibooks

The C Book 2nd Edition by Mike Banahan, Declan Brady and Mark Doran

Learn C the Hard Way

The Little Book about OS Development (based on C) by Erik Helin and Adam Renberg

C#

Beginner’s Guide to C# and the .NET Microframework

Techtopia’s C# Essentials

The C# Yellowbook by Rob Miles

C++

The Rook’s Guide to C++ by Jeremy A. Hansen

Thinking in C++ Volume I and II by Bruce Eckel

MySQL

The Official MySQL Tutorial

High Performance MySQL by Baron Schwartz, Peter Zaitsev, Vadim Tkachenko, Jeremy Zawodny, Arjen Lentz, Derek Balling

Objective-C

Apple Developers Object-Oriented Programming with Objective-C

Python

Automate the Boring Stuff by Al Sweigart

Full Stack Python by Matt Makai

Interactive Python: How to Think Like A Computer Scientist Ed. 2 by Brad Miller and David Ranum

Learn Python the Hard Way by Zed Shaw

Think Python by Allen B. Downey

PHP

PHP in a Nut Shell

Practical PHP Programming

Techtopia’s PHP Essentials

Ruby

Learn to Program by Chris Pine

Just Enough Ruby to Get By by Jason Kim

Pragmatic Programmer’s Guide to Ruby

The Ruby Style Guide (open source)

Frameworks

.NET Book Zero by Charles Petzold

AngularJS in 60 Minutes by Dan Wahlin

Practical AngularJS by Dinis Cruz

CakePHP Cookbook

jQuery Mobile: Up and Running by Maximillano Firtman

jQuery: Novie to Ninja by Earle Castledine and  Craig Sharkie

jQuery Fundamentals

Master Drupal in 7 Hours by Symphony Themes

Node Up and Running by Tom Hughes-Croucher

Objects on Rails by Avdi Grimm

Ruby on Rails 4.0 Guide