My favorite programming books
06 Nov 2014Computer 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
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
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
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
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
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
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.