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.
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.
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 infographic, 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 ebook shelf into a repository of valuable knowledge without spending a penny.
- 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++
- The Beginner’s Guide to C# and the .NET Micro Framework is a relatively recent publication by GHI Electronics. It is a brief, but concise, guide that should help you get started.
- The C# Programming Yellow Book is published by the University of Hull and, since it’s part of the university’s courses, the book is updated on a regular basis.
- For more specific information you can turn to Data Structures and Algorithms with Object-Oriented Design Patterns in C#. You should also check out Joseph Albahari’s Threading in C#
- Since C and C++ have been around for a while, there is a lot more to choose from, but many of these resources are out of date, or just plain bad. If you are looking for C++ books and tutorials, I suggest you check out this Stackoverflow thread and find something good. I should note that not all of these books are free.
- As for C, you could check out the C Wikibook, Deep C and C++, and Learn C The Hard Way
- 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.
- The Google HTML/CSS Style Guide is a great place to learn more about best practices. The guide contains a myriad of rules governing HTML and CSS style, formatting, meta and more.
- Shay Howe’s Learn to Code HTML & CSS, and Learn to Code Advanced HTML & CSS are two straightforward guides with different learning curves, making them suitable for people looking to learn the basics, or expand their skill set with some advanced techniques.
- If you are familiar with HTML, but need to update your skills, Dive Into HTML5 is a good choice. The focus is on moving to HTML5 and utilising new features, plus, you might appreciate Mark Pilgrim’s style. Other HTML5 resources include HTML5 Canvas, HTML5 For Web Designers and HTML5 for Publishers.
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.
With the introduction of Swift, Apple published a comprehensive, 500-page book, covering the new programming language. The title is not very imaginative: The Swift Programming Language.
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.
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.
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 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.
New Mexico Tech offers a straightforward guide to commonly used Python features, which could be a time-saver for green developers.
Dive Into Python 3 by Mark Pilgrim is all about moving to Python 3.x, so it’s a good choice for developers who need to brush up their skills.
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.
Learn Ruby The Hard Way is a collection of excercises, so it takes a practical approach to learning.
The Ruby Style Guide, hosted on GitHub, documents the style and best practices.
Ruby in 20 Minutes is a small Ruby tutorial designed for novice users who need a bit of hand-holding.
Ruby on Rails Style Guide is another GitHub guide focused on style and best practices.
Ruby on Rails 4.0 Guide is a comprehensive guide covering most aspects of RoR 4.0.
Learn Ruby on Rails as You Modify a Craigslist Clone is a practical tutorial. It can be used by green developers, as well as those with a background in Rails.
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.
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.
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).