I think it says something that K&R C, as a book, is significantly more readable and concise than most programming books nowadays. Part of it is the language, but part of it is simply how the book is approached. Simple statement, simple example, move on.<p>I mean, compare that book to the other programming books on your shelf. It is positively minuscule. And if you compare the writing to that in a more modern programming book, there's certainly a lot of wasted text in newer books.<p>My latest programming book is The Essential ActionScript 3.0 by O'Reilly, and there's way too much embellishment in the text. Not only does it make it longer to read, but it also makes it harder to find particular information, and quickly absorb it.<p>I learned C almost exclusively from K&R C, and I know many others did too, and to this day I wonder how it is that all these new programming language books can be such monolithic texts.<p>"Essential", they say.
The thing that has always struck me about K&R is that it contains no fluff. You get so much information for each paragraph, that you often have to re-read them to get all the information contained therein. Probably the programming book I've used the most.<p>In contrast, the C++ programming language is a mouthful, and ended up being just another pretty book on my bookshelf.
<i>There is, essentially, nothing to be known about C beyond what is in this book. If you can read those 272 pages, and understand them all, then you are well on the way to being a C wizard.</i><p>Say what? This is like saying that once you know what all the commands in Illustrator do, you're well on your way to being a professional illustrator. The reason that K&R is so small is that so much of C programming happens outside/above the language.<p>I like K&R a lot, and I won't argue that it's the best soup-to-nuts C book (though I recommend C Interfaces and Implementations more heartily). But if everything you need to know about C is in K&R, how do you implement a balanced tree?<p>(<i>I caught myself typing "how do you implement a hash table", and remembered that K&R actually has a hash table in it. Damn you, K&R!</i>)
I personally find Steele's C: A Reference Manual far more useful in day to day hacking.<p>But, that's one of four Steele-authored language specs I look at frequently (Common LISP, Scheme, and Fortress), so I might just have carefully tuned my search methods to his writing style.
This is one of the few books I've kept on my bookshelf for many years and still read through it every so often for a C syntax refresher. It's a great read since C syntax and conventions are still so pervasive in many of today's languages. Perhaps, it is one of the few programming books that can be passed down from one generation to the next.
K&R is overrated, just like many "cult" books are. I read C: ARM by Harbison and Steele and after trying to read K&R I stopped because I wasn't getting anything new out of it.<p>Edit: Further proof of this is the blind downvoting typical of critiques of "cult" books. K&R just happened to be there at the right time and it was the first programming book for many people. Their nostalgia makes them think that it is a very good book, when in fact is a simple book that describes a simple language. Nothing bad about that, but nothing spectacular either.
That was my first programming book, and I learned not only C from it, but programming in general.
It's been translated into many languages, I read it in Hungarian. Check out the various covers: <a href="http://cm.bell-labs.com/cm/cs/cbook/" rel="nofollow">http://cm.bell-labs.com/cm/cs/cbook/</a>
K&R's C Programming Language is like the language: spare and elegant. It is not a beginner's book and does not coddle the reader. It is a book for programmers. And it reads as well today as it did 32 years ago.
Ah... this book brings back memories for me.
This is the only programming book that I read till the end three times, not to mention the countless other times I use it for reference.
The only book that can almost match this book is Effective Java Programming.<p>These are the only two books I bought _after_ reading them from front to back as they are a must have for my library.
This is one of the very few if not only tech books I cherish and would never let go of. I'm not a C guru, I did a lot of C in school, but since then almost none.<p>I've been wondering when or if I can get this on the iPad. Even though I own the hardcopy, it has seen better days and it's starting to lose it's binding.
The first post here could not have said it better:<p><a href="http://www.reddit.com/r/programming/comments/bn8y5/kernighan_and_ritchies_the_c_programming_language/" rel="nofollow">http://www.reddit.com/r/programming/comments/bn8y5/kernighan...</a>
K&R is not only about C. It is about programming practices in general and is content-packed. So much power in so thin book, just like C itself, a language with only 32 keywords.
Very nice semantics, but hideous syntax. Pascal had it done right with a more linear declaration syntax. C looks like lisp in a bad way if you make slightly nontrivial declarations. Of course to make matters worse somebody went on and made C++, which must be the most hideous language ever to evolve, possibly because its creator borrowed heavily ideas from how his native natural language Danish was formed; It is mostly comprised of guttural sounds and every new groan you make is added to the language. It has been said that C++ is to C what lung cancer is to lung.<p>Basically we will never get rid of C, for there is just too much piled up on it. C++ though we should replace because it is an atrocity to programming.