Table of contents
In this list, I will only add books that I’ve read (at least some parts) and that I’ve really enjoyed and recommend for everybody.
There will be a short description for every item on the list.
Programming
If you want to learn programming, there’s a lot of books out there, which may be a problem if you don’t want to waste your precious time looking for good ones. So here’s some recommendations.
The C Programming Language, 2nd Edition
Authors: Brian W. Kernighan and Dennis M. Ritchie (Original C designer)
This book is just amazing, it’s my first recommendation for everyone who’s trying to learn C. If you are into Computer Science and yet don’t know C, I think you have to learn it as fast as possible. The book has a profound introduction to the language, every chapter will present a new subject, with examples and a list of challenging and fun exercises for you that will make you learn every subject the hard way, things like control flow, functions, program structure and etc. After you finished the first chapters you will already be prepared to write useful programs.
In every chapter you’ll find an explanation of a new concept and some usage examples, after you read and understand the given examples, you’re going to come across some exercises — and they won’t be easy, I promise you, but after finish it, you will master every detail of the new concept and will suddenly feel comfortable with the individualities and aspects of C, this is very helpful because almost all modern programming language is based on C.
I love that the book gives you the feeling of being an developer in the 80’s with nothing but an old computer with a terminal and a C compiler, most of the time you won’t be using any pre-made libraries or functions to solve the exercises, but will create the solutions from the ground up yourself, which will be good lesson for you to learn how everything on your computer was made, how it does simple things like reversing a string, highlighting matching brackets, searching for files and et cetera.
You will see that C is a superb general purpose language to build fast (I mean really fast) programs, having full control of your system and hardware.
You’re going to understanding how nowadays modern languages (like Python or Lua) or operating systems (like GNU/Linux, MacOS, Windows, Android, iOS and etc) only are easy as it is thanks to brilliant people who have spent hours and hours writing small pieces of programs to do simple operations for you, so you don’t have to worry about building everything yourself.
Where to find it?
You can get a legal copy on Amazon or try to find it somewhere on the internet , which isn’t difficult since it’s the most popular programming book out there.
Pro Git
Author: Scott Chacon
Whether or not you want to be a professional developer, git is a tool that you must know how to use, it’s the best version control system out there, and without it you’ll have a painful journey with a lot of headaches trying to keep track of different versions of your code, reversing break changes, splitting your work and etc.
Pro Git is a marvelous git book for either beginners or experienced developers, it covers not only the basics of the tool like creating your first git repository, recording changes and adding remotes, but also more advanced concepts like the branching workflow, how Packfiles and Git Objects works, and a lot more.
Where to find it?
You can read it online or download a copy for free on the git official page or buy a “dead tree” version on Amazon as described on git’s page.