C Programming Language (2nd Edition), by Brian W. Kernighan and Dennis M. Ritchie – Dennis M. Ritchie is the father of C programming who passed away recently. This is hands-down the best book for those who like to master the C programming language. Every one of the best C programmers that I know recommend this book even today.
The C Answer Book, by Brian W. Kernighan and Clovis L. Tondo This book contains the solutions to the exercises in ‘The C Programming Language,’ Second Edition. Even if you can figure out answers to all the exercises yourself, you should still read this book, as the authors have explained in detail about each and every solution.
Unix Programming Environment, by Rob Pike and Brian W. Kernighan While this book explains in detail about how to use various tools in UNIX environment, this power of this book is in its explanation about the philosophy and fundamentals of UNIX programming environment and various tools.
The Design of the UNIX Operating System, by Maurice J. Bach This is the best book that will give you the internal details about UNIX Sys V. Even thought this book was written in 1986, the concept explained in this book is still sound and extremely useful.
The AWK Programming Language, by Brian W. Kernighan, Alfred V. Aho, Peter J. Weinberger This book is written by the authors of the AWK itself. This book explains the fundamentals of the AWK language and also provides several practical examples that will help you understand how to use AWK in real life scenarios.
UNIX Network Programming, by W. Richard Stevens This was one of the textbooks in my College and I read this cover to cover. This is the best book even today for those who like to understand how to do Network programming using C in UNIX environment.
Software Tools, by Brian W. Kernighan and P. J. Plauger This explains how to develop software tools using best practices. The examples given in this book are written using Ratfor (Rational Fortran), but it is easy to understand when you read through the code.
The Practice of Programming, by Rob Pike and Brian W. Kernighan Every programmer should read this book. This book contains several advice on how to to design and write efficient program. This contains several examples in C, C++ and Java.
The Elements of Programming Style, by Brian W. Kernighan and P.J. Plauger There are 77 rules presented in this book that should be followed by a programmer for good programming style. While the examples given in this book to explain these rules are written in FORTRAN and PL/I language, these rules still apply to all the programming languages.
The Design and Analysis of Computer Algorithms, by Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman This was also one of the textbooks in my College. Every programmer should read this book to understand the fundamentals of several computer algorithms before they start developing any serious application. This book explains several algorithms including lists, push-down stacks, queues, trees, sorting, searching, graphing, string-matching, etc.