Steve Oualline
1 Look for a cow on the cover Practical C not C++
Look for a cow on the cover of this book. I bought this book for a C in UNIX class. The C part is great. There is hardly a page that does not have an example or enlightening diagram. However, the only reference to applying this to UNIX is in the back where it "Practically" says that there are different versions of UNIX. It never really clamed to be a UNIX book on C. The section on unbufferd I/O has a little more on the UNIX handling of files. Over all, until something better comes along I am still using this book.
2 Perfect
I purchased this book about five years ago. Back then I had an unquenchable thirst for anything related to computer programming. This book is the best book I have *ever* seen on C for a beginner or intermediate programmer (I own over 30 programming books, covering various languages). By no means is it reference material, but that's not its goal. The thing that struck me the most about it was Mr. Oaulline's emphasis on good programming strategies. His explanations are simple, yet very effective. This is the only book I would ever recommend to anyone who wants to learn C or strengthen good habits for programming in general. All of this, and I was only barely in High School when I read it.
Now, five years later, I am in college-- and to my absolute surprise this very same text is assigned for an introductory C programming course. They could not have picked a better book, nor could you!
3 Fustrated by lack of solutions to exercises
Overall this book covers all the corners of C. What fustrated me most that none of the exercises in the book had solutions. You know how when you are learning something new it's nice to go peek, and see if you are on the right track. Well with this book I guess the author feels you should figure it out on your own. I've not got the time, I've got to learn it fast, trial and error are a waste of my time. 90% of the time you are taking your coding approach from something aready written anyway.
4 good book
I am torn as to give it 4 or 5 stars. I'd really like to give it 4 1/2 stars but I have 4 or 5 to choose from.
I don't know if it's just that I've read about pointers so many times and finally got it but this book seems to me to have the best explanation on them yet. I mean most books tell you about them but in trying to describe them they loose me on why I should use them. This book gave a quick explanation of what they are and then showed a practical example of how they are used. To me, this was very important.
This is also the first book I've read that really explained the preprocessor to me and now I finally understand that #include "whatever.h" really isn't c-code but rather preprocessor stuff. It contained very good explanations of this and macros.
While I don't know that I would recommend this to a beginner, it certainly helps the intermediate programmer (which I feel that I am) move up a little. It is also one of the first technical books that I really didn't want to put down and that I read like a novel. While I skipped over most of the exercises, as I felt I would go back to them, I felt a lot of the questions that are in the book are good examples of how to spot common errors. Mostly stupid programmer errors like forgetting to close a comment which I think helps make the book more "practical" like the title suggests.
If you write code for a living, this probably isn't the book for you. If you don't already know a programming language more complicated than BASIC or don't have some basic knowledge of C then this book is not for you. HOWEVER, if you've taken a class in c, read a book but didn't really feel like you've really understood c, this book is for you.
5 a good C book but not a reference or turtorial
the book talks all the interesting aspects of C, and very useful if you are familiar with it. but not a good book if you need one for reference.
6 It's ok but there are better books out there
This book is ok but I've read better books on C Programming. If you got this and The C Programming Language by Brian W. Kernighan ... then together you've got a good start on learning C and many of the modern tools (such as make) that are important to all C programmers.
7 Fairly well-written introduction to beginners
Steve Oualline's Practical C Programming 3rd Edition, whether or not it provide the fairly well-written introduction to programming with C, certainly deserves up to three stars. The book starts from the discussion of good programming style. His suggestions on styles might be a subject to debate, however, are worth to listen as a one-time-reference for beginners who want to obtain readability to their source code. On the one hand, this book will give you the advantage of ease of reading through entire pages of the book, and, on the other hand, you will be able to avoid cumbersome work to search for well-written tutorials on the web consuming your precious time. Although the book is not the best, I emphasize this book is a fairly well-written one-time-reference. If you need more preciseness describing C programming language, this book is not the choice. If you are a very beginner who want to look at *loosely* overview of how to program in console mode with C programming language, this book is your choice.
8 Maybe as an introduction, but worthless as a reference
This book does a reasonable job introducing basic C concepts. However, the topics are interspersed with the author's opinions on programming style and process. This makes looking up answers difficult. Furthermore, major language concepts are either glossed over briefly, or left out entirely (e.g. I can find no mention of function pointers). I bought this book expecting something like other O'Reilly titles (a concise and thorough language reference), but I ended up fairly disappointed. Finally, the author's attacks against Intel's x86 architecture, however accurate, are inappropriate for a guide to a programming language.
9 Not a strong book on C at all....
When I was introduced to the world of C ten years ago in college, I thought this was a good book. It's easy to read, it helped me get a couple of simple concepts under my belt right away, etc. However now that I have learned much more about the language I can say that I have many issues with it. For example, teaching people to cast every atomic statement with a return value to "void" -- e.g., every time they use printf, he puts a cast to "void" in front of it. Come on, if it's auto duration the stack will get wound down just fine. Has anybody *ever* crashed a machine by calling printf without casting it to void (that wouldn't have crashed otherwise?) And he also does not really explain storage classes well... if at all. Whether something is declared in file scope or in a function (or is static, or extern, or volatile) has large design implications other than "put related stuff together in 1 file". What about sharing data you don't want to pass around to 10 different functions? I just think this was glossed over. And what about compilation sequence points -- a major source of bugs -- e.g., will "y[x]=x++" work? This book wasn't awful, but it certainly was not NEARLY as good as "Schaum's College Outline: C Programming" which is just effing fantastic, and obviously the K&R bible is an eternal classic that some programmers will probably literally want placed in their caskets someday. But for an O'Reilly book this was one was kind of *too* friendly, fluffy and oversimplified. It is has pictures of little fairies waving magic wands. It's cute but come on... this language isn't for Mac users... true, pure C will always be for *nix programmers, fans of AT&T labs and the original UCB tinkerers and tokers whose genius has been parasitized for decades (what language is *your* DB engine, web server, compiler or interpreter written in?) Keep the fluff off the shelves and leave room for the good books. I like O'Reilly but this book went to market prematurely.
10 Good for instruction but buggy examples
I recently purchased the 8/01 printing of this book. I did so after a quick scan of the book. My decision was heavily based on the fact that it's publish by O'Reilly, a company I had come to trust for accuracy. The code examples in this book begin to make me question that trust.
Don't get me wrong, the author is very clear in conveying the given topics, and for that alone the book is worth purchasing. However, the book is riddled with errors in the example code. In some cases the errors are intentional and corrected later as part of the lesson. Many others have been reported to O'Reilly, but appear to have gone unchecked. The current errata page for this book is quite long and was last updated (8/15/01 as of this writing) during the same month as the printing I have. However, O'Reilly still has these glaring errors classified as unverified.
Overall the book has been a wonderful learning tool, but you must take the source with a hefty grain of salt, and make your first stop O'Reilly's errata page.
11 For those with common sense
I am new to programming and have tried several other C books, but nothing like this one. I think the best part about this book is on pointer, ch. 13 show good graphical description for readers to understand with ourt confussion. if you are trying to learn visual C++ compiler, it uses 4.0 or later and I do not think it was intended to teach visual C++. I agree with some of the negative reviews that this book may not be good for everyone, but I would strongly recommand to those who have good common sense.
12 Quite a useful book, for any programmer!
I judged this book not so much on how it taught C, but rather, how it taught to write programs. In that respect, it was supreme. I am more of a perl programmer, but the tips here on professional "effective" programming were quite useful for any language I know.
As a book on C, it is also quite good. There might be better books out there, but I am happy to say that I am much more comfortable with C than I was before. The only complaint is that the problems in each chapter (quite useful for practice) didn't have answers in the back (such as O'Reilly's Learning Perl). Anyhow, worth the time and money in my humble opinion. Thanks Steve!
13 BEST C BOOK EVER
Well i don't know who could not give this book 5 stars i've been reading C and C++ books since the age of 15 and the only complete... book very concise and very clear strong emphasis on style book i have read is this one. This is one of those books you must have to truely understand C. cant wait for another one.
14 O'Reilly has outdone themselves once again!
Once again, O'Reilly has outdone themselves. I was recentlly assigned a project where some CGI programming was done with C and I needed to come up to speed on C fairly quickly. As usual, I sought O'Reilly. While having programming experience in other languages, the book has done a great job of bringing me up to speed on the intricacies of C and how to effectively use the language. I would recommend this book to anyone who has some programming experience and is looking to learn somehting new.
15 One of the Best!
I'm surprised at some of the single-star reviews for this book. IMHO, anyone who thinks this book isn't clearly written simply didn't spend enough time reading and thinking about the material. Let's face it, programming isn't easy -- you need to learn some basic concepts, then learn the syntax of a language, then practice and move on to advanced features. This book does an excellent job of helping programmers, even complete novices, do just that.
The author also goes beyond the basics, and covers some hints and tips that are not mentioned in any other beginner's book that I can find. For example, many beginner's books warn about the erratic behavior of scanf(), but only Practical C takes the extra step by providing a complete workaround (the author advises not to use scanf(), and to use fgets() and sscanf() instead).
I'm only a beginner, and so far I have purchased and read through Greg Perry's Absolute Beginner's Guide to C, Dave Mark's Learn C on the Macintosh (and on Win 95), the classic K&R C Programming Language, and Practical C. All of these books have their advantages, but I think K&R is a bit too difficult for complete newbies. The Perry and Mark books may be a little too simple, but they're excellent quick reads. Practical C is the perfect middle ground, and I recommend that it be read in conjuction with one of the easier books before moving on to K&R.
I also recommend that you read through a chapter completely to get the concepts, then go back and do all the exercises for reinforcement. That's what I did, and even though I struggled to "get" some of the material the first time around, on the second read-through everything managed to sink in.
I can't recommend this book highly enough -- it is clear, accurate, and a pleasure to read and work through.
16 Very good C book
I'll be brief. This is THE book that really got me started in C programming. I have read a couple of other C books before but this one was by far the best one I have read. My recommendation is that you should have some programming knowledge first (any language) before diving into this book, I had PASCAL. Although it's possible to learn from it as a complete newcomer it's probably harder to digest, that really depends on the reader. This book is just about basic C syntax and a couple of data structures, which is good IMHO. Nothing really advanced so you will have to move to another book afterwards if you wish to become well versed in C.
17 Best C book I have Ever read
Undoubtedly the best C book I have ever read. Stresses readability of code over size. Demonstrates how to effectively Debug code, how to optimize code, and gives down to earth practical instruction on C programming. I would recomend this book to anyone wanting to learn C, or to anyone who knows C and wants to further their knowledge of good C programming theory.
18 Very good, not perfect
The author has many good points about style, many valid. Except that I find his over use of comments unessicary, especially when commenting declarations of variables. Simply unneeded (most of the time) If you name variables correctly. While I definitely do not subscribe to the idea that hard code to write should be hard code to read. Some basic literacy, in common variable names such as I or j for integer counters. I am about ? way though the book, I particularly liked chapter 7 (Programming process). My only other criticism of this good book, is it doesn't prepare the reader much to some of the common bad conventions and bad habits some people have, and likely will see. The book is pretty easy to read and it's a good beginner book, if not the preferred beginner book, just mildly over hyped. I learned some new things, a good read.
19 Great book
This is by far the best book I've ever read on C, everything is nicely illustrated and easy to understand, like all books by ORA. This book made all the ambiguities of C go away. I enjoyed the chapter he devoted to style. TWO THUMBS UP FOR STEVE OUALLINE!
20 Excellent Explainations of Key C Concepts
This book provides excellent and clear explanations of three key C programming concepts: pointers, bit manipulation, and structures. If you are new to C programming, and do not know anything about these three concepts, you will after reading this book. Or if, as in my case, you are knowledgeable in C programming, this book is an excellent reference when you forget some of the syntax and constructs of pointers, bits, and structures.
If you are an expert programmer and already know everything there is to know about pointers etc., this book will show you nothing new. On the same token, if you are starting from the very beginning and know nothing about C, you would probably be better served with a beginning book.
If you have been through the "Hello, World" programs, are starting to deal with functions and variables, then this book will round you out and turn you into a skilled programmer.
21 Don't buy it!
This book is totally useless for beginner.When you read it ,you will feel very confused.There are not enough examples and the explanation is not clear.If you really want to learn C,I recommend you the book which called 'Beginning C' by Ivor Honor.'Practical C Programming' is totally useless ! Don't buy it!
22 Okay
I program in both C and C++. This book is okay. There are better ones. I suggest watching Takin' It All Off VHS video rather than reading this text.
23 OK, not great; some parts very confusing
The bottom line is that I used this book to learn C and I program a lot in C now. However, I felt the section on arrays was insufficient. The book reads pretty well, but then once you try to sit down and code, you realize that the wool was being pulled over your eyes, that the description wasn't adequate enough, especially with regards to arrays. Steve Oualline does not devote enough time to these and doesn't place enough emphasis on the various forms that a pointer (and it's value) can take on. The examples on recursion are also very ambiguous.
I haven't read any other books on learning C so I can't compare it with others, but in an absolute sense, I don't feel this book was all that great. This is my feeling nearly 2 years after having initially digested it for a class. I believe that there are some very important parts of ANSI C that were not discussed, like how to pass over a field with sscanf using the "%*_" instead of "%_". I think a better book would have saved me a lot of hours of debugging because it would have highlighted the areas that easy to make mistakes in,(for instance, counterintuitively having to use strcpy() instead of illegally reassigning a string once it's been intialized.)
24 Not as helpful as other ORA books
I bought this books because of the usefulness of other ORA I've bought. This one just wasn't as good. When the book contained the information I was looking for, it was presented well and very helpful (assuming I could find it). But I found the index to be incomplete making it difficult to find many topics, and many other common features which I would have found useful were left out all together. This is more or less adequate, especially for a beginning programmer, but I'm sure there's a better book out there.
25 A disappointment
I must admit that this book was a disappointment, below the standard of other ORA books.
I suppose it is supposed to be targeted towards those who are just learning to program; however, the value of C as a first language is, in my opinion, questionable. I found that many topics which interested me (and would have been relevant) were only touched lightly if at all, and its poor glossary and index rendered it a poor reference work.
However, the sections on coding style are very good.
26 C in a nutshell....
Simply put. I've tried about 3 books on C prior to reading this one. I picked it up at the library. Good enough for me to buy my own copy! Get this book if you really want to learn C.
27 O'Reilly - A way of life...
Reading other people's reviews for most of the O'Reilly series books, what most people are forgetting is that O'Reilly books are not for the faint hearted. These books are written by people who use these languages for a living. They teach people in the more advanced capabilities of the language and the proper ways to use it. In fact, several of the books are written by people who were developing the languages. Practical C Programming and all other books in the Nutshell series are for technicly enclined people, not for beginners to the area. These books have been ranked as the best of the best for a reason, their real. Any book that tells you your going to learn a language in 21 days is not going to teach you any details and turn you into a code copier, not a code programmer. But then again, that's MHO.
28 Great Book
I loved the book. It was rather short for a total language, but it sure did tach me great programming techniques as well as the language. I was very happy how Oualline constructed book. His writing style is great for teaching. The best thing about the book is how he doesn't assume you're a total idiot, you've got a mind and it works as well.
I _can not_ stop reccomending his chapter on pointers. It's the best ever.
This book is a great stepping stone into the language of C.
29 A Very Good C Book. Typical O'Reilly Excellence.
If you are at all familiar with O'Reilly computer books, you know that they typically put out a good product. This book is no exception. It is not a book for "dummies" or "idiots" in that it does not present the material in 5 sentence paragraphs and have zillions of useless pictures. In addition, it does not purport to teach you something as complex a C programming in an exorbitantly short period. What is DOES do, is teach you C Programming in a straight forward and through manner. The O'Reilly books -- and this one is no exception -- are no nonsense technical books. They get to the heart of the subject matter and deal with it. You don't have to be a computer guru; but you must posses some basic common sense and a willingness to learn a subject, and not just expect to be an expert by reading a book. Programming is learnt by doing, Period!. This book acts as your guide as you practice and learn this wonderful skill. All the source code in the book (i.e. the examples) can be downloaded from O'Reilly's web site. If you want to learn C, get this book.
(P.S. No, I do not have any vested interest or personal stake in O'Reilly Publishing... I am just tired of sub-standard books in the computer industry and applaud this company's quality work.)
30 Just take a look
I wanted to learn C in a very bad way and this text was my gateway to understaing. I am a EE at PSU and this book brought me up to the level of a computer science major. Very quick reading! I recommend it to anyone, beginner or advanced!!
31 Be careful of these reviews...
Looks like someone who doesn't know there's a difference between "Practical C" and "Practical C++" has managed to mix up which reviews go on which page, and has even repeated the same review on BOTH pages. Chances are that most reviewers were not confusing the languages: just someone at Amazon.
32 Huh?
What is everyone talking about this is a C programming book. Alot of people are saying this is good for learning C++ or that it's is good to learn the basics of C++. I've never read it but the title says C so what does that tell you about how much C++ is covered.
33 This is the best introductory C book I have read.
Very clearly written and easy to understand, Practical C Programming is quite possibly the best introductory C book around. Not only does it plainly and cleary explain such things as declarations, expressions, arrays, qualifiers, etc., but it also gives proper advice on style, debugging, and commenting. Unlike some of the huge "paperweight" programming books, this one is thin, small, and worth its weight in gold.
34 Terrible .....Just Terrible
With its Bright Purple pages and unclear explainations in this book . I couldnot find a worse book to read on C . If you are a newbie to C find another book this book will only make you run away from C. This book should be givin to people who have already read 2 begginner books on C.
35 Not for true beginner programmers...
Through out the book, the author pops new materials with out really explaining the background, leaving me confused (often times I needed to look at other c books to understand). Although this book is not for true beginners, it has the best explaination and easy to understand chapters on pointers. probably the best book on pointers I've seen. If you are confused about pointers, get this book.
36 If you're buying one C book, make it this one !
I've read many C programming books in my time, all of which tend to take the reader in circles, only serving to confuse her, rather than educate her. Steve Oualline's "Practical C Programming", however, is a different story: written with the dry, often tongue-in-cheek humour that has come to characterise O'Reilly books, the reader is taken from basics, through commenting, all the way to the more complex C topics. If you plan to buy only C book, make it this one.
37 Good for beginners who want to learn C
Being a younger programmer with very little experience in programming, this was the book that I learned from. This book has a great approch, and stresses not only C coding but style as well. One of the best things about this book is the exercises that it gives, at the end of each chapter. This definetly is one of the better C programming books to learn from. I recomend it to every begining programmer.
38 Certainly one to keep
This book was used as the text book during my first year in university in a C programming course. It was a very comprehensive book for starters and has a lot of very practical, industry-oriented tips. Now, years after I have finished the course, I still have the book with me. One very important thing that I picked out from the book which I always pass on is "A working program without comments is a time bomb waiting to explode." Many more of such "ultra practical" tips in the book.
39 Great For Beginners Into Programming
This is a great book for first time programmers like me. Unlike most other books that are out on the market, this book provides sufficient and whole rounded information, including what to and not to do. Other then providing step-by-step lessons, it also provides sufficient understanding of the language. Highly informative. I fell in love with it immediately!
40 Best book on practice of programming....
I want to Tell that I have never read a programming learning book as good as this.. I had never understood how pointers worked, if this book taught me pointers, it had to be good... Now I'm searching a book on building C like this, I hope Steve is preparing one....
41 Had to use another book that was more understandable
This book is useless for beginner C programmers. This was the book that was assigned to a 2nd year programming course. In a class of 50 students, most of us found the book useless. It was too complicated, didn't have precise answers, and didn't explain things in detail. Not enough examples were given.
42 excellent real-world instruction
The author does an excellent job of introducing students to practical habits that will assist them in writing applications for the real world. His humorous approach keeps the book interesting, and he uses illustrations generously to explain the concepts being presented. He begins this excellent book by emphasizing the need for good documentation in programs, a feature that is missing in most other textbooks on the language. His approach helps to build good coding habits and style, not just syntax and mechanics of the language. This is an excellent addition to any C programmer's bookshelf, whether they are beginning to code with the language or have several years of experience with C.
43 A mediocre book from a great publishing house
I felt this book is structured in an awkward manner and very tough to use as a reference. It certainly does not live up to the high standard of other Nutshell books I've read. I would barely recommend it for beginners who want a tutorial-based introduction. For anyone else, it's not worth the price.
44 The BEST C book this C programmer has ever read!
I own literally shelves full of C and C++ books, and I've been programming in C professionally for almost ten years. This is THE book to have on C. I insist that every junior programmer I work with has a copy! It addresses not only programming syntax but good software engineering practices, and it has the most realistic real-world types of problems I have ever seen. When he asks you to find the bug in a section of code, those are exactly the type of bugs I see in novice programmers' code again and again. C is not a language for people who need to be coddled, and this book doesn't hold your hand; it just gives you lots of great information on C and how to do good software engineering. If you are a serious C professional, you should own this book.