The Internet is mankind’s biggest repository of knowledge, information, useful (and useless: think of cat pics) digital content. Today, we will be taking a quick look at something useful and down to earth: free online programming books.

There are a lot of useful books, guides, technical documentation, research papers, code examples and testimonials available online. You are merely a Google search away from this stuff, provided you weed out the SEO-optimised content mill pages, which still rank high on Google.

Since we cannot list and review hundreds of books in one blog post, we will be relying on your input. Did you read a free programming book this summer? Or a good paper, a case study? If so, please share it with the community and check the comment section for suggestions made by other readers.

Getting Started On Google And GitHub

Google and GitHub are the obvious places to start a search for free programming guides, books and other content.

GitHub has a list of free programming books numbering more than 500 titles. It’s obvious that GitHub offers a definitive list of free programming books. The books included in this list cover a wide range of technologies and topics, from language-agnostic programming books, mathematics, detailed technical guides for various languages, some hardware-specific development guides, and more.

The size of the list might present a problem for the casual reader because it could be difficult to find and choose only a few books; there are simply too many of them, especially if you are looking for something dealing with a popular topic such as Python, Java/Javascript, C#/C++. We will take a closer look at this issue later on.

Google, GitHub, Universities, Industry - all vital resources for a developer in search of free programming books

Google, GitHub, Universities, Industry - all vital resources for a developer in search of freebies.

As far as Google goes, it remains a vital resource for anyone on the hunt for free resources. Mind you, I am not only talking about free books; Google can be used to research very specific information, find relevant documentation, research papers and so on.

The biggest problem with Google is that many simple search terms won’t deliver satisfactory results. After a decade in online publishing, I’ve come to despise the SEO-optimized gang because the whole idea this particular niche is to create near-useless content that ranks high in searches. More often than not, a widely used search term focused on a popular technology will result in a handful of relevant sites and dozens of SEO-optimised pages that contain rewritten, reheated, and utterly useless content. No matter how Google changes its algorithm, these guys seem to be one step ahead.

Narrowing Down Searches On Google

Since I am catering to a tech savvy audience, I won’t spend a lot of time explaining how Google searches can be narrowed and focused on relevant information. Loads of power search tips are out there, and I guess most of our readers already use them.

Granted, Google may not be the go-to place to search for free books, but books aren’t the only resource we are after. Searching for research papers, technical documentation, or even online discussions, can prove useful if you need to tackle a specific problem.

Google Book Search can be employed to hunt down keywords in numerous library books. Google Scholar is designed to search scholarly material in much the same way. Both can be useful, especially if you are writing a research paper, or polishing some technical documentation.

A good programming book can save time, and much more.

A good programming book can save time, and much more.

Of course, these services merely complement your standard Google search. You can save time and improve the quality of your search results by using Advanced Search features, such as quotation marks, search for specific file types (usually, .pdf), or restricting the search to certain domains. Just a few simple tweaks should help you get the desired result and save some time.

As I said, I won’t spend time and waste space explaining Google power search tips, but should you believe you need to brush up your skills, check out this neat inforgraphic, which covers the basics.

If you are looking for something specific, a method of solving a certain problem, code demonstrations or case studies, Google should be the place to start (provided you use it correctly).

Toptal’s Selection Of Top Free Programming Books

If, on the other hand, you just need some easily accessible free programming books, something to kill time or brush up your skills, resources like GitHub and other compilations of free books are your best bet.

The Toptal blog might benefit from such a list, as well, although I can’t list a few hundred books and offer short reviews of each and every one of them. Although I like to read, checking out each one would be too difficult. This is why I will restrict the list to certain languages, frameworks and techniques, arranged alphabetically.

Language-agnostic books will not be covered, at least not this time around.

Turn your e-book shelf into a repository of valuable knowledge without spending a penny.

Turn your e-book shelf into a repository of valuable knowledge without spending a penny.

Turn your ebook shelf into a repository of valuable knowledge without spending a penny.

Android

  • Google Android Developer Training is the obvious place to start. It offers a lot of useful resources, best practices and so on.
  • Free Android Programming Guide For Begginers is a ten-chapter course covering the basics of Android development.
  • Tuturials Point’s Android Tutorial is another tutorial for green developers. It also includes a number of code examples that may be useful for novices.
  • Coreservlets also offers a number of Android tutorials covering a wide range of topics. This is not a print book, so the online collection is expanded and updated from time to time.
  • If you are looking for free design advice, you should check out Styling Android. This is not a proper book, either, so the content is updated on a regular basis.

I should note that most Android tutorials, and virtually all books, assume that you already know your way around Java. In case you don’t, you will have to start there before moving on to these Android resources.

C Sharp, C, C++

Git

  • If you are not sure whether Git is right for you, Version Control by Example will help you decide between Apache Subversion, Mercurial, Git, and Veracity.
  • Stanford’s Git Magic is another quality resource, and unlike most books in our list, it is available in a range of languages, including Chinese, French, Italian, Polish and Russian.
  • The GitHub Cheat Sheet is a useful collection of hidden features and power user tips for Git and GitHub.

HTML and CSS

Many authors choose to cover HTML and CSS in a single publication, so I will list both.

iOS

Five years ago, Apple published six free ebooks for iOS developers: Cocoa Fundamental’s Guide, The Objective-C Programming Language, iOS Application Programming Guide, Object Oriented Programming With Objective-C, iOS Technology Overview, and iOS Human Interface Guidelines. The books were freely distributed via the iBookstore. Apple also offers additional resources for developers new to iOS, such as Start Developing iOS Apps Today.

Java

If you are into Java or JavaScript, you can consider yourself lucky, because there are dozens of good, freely distributed books you can use. In fact, there are so many that I’ve decided not to list most of them, because this post would end up looking like a Java 101 class.

  • Bruce Eckel’s Thinking in Java stands out and comes highly recommended.

  • Google’s Java Style Guide is a must-read for novices and veterans alike.

  • Moving on to another tech giant, Sun’s Java Tutorials is another compilation of useful Java stuff.

  • Introduction to Programming in Java is a Princeton textbook, so if you could not afford an Ivy League education, you can at least use the same syllabus. It is also worth noting that many universities around the world offer similar textbooks, which may come in handy if you are not a native English speaker.

JavaScript

As I said, dozens of different JavaScript books, tutorials and code repositories are available online, so I will narrow my list down to just a few titles.

PHP

Since PHP has been around for ages, there’s no shortage of free books and other resources. However, many of them are out of date (although they can still be useful if you are just grappling with the basics).

  • Hacking With PHP (formerly Practical PHP Programming) is a frequently updated resource, and in its latest incarnation, has a lot of fresh info on PHP 5.6.

  • PHP Best Practices is self-explanatory and updated on a regular basis.

  • If you’re looking for something that offers everything in one place, the PHP Programming Wikibook could be what you’re after.

If you are using a framework such as Laravel, you can still find some useful freebies, namely official documentation.

Perl

  • Impatient Perl by Greg London is a quick reference guide. It’s useful for developers who are just getting started, but can also be used as reference by seasoned developers.

  • Modern Perl is a relatively recent publication, so it’s ideal for developers who have some Perl experience, but need to refresh their skill set.

  • O’Rilley’s Mastering Perl isn’t the most recent Perl publication, but it is still a good resource with plenty of tutorials.

Python

Python developers are a lucky bunch because they can choose from dozens of free books. This causes a problem because I can’t list nearly enough in this article. There are a number of publications for novices and battle-hardened veterans, as well as some very specific niche stuff. Still, there are a few obvious choices, such as Google’s Python publications.

Ruby and Ruby on Rails

Ruby and Ruby on Rails are the weapon of choice for many developers, hence there is no shortage of books and user guides.

Useful Resources Are A Click Away

As I said earlier, this list is limited to free publications covering certain languages and does not cover niche topics, or language agnostic programming books. In case you are looking for something more specific, I suggest you take a look at GitHub’s list of free programming books.

In addition, books aren’t the only way to improve your skills. Earlier this year, Toptal published a list of quality developer blogs, pitched by our community. In case you missed it, please check it out. I also suggest you take a look at Toptal’s resource page; our team is working hard to expand and update all sections, and turn it into a vital resource for all freelance developers, not just Toptal members.

Don't be lazy. You can always learn new skills, in any setting.

Don't be lazy. You can always learn new skills, in any setting.

I was also planning to write a few paragraphs covering the latest e-book software and hardware, but I decided it against it. Besides, our readers already know their way around various gadgets and know what works best for them, e-ink or a nice IPS LCD. Anyway, hardware should not be your primary concern.

A good book is a good book regardless of how you choose to read it, on an aluminium tablet, or a clay tablet.

On a personal note, I am actually considering purchasing a cheap, dual-SIM smartphone from China, with an e-ink display on the back. That should free up some space in my backpack when I head down to the beach; two mobile networks to keep roaming costs down to a minimum, and a proper e-book reader in a single device, that sounds practical, right? So, all I’ll need is a phone, a towel, bottle of water, and some flip-flops (pun intended).

Hiring? Meet the Top 10 Freelance Software Developers for Hire in December 2016
Don't miss out.
Get the latest updates first.
No spam. Just great engineering and design posts.
Don't miss out.
Get the latest updates first.
Thank you for subscribing!
You can edit your subscription preferences here.

Comments

Rodrigo Medeiros
"Eloquent Javascript" is also a good free book for beginners.
Alecks Gates
That was my first thought. I consider it a must read for anyone learning javascript.
Andrei Smirnov
For JavaScript I would recommend the GitHub book: "You don't know JavaScript". For .NET: "CLR via C#" is the best reading as well as Jon Skeet's blog. For C++: all books by Jeff Alger.
Steven Sierra
All ok, but there should be a book called: "How to survive to tech changes in the next 10 years".
Demir Selmanovic
I guess that would be more a Science Fiction book :)
Harry Martin
Good books thats really helpful for beginners those who are interested in learning about programming languages. I would also like to include one such advanced tutorials @ http://learnsauce.com where it includes step by step approach which makes learning interesting and fun too.
Zen
I would say the ultimate list of <a href="http://java67.blogspot.co.uk/2015/03/10-books-every-programmer-and-software-engineer-read.html">programming books</a>.
comments powered by Disqus