Haisum's Blog It's not a bug, it's a feature.

My favorite programming books

Computer science is a huge and constantly changing field of study. To keep myself updated I study a lot of random books. Here’s a short list of books I can recall right now. Will keep on adding more as I read more in future.

The Linux Programming Interface by Michael Kerrisk

The Linux Programming Interface

This book is considered the Bible of Linux Kernel API. This will teach you two very fundamental concepts that every good software engineer should have. One is system level knowledge of How Operating Systems work and second is The C Language. Many of my concepts about sockets, file systems, parent, child and zombie processes were cleared after skimming through this book. If you are stuck on something that’s system level you will definitely find an answer in this book. This is one of my favorite most books.

Steve Krug’s Don’t Make me Think

Don't Make me Think

Every web developer/designer should read this book. Problem with many designers today is they are deviated from the usability of an interface and inclined towards the fanciness. This book teaches with illustrations and simplicity what constructs a user friendly website. I have personally read it twice and refer back to it when someone argues about usability of an interface.

Dive into Python by Mark Pilgrim

Dive into Python

A simple and complete reference to Python. This is a fun book for a fun language Python. You open python shell on half of screen and this book on other half scroll trhough the book execute programs on shell and you would know all fundamental Python.

Operating System Concepts by Abraham Silberschatz

Operating System Concepts

I have always been interested in Operating Systems and implementation. I have gone through many books for that purpose but this one I found to be best of all. It has all introduction + code samples and references to how a particular OS feature is implemented in Linux kernel, windows and mac. Best thing about this book is that unlike many OS books, it does connect theory with practice.

Algorithms by Robert Sedgewick

Algorithms by Robert Sedgewick

You should keep this book with yourself all the time because you would refer back to it again and again and again. This is reference book for awesome coursera courses Algorithms I and Algorithms II. It teaches Sorting, Searching, String Operations, Hashes, Trees, Graphs and many other vital Algorithms that every programmer should know. If you are well versed in this book, you will shine in many job interviews.

The Mythical Man Month

The Mythical Man Month

This is one of classics of Computer Science. You should read it once you have passed the developer phase and are responsible for managing programmers and taking business decisions. This book’s author sums up more than 25 years of experience of managing programmers and programming projects. Everytime you read thiss book you will find something new to apply in your team. Must read for every software project manager.