If you’ve just decided to become a programmer or you are already in the path to becoming one then you are in the right place. I have read and (still do) many books during my learning journey but in this article I present a list of the best books that help understand important topic. These books are the special ones that shaped my understanding of computer science, made go back to them every time I’m in doubt, and carved their names in my memory for long.
Let’s just jump into it:
This is the book that introduced me to programming design pattern and what an introduction it was! Clear, comprehensive, and with easy to understand and imagine real-world examples that stick to your memory easily. Every time I have a doubt about which design pattern to use, I go back to this book and it solves my problem. Mandatory read by any programmer!
Which book would be better to learn a programming language more than a one written by the creator of that language? Moreover, what if the language is as hard as C++? This book is a comprehensive guide for C++ 11 and provides a good guide for many general programming concepts including Object Oriented Programming.
If you want to handle code conflicts like a boss and understand why your manager start pulling out his hair when you amend a pushed commit, this is the book for you. This book goes into depth with the version control tool and it helped me understand the genius yet simple concepts git is built on.
Although functional programming is unlikely to threaten the dominance of imperative programming anytime soon, learning a functional language helps enrich the programmer thinking and broaden their perspective. Many functional concepts were introduced to imperative languages in the last decade such as lambda functions and high-order functions. Hence, this book is a great read to write more elegant less verbose code.
Since this book is 944 pages long, I doubt the authors know what “in a nutshell” means… However, this is a great reference book for Linux. It servers as the go-to book whenever I need some information about a command or a system feature. I consider knowing how to handle Linux/Unix as a core skill for any serious programmer.
The book I learned Java from. Easy to read and comprehensive. Great to pick up Object Oriented Programming.
This book was given to me by my team lead who introduced our company to this charming programming language. Although I had a love-hate relationships with many programming languages, this precious gem is still by far my favourite. It introduced one of the best programmer-friendly frameworks I’ve seen and many brilliant pleasing-to-use libraries. I hereby feel the need to give the following disclaimer: learning Ruby is guaranteed to produce unwanted side effects that include displeasure and disgust when dealing with any other peasant-level alternatives (joking… kinda :P).
This is a comprehensive book on SQL database management. The book covers the relational database model, design, Querying, and transaction management in general without covering a specific system. In the last chapters, the book discuss these concepts in existing database systems: Postgres, Oracle, DB2, and MSSQL. It’s a great resource to build a great base knowledge of how relational databases work.
A fast read to get exposure to the modern concepts of machine learning for anyone in the computer science field. The point of the book is not to provide code but to explain the concepts. A heads-up: a lot of math in there, but again: you’re reading about machine learning. If you don’t want to deal with math, you’re into the wrong topic! ;)
This book helped me to understand how to do SQL optimizations and how indexing actually work. Every developer deals with query optimizations at some point whether it’s for large data migrations or application performance enhancements. Definitely must known principles for ETL and data engineering.
I have to admit, this is not a personal recommendation. Through the years, almost everyone I know recommended this book to me as the best book to read for programming but I didn’t have the chance to read it yet. Maybe I should now :D.
Here’s what a friend of mine had to say about the book: “I would say Clean Code is the best book on programming. It touches on many aspects on CS while giving a voice of wisdom on what the author believes is most clean… It’s very opinionated though.”
I will leave it to you to judge on the last criticizing statement.
Data is becoming a cornerstone in software services. Whether it is the business model or...
Server-side pagination is a commonly-used feature in SQL databases. It helps when showing a huge...