on 24 January 2003
It is difficult to avoid cliches when talking about this book - it is just so good, that one can't help heaping superlatives on it.
This book is affectionately known as 'K & R', after the names of the authors, and it is almost definitely the most widely respected of all books on any given programming language.
This is the book that introduced the 'Hello World!' program to the world :-), which is now practically a standard first program in any introductory book on any programming language.
This is straight from the creators, and the implied authority, while an excellent reason in itself for taking a look at the book, pales in comparison to its other merits - brevity & clarity being foremost.
This book is best appreciated if you already have some programming background - i say this from experience, since i knew Fortran 77 & Pascal before i learnt C, and the knowledge of Pascal, in particular,made it much easier for me to pick up C than classmates for whom it was the first programming language.
Of course, if you're new to programming, you could still try learning from this, but it might be a bit of a struggle. If so, the books by Kelley & Pohl, K.N.King or Gottfried(Schaum series) may be useful for 'getting upto speed' with C first, and then coming to K & R.
C is the one language which is both 'high level' and 'low level' at the same time - to date, it is the nearest to the ideal of a programming language that is easy enough in description to be followed by human readers, and at the same time close enough to the machine's language to be executed fast.There are faster languages, to be sure - assembly language is necessarily faster than any high level language. But just try coding a reasonably involved program in assembly, or even reading such an effort ! There are other languages which might be 'easier' for people to read, but they are slower(C++,Java,etc,etc).
It is also the 'mother' of all modern biggies - C++ owes even its very name to C, Java was derived from C++, and Perl is **written** in C !!
So knowing C would give you a better appreciation of the other languages as well.
And it's still the language of choice for systems programming - so no systems programmer can afford to be a non-expert at C.
Anyway, back to the book - and what a book it is! The authors are not just great programmers, they are outstanding writers as well.
The book is just 274 pages, but it will teach you more than most thick 'tomes' on programming could ever possibly teach.
And no, that doesn't imply that it's 'dense' or abtruse. The authors choose their words judiciously, and there is not a word out of place.The book is designed to make you think, for there is no better way of learning than to think things out for yourself.
Reading the carefully worded text and working out the compact examples will teach you a lot - if you can go through all the exercises, well then you'll surely be an expert when you finish the book. I never did, but i learnt enough to implement several projects in C over the past six years, right from searching and sorting to cryptography and speech recognition.
The examples in this book are a thing of beauty (and therefore a joy forever!!). Elegance, in one word.
It has that universal characteristic of a great book - no matter how many times you read it, you'll learn something new.
You may buy several other books for specialized purposes of particular projects, but when you want to get into the nitty-gritty, to clarify any elusive points, you'll return here, to 'the word of the law', as laid out by the creators of the language.
Basically, if you program in C, you've just got have this book -
and once you have it, you'll find it indispensable.