Books every programmer should read Part 2

This is the second part of our book posts []

Clean Code by Robert C. MartinOne of the most popular books by Robert Martin AKA Uncle Bob. So what is Clean Code?

To quote the book:
“Clean code is code that has been taken care of. Someone has taken the time to keep it simple and orderly. They have paid appropriate attention to details. They have cared.”

Or to reiterate:
“Clean code is code that is easy to understand and easy to change.”
Why should you care? Because most of the time, code will require change, if not by you, then by someone else.
Writing clean code will help someone (and your future self) to understand the code.The book is divided into three parts.

The first describes the principles, patterns, and practices of writing clean code.
The second part consists of several case studies of increasing complexity.
The third part is the payoff: a single chapter containing a list of heuristics and “smells” gathered while creating the case studies.

It has a galore of practical examples about the how and why of writing clean code.If you don’t have time to read it, you can find the gist of it here:


The Clean Coder by Robert Martin

Another one from Uncle Bob. This time instead focusing on code and techincal skills, it takes upon soft skills.
To be a good programmer, you don’t need to be just a good craftsman. You also have to be a good colleague.
You need to approach software development with honor, self-respect, and pride; work well and work clean; communicate and estimate faithfully; face difficult decisions with clarity and honesty;
and understand that deep knowledge comes with a responsibility to act. And how to achieve that? Check this collection of Uncle Bob’s anecdotes, stories and work experience with deadlines, pressure and teamwork.

Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford SteinConsidered as _the_ algorithms textbook, or even the algorithms bible. Also know as CLRS, a reference to the last name of the authors of the book.

All the algorithms discussed in the book are amply explained. They are presented using pseudocode, readable by programmers of all skill levels, even those who are relatively new to programming.

Used in many university and online courses as a textbook, with lots of pratice problems.