Amazon.com Customer Reviews
Timeless. Simply Essential. Simply the Best. - Review written on April 04, 2008
Rating: 5 out of 5
The "K & R", as it is widely known has a reputation of both being the pure encapsulation of and a terse discourse in the C Language. Both characterizations have equal merit. That being said, this shockingly succinct (at only 272 pages) publication is both tutorial and reference. In short, more of the "madness behind the method" is covered in this tome than the unwieldy but for some reason mandated college texts from the likes of Deitel or from the more cursory "Dummies" efforts. From the onset, the authors waste no time jumping into each concept with solid code examples. At first these may seem a little complex and in actuality they are--many of the standard library functions are stepped through to drive across such concepts. The authors preface with "C is not a big language", and that is true, however when one considers how the "B-52" of programming languages has been the linguistic basis for the more popular Java, C# and C++ (not to mention what for Ruby, Perl and Python are implemented in) the essence of this work by the authors of the language cannot be overstated. This is written with the student of the programming art in mind, whether at the collegiate or professional level. This should be a required introduction for Comp Sci or Engineering majors to that art, and every serious programming student or practitioner should own it. Given that it still holds its original value, chances are most do. Don't let the price fool you--The C Programming Language is worth its weight in gold!
Not as good as "C: A Reference Manual" - Review written on March 05, 2008
Rating: 3 out of 5
6 customers found this review helpful, 2 did not.
Everyone goes on about K&R ... God's of C etc. etc. Yes, they may have invented the language but you would think otherwise from reading this book.
I programmed C for an embedded system for years and often sought answers about the very lowest level, nitty-gritty details of C. For a while I turned to this book, but soon learnt from experience that I could ALWAYS find the answer, or a better answer, in "C: A Reference Manual".
This book was published in 1988 and is showing its age. It has not been updated with the latest ANSI/ISO standardizations. It is also very dated in it's layout, typography, approach etc.
Summary: If you want the definitive C reference book, buy "C: A Reference Manual". It's not 1988 anymore - move on people!! Skip this book.
My first and most important programming book, 27 years ago - Review written on January 10, 2008
Rating: 5 out of 5
2 customers found this review helpful.
The other comments capture the importance of this book, so I won't dwell on it. The main point I would like to make is that this book is accessible to somebody who has no programming experience at all, as this was my first book for my first programming language over 27 years ago in my high school. We had a pdp11/70 running UNIX and all I knew at the time was how to do basic UNIX commands (ls, cp, rm, and then cc, of course), and how to drive a text editor, a variant of Emacs.
The rest is up to you. You need to have a passion and it will help a great deal to have a mentor or a teacher who can answer all your questions. I knew I had the passion when I couldn't sleep at night.
One last thing: Programmers who learn C and really understand it, pointers, and "how strcmp actually works" will be good programmers in higher level languages like Java, Ruby or anything else that comes along. If you start out with the higher level languages and never learn what is really going on at the machine level (which is where C is at), you will write inefficient code and have no idea why. The world is full of programmers like that today. Try not to be one of them.
Excellent resource for C - Review written on September 03, 2007
Rating: 5 out of 5
2 customers found this review helpful.
C is easily the most important programming language. Windows, Linux, etc, are written in C. Most computer languages are written in C. There's a reason for this: speed and control of computer resources. The virtue of speed is self-evident. The virtue of proper stack, cache, memory, and I/O management is just as significant. Learning to program in C teaches you to respect and get the most from the computer's hardware. This is especially true if you program in other languages. C also teaches coding discipline.
This book is not an easy read. It's a rewarding read. It does not code for you; it does not hold your hand. (As in anything else in life, hand-holding retards your development.) To become good at coding, you need to practice a lot. You need to fail a lot. You need to climb over your frustrations and plug away until you "get" it. C won't give you instant gratification like PHP, Perl, Ruby, et al. Instant gratification is overrated, especially when it comes to computer programming. Haste so often makes waste.
I do not claim that learning C is mandatory for being a good programmer in another language. I will claim, however, that if you're solid in your C skills, then you will be a good programmer with a very marketable skill that will differentiate you from the masses who have no clue about things like spatial locality or two's complement, etc.
If you have a true desire to become a superior programmer in any language, buy and read this book.
Very authoritative book, but some tech background needed - Review written on July 19, 2007
Rating: 4 out of 5
Seeing as this is written by the guy who invented C, you cant go wrong when it comes to accuracy and information here. Overall, the book sets a good pace, and explains all the concepts quite well. However, there are some leaps in logic, and having the help of a somewhat "easier" book will help readers without a background in science/logic/math/whatever. Something along the lines of the "for Dummies" books would be an example. Even so, the chapters make sense, and everything is explained well, but good luck doing the sample problems based upon what you learned in the chapters without the aid of a secondary source.
Excellent reference + programming tutorial - not however for novices!! - Review written on April 21, 2007
Rating: 4 out of 5
5 customers found this review helpful.
As somebody else said, this book is NOT for a programming beginner - its style of writing is quite terse with few or no actual illustrations (via drawings of flow-charts {or equivalent}, programming-structure, etc.) versus a lot of text to read through. To make matters worse, C (and its derivatives like C++, C#, etc.) is a very LEAN (and truly MEAN!!) programming language 'per se' - with relatively few prewritten macros, subroutines and functions, one can get frustrated very quickly! [Furthermore, C and its derivative compilers don't attempt any error-recovery of faulty compiles - the tiniest error can therefore upset matters in spite of a fundamentally worthy algorithm!]
Those who've already had previous programming experience will love this book (especially if they like 're-inventing the wheel', which lean & mean programming entails); others would do better to invest either in another book, another computer-language (my favourites in spite of their being hard to get to - especially the former! - are PL/I and Ada) and ideally both!
Excellent text, just not for beginners to programming - Review written on December 30, 2006
Rating: 5 out of 5
3 customers found this review helpful.
I think the reviews and high marks are very fitting for this book, for what it is intended to be as noted in the prefaces -- "This book is meant to help the reader learn how to program in C." "The book is not an introductory programming manual; it assumes some familiarity with basic programming concepts like variables, assignment statements, loops, and functions. Nonetheless, a novice programmer should be able to read along and pick up the language, although access to a more knowledgeable colleague will help."
The book is pretty concise, and packs a lot information and examples into the book that are excellent. Even though it is concise, it still does a pretty good job in explaining C and it's constructs. I was especially pleased in the second edition because they expounded a bit more to reach further down to the more inexperienced programmer, like me, to lend a hand. The examples are very good and they all actually work. What also is nice about the examples is that they are very useful in the real world, and pretty much complete, not just snippets -- this book will never really outgrow it's usefullness to you. Additionally, the assignments do a nice job in reenforcing what you have learned and allow you to put into practice the concepts, and even stretch your abilities a bit more.
So in summary, this book is excellent for the general audience of programmers who want to learn C, and also appropriate for the more inexperienced programmer, and also for the newbie with no programming if s/he is technically inclined, although for the newbie I would probably recommend instead the "C primer plus". I find myself borrowing someone's "C primer plus" after I've thought long about, experimented, but was still unclear on some issue that I just didn't quite get from this book. However, if I could only have one C book, this would be it.
One of the Great Programming Books - Review written on October 29, 2006
Rating: 5 out of 5
I've used several programming books to teach me languages. First it was the "Learning Perl" and "Programming Perl" books from O'Reilly. Then we had "C++: How to Program", from Deitel and Deitel. But none of those can come close to this book.
K&R manages to teach an entire programming language in but a few lessons. As they say, C is a small language: it doesn't need a 1000 page book! Short, easy-to-understand, and right to the point, this books teaches the syntax of C, the usage of C, common paradigms of C, and so on. Possibly confusing practices ( while((int c = getchar()) != EOF) ) are well-explained, and you come away with a fantastic foundation of this language.
The exercise are fantastic, and some are quite difficult, forcing you to think and apply yourself. My one complaint is that solutions are not provided, but these are easily found online.
Even once you've read this book, it can be a fantastic reference. There are tomes out there dedicated to C reference, those may be better for, say, writing a kernel. But for most people, this book works fantastically.
I cannot recommend this book enough for learning C.
One of the all time greats - Review written on June 16, 2006
Rating: 5 out of 5
For learning C programming, this book is the gold standard. It is unpretentious and to the point, assuming that you have the general concept of what it means to program a computer and want to learn the C language. It is gentle, but not touchy-feely, and guides you through what you need to know.
Personally, I think "The UNIX Programming Environment" by Kernighan and Pike is an excellent companion to this book (assuming you have a Unix-like environment with tools like make, yacc, and lexx). That book conveys much of the philosophy of Unix and C that has made them such powerful and lasting foundations for everything we use in computers today. Taken together, these two books give a solid (albeit fairly low-level) foundation.
Now, you may ask, why would I want to learn the C language and these low level tools today, when I really want to create great Web 2.0 sites using Ruby on Rails? (Now that's a reference that's going to date quickly, I fear.) The answer is: you probably don't. For a great many programmers, there is probably no reason to master these basics that are so close to the core of the machine. But if you are intent on mastering software development from high-level fast prototyping to low-level "to-the-metal" tweaking, this is where you need to go, and this book will convey the enjoyment and purity of working at that level with computers.
P.S. Shout out to Anne Glaser - if you see this, it's the best answer I can give to your question - sorry I didn't see it earlier.