151 of 157 people found the following review helpful
on February 16, 2007
If you are new to C++, this is THE C++ you need to read. There is another book called "C++ Primer" (no plus). The following comment is what I wrote for the book C++ Primer, which may give you some idea of the difference between these two:
This is a great book for anyone who want to enhance his/her knowledge
on C++, but this is by no means a primer book. If you are new to C++,
read the book "C++ primer plus" first. It is so funny that the book
"C++ primer plus" (which is also a great book) is really an introductory
book. The names of these two books should be swapped because C++ Primer
introduces more advanced topics and the topics that an experience programmer should know but a student does not need to. From my teaching experience in a state university, I would suggest students to read C++ books in the following order:
C++ primer Plus
Thinking in C++ (great book, free on the internet)
The C++ Programming Language (by Stroustrup)
Then you may want to read some books on special topics such as Visual C++, Database, etc.
180 of 191 people found the following review helpful
on June 25, 2005
Stephen Prata: give the man a cheer (beer!) (or many)! This book is good...no, not good...GREAT! A book doesn't last 20 years (yes, 20) through various editions (5 obviously) without being something special. And this is no exception. This is unqeustionably the best beginner/intermediate book on C++ I have ever read (it pains me to say it...but it has dethroned Object oriented programming in c++ by Lafore, ISBN 0672323087 in that respect). Maybe it's just me, but Prata has a tone (a way) that just makes it VERY easy to relate to the concepts he is trying to explain. He doesn't belabor a point, nor does he treat you like a gumby or one of his colleagues to impress with his knowledge of the arcana of C++. He, oddly enough, seems more interested in teaching you (properly) then trying to get paid (look at the size of the book! if he were looking to get paid, cut the book in half, sell it in two parts or sell one reduced size part for the same price).
Prata offers fair coverage of the language: particularly the basics, as well as some nice software engineering opinions along the way (not in little colored boxes like Deitel with an Ant picture...which is cool: the ant analogy just annoys me- loss of identity, no individuality, part of a hive, etc...). Obviously he can't cover everything. Check out the chapter listing to see if he has what you want! But what he does cover-> the ++basics are extremely well done. There are programming exercises at the end of each chapter of course (with answers).
Prata has adopted a friendly, welcoming tone, laced with humor (not insipid humor, or just plain lame). He doesn't lambast microsoft or push any particular product/compiler. He provides little tips if you're using new or old, non-ansi-c++ compliant compilers. This is just a really helpful, useful, good to learn from book. I've read it to recover some obfuscated c++ knowledge lost from spending too long in java land (a nice, highly productive place...but just a little too safe if know what I mean: everything is fenced in and there are no pointers for self navigation!), so my opinion may be from somebody who is not a beginner. Nevertheless, having taught people, i would suggest this: this is a pedagogically sound work that offers achievement and understanding for anybody willing to step up and take a serious whack at c++. Read it and enjoy a true rarity nowadays: someting that not only lives up to its promise, but goes beyond it. This is money that is sure to be spent in a non-resentful manner: there's no buyer's remorse here! There's nothing about this book that I find weak.
Very well done Mr Prata!
Definitely Two thumbs up!
78 of 82 people found the following review helpful
on April 6, 2005
The decorously named "C++ Primer Plus, fifth edition" is a book for C++ beginners and those who would consider themselves a C++ virtuoso. C++ Primer Plus doesn't follow the trend of being the type of programming book that you either learn from and set away forever on a dusty shelf nor the type that you can use as a reference guide but can't use it to learn from. This is one of the few programming books I have read that I have both learned from and can still use as a perfectly suitable reference guide.
In C++ Primer Plus, you are lead through the "cin's" and "cout's" of C++. In this book you will be given well guided lessons with examples from the basic to the advanced features of this wonderfuly capable programming language. You will learn the common C++ programming idioms and techniques as you turn the pages, each example constructed clearly and professionally. One of the great features attributed to this book is the dedication to teaching its readers C++, one being each example code given to you to
use was carefully crafted to be compitable with most popular and even a few less heard of, C++ compilers.
The author is also good at explaining each piece of code with wonderful precision and patience, so well in fact they don't have to provide constant screen shots to show what they are trying to explain - unlike many other programming books.
If you have ever wanted to learn a programming language that is greatly respected in the business world, then I would of course suggest picking up C++. If you want a great book to learn from and use as a guide throughout your programming life for C++, then I suggest picking up "C++ Primer Plus, fifth edition". Just as much as I appreciate this book for its ability to teach people directly, I equally would recommend this book as a
good teaching text for those of you who may already know C++ but find it hard to teach others. I myself hope to use this book to teach others by one day.
39 of 42 people found the following review helpful
on April 14, 2006
I'm a very picky kind of guy when it comes to buying books on programming. To see what I think of this book, you should read my little story.
When I entered the wonderful world of programming, I chose Visual Basic .NET. This language was famous for being easy to learn. What I didn't know was that it had grown into something more complex, and .NET is a bit tougher to learn than any of the previous versions. So I thought it would only be natural that I needed to buy a couple of books to master the language.
The more books I bought, the more I got sick and tired of authors who weren't able to follow simple naming conventions. Another annoying thing with .NET books is that you can find one sentence in almost all of them saying, "You don't need to know this" when it comes to using built-in functions. Whether I need to know something or not is my decision, not the author's decision. So the author's job is to explain it, and if I really "don't need to know it", I can skip the section. But to make matters worse, most authors didn't even switch to .NET and continued writing bad code as they did with previous versions of Visual Basic, which has nothing to do with .NET. In consequence, I switched to C#, hoping that things would get better.
After the switch, I could still use my Visual Basic .NET books because the syntax is so similar. But I decided to buy some C# books since I hoped that quality would get better. In fact, quality did get much better. But another problem was still the same: most beginning .NET books are too trivial, too superficial, and too incomplete. For a good start with .NET, you need quite a couple of books. The nine books on .NET I own range from beginner topics to advanced topics, but I still find it's incomplete and much too superficial. Not even all the books together give me the information I want.
In terms of syntax, C# and C++ are quite similar. If you can read C# code, then you can read C++ code and vice versa. I know that many C++ book authors go a bit deeper, so I decided to buy a book on C++ to see if that could provide me with the information I want and need. After some research, I ordered C++ Primer Plus mainly based on the excellent reviews here at Amazon.
The reader arrived quickly, and I started immediately. After the first chapter, I knew I had wasted a lot of money - on the nine books I own, that is. This one is a beginner's book, but it goes much deeper than all the other books I own together. If I had known this before, you can be damn sure that C++ Primer Plus would be the only beginner's book on my shelf.
The author has written a true jewel - coherently, concise, and fun to read. It even covers topics that you can't find in advanced .NET books, so I guess another switch is about to happen.
If I had to vote for the best beginner's programming book, this is it. No matter at what level you are, this book is great to have on your shelf. You'll appreciate Stephen's talent to get you started in case you've never touched programming before. If you think you're advanced, put this book on your shelf - it's great for reference as well. Fed up with superficial .NET? Come over to C++, Stephen makes it so simple. Want to continue with .NET? No problem, I have nine books for sale.
26 of 27 people found the following review helpful
on March 4, 2007
I was learning C++ in order to program music applications. I found this book to be the clearest computer book of any I have ever read. He orders his thoughts clearly. The examples maintain interest. Unlike the "learn c++ quickly"-type books, he goes into great detail on subjects like dynamic memory allocation etc. You will be programming simply in hours (my ten year old could program the first few chapter exercises), but can go the the high intermediate level with this one book. Don't waste your time with any other c++ book. Get this one first!
30 of 32 people found the following review helpful
on October 26, 2006
I looked very hard to find the best possible book for learning C. It would be nice if you could absorb new programming languages through osmosis, but it doesn't work that way. Some people will tell you to buy the K&R book, but that's pretty old! This book covers the C99 standard, which is the latest. I've read my share of awful programming books and can tell the difference.
C Primer Plus, 5th edition provides clear and detailed explanations of all concepts covered, as well as review questions and programming excercises at the end of each chapter. As any serious programmer knows, you can't learn just by reading. You have to DO the excercises. I regard the excercises a book has to offer as just as important as the material covered. The excercises in the Big Blue Book are varied and just challenging enough to really get you to remember what you read in each chapter. If you follow through with this book you WILL have a solid foundation in the C programming language.
22 of 23 people found the following review helpful
on February 16, 2009
This review is a rewrite of a previous review which I have deleted since on further reflection I have decided that it was too critical and did not represent the book fairly.
Basically, I had given the book a low rating based on my belief that it is not suitable for beginners. While I still hold this view to some respect, I now feel that I placed too much emphasis on this criticism when I decided to give the book only two stars.
Let's get that aspect out of the way first. My only real criticism of this book is that, as others have mentioned, the first 100 pages or so are a little long winded and potentially confusing for the beginner. The issue here is that Prata goes into, in my opinion, far too much detail when describing the printf() and scanf() functions along with their various conversion specifiers, modifiers and flags. As a total newcomer to C I felt like I was reading a reference manual at first. If you've never been exposed to C before - i.e. either you're a complete programming beginner or you've only ever programmed in simpler, higher level languages like BASIC or Python - then it can be quite overwhelming since the user is exposed to more layers of detail and complexity, with a much higher potential for bugs and errors. Unfortunately, Prata bombards the student with far more detail than is necessary at this stage.
For example, is there any real need to cover so many conversion specifiers and modifiers, when surely it would be more prudent to explain two or three and then refer the student to an appendix for the rest? The same can be said with his treatment of data types - the book in my opinion dwells too much on types and their various possible sizes on various systems. As if that weren't enough, we're also exposed to another potential wave of confusion as Prata sees fit to bring different C standards into the equation. For example, consider the following passage on page 156 (still relatively early in the book):
"When appearing in an expression, char and short, both signed and unsigned, are automatically converted to int or, if necessary, to unsigned int. (If short is the same size as int, unsigned short is larger than int; in that case, unsigned short is converted to unsigned int.) Under K&R C, but not under current C, float is automatically converted to double. Because they are conversions to larger types, they are called promotions."
At a stage in which the beginner is not likely to feel very confident about the bigger picture, statements like this are liable to either confuse, bore or a mixture of both. I found that it disrupted the learning flow somewhat. At times during the first 150 pages of this book, I found my attention wandering as I worried which of the information I should be retaining and which was just extrenuous detail that I would pick up again later. It was a while before I felt like I was making any progress, put it that way.
OK, so that's the negative out of the way. It's a little hairy for the beginner to begin with. But having now gotten all the way to the end of the book, I feel like heaping praise on what is a very well structured and thorough introduction to C.
One of the main things I like about this book is that it doesn't treat the reader like a teenager. One of the most irritating things about some of today's modern programming texts is that they go out of their way to "liven up" the learning process, as if they're so worried that students are going to find the practice of programming boring that they feel like they have to inject goofy pictures, cheesy jokes and crossword puzzles into the proceedings (see the Head First series for a perfect example). Not so with Prata's "C Primer Plus." Programming is a very logical, but complicated process and in truth that's what attracts a certain kind of mind to it. If a dry, logical approach to the subject doesn't attract you then to be honest programming isn't really for you. When you get down to the practical nuts and bolts of programming there are no cartoon gorillas or wordsearch puzzles or goofy analogies to liven things up. I can see the attraction to this style of learning for someone who isn't interested in programming at all but who is forced to learn it for a course, but if you're really enthusiastic about coding then a treatment like Prata's "C Primer Plus" is going to feel just right.
He doesn't repeat himself to excess (like other programming authors I could name) and he builds on previously learned knowledge at a pace which is just right. Each chapter ends with a very well worded summary to stimulate recall, as well as some excellent review questions and programming exercises.
The programming exercises are what really make this book in my opinion. They're graded just right and contain a mix of short exercises in which for example you're prompted to write a function that does some simple task to demonstrate some concept or other - and much larger exercises on which you can find yourself working most of the evening if your'e not careful. It's virtually impossible to breeze through the exercises in minutes, which means that if you stick to your guns and complete them, you really will feel confident and familiar with the concepts you've learned in that chapter. If you don't complete the exercises, you're not going to make it through this book, put it that way. I found them extremely useful and very satisfying to complete - for instance, in one exercise Prata has you writing a simple airplane booking program with two levels of menus, using structures which are then writen to disk in a binary file. It's upon completion of exercises like these that you really feel like you're a C programmer and it's impossible not to feel very pleased with yourself.
The subject of pointers can be a make-or-break issue for the C student and on reflection Prata explains them very well indeed. Initially I was confused and a little frustrated, but I think that was because I'd found the book very easy up until that point that my brain took a little while to change to the required gear to understand them. But once I'd gotten over my initial confusion I found the subject very interesting and understandable. Again, the end of chapter exercises are a superb way to absorb and intergrate this topic.
After a surprisingly understandable chapter on bit-fiddling and an admittedly dreary chapter on the preprocessor and the standard library, the book really takes it up a notch in the final chapter on advanced data representation and it was at this point I really started to feel things come together, albeit with some mental effort. The concepts of linked lists and binary trees can feel complicated to the beginner since it's a step up from the theoretical treatment of syntax and structure to a more applied subject. And while I found the subject of binary trees very heavy going at times, it was great to finally get through it and to feel like I understood it.
After completing this book all the way to the end I really feel like I know enough about the basics of C to tackle some more involved programming texts and indeed I've just started "Practical Algorithms for Programmers" by Binstock and Rex, for which the last chapter of Prata's primer has really prepared me. It really feels as if I've worked out in a mental gymnasium.
If you have done absolutely no programming before whatsoever then I'm not sure I'd recommend this book. In fact I'm not even sure I'd recommend C - maybe it would be better to play around with something like Python for a while in order to learn the basic concepts. This book is no "C for Dummies" and it does require a lot of time and effort to get through. But the results are worth it. This is probably the best (and most thorough) introduction to the C programming language on the market and it's worthy of a place on anyone's shelf.
53 of 63 people found the following review helpful
In the fall of 2004, I used the fourth edition of "C Primer Plus" as the text for my class in introductory programming in C. Although I was not part of the decision to use it, I found it to be more than satisfactory. The explanations are detailed and the order of the coverage is appropriate, although like almost everyone else, I altered the order of presentation a bit. It covers what we commonly refer to as "plain vanilla C"; in other words programs run from a command line interface. The coverage is complete, everything that one would cover in any beginning course in C is present. The exercises and programming examples are generally well done, and the answers to the review questions are included.
In looking through the fifth edition, I found very little that was different from the fourth edition. The order of the material and the explanations are almost identical. Therefore, my evaluation of the book is a bit different. I give it poor marks as a new edition, as I did not see anything that justified publishing a new edition. However, since the fourth edition worked so well, this one is also a good choice for learning C. Therefore, my rating of this book is simultaneously an A for content and an F in terms of being justified.
12 of 12 people found the following review helpful
on June 26, 2007
If you already know some basic programming concepts, and want to see how C++ works as compared to what you already know, this book is fantastic. You can be writing your own programs in a short time. He does not shy away from explaining fairly complex things early in the text, and makes sure to explain everything he uses in every code listing, which is very very helpful. I'm not sure I would use this book if I had never written a program in any language, though -- the same explanations that I appreciated might be too much for a complete novice.
15 of 16 people found the following review helpful
on January 17, 2006
I've been working through this book to learn C++. It is an excellent teacher. I particularly like that it does not assume I am an expert C programmer like so many other C++ books. It also doesn't use C-ish code to do lots of the common tasks.
The exercises are good...not too difficult, not too easy. They tend to take me 15-30 minutes each. I haven't had any problems compiling the examples in the book that I've chosen.
However, when I reached Chapter 13, the binding broke. I now have two books loosely connected by a thin strip of paper. I'll have to rebind it, probably as two different parts. For the cost of this book, I expect a better quality product. None of my heavily used O'Reilly texts have ever had their binding break. So I've subtracted one star for that.