Customer Reviews

65
4.4 out of 5 stars
Your rating(Clear)Rate this item


There was a problem filtering reviews right now. Please try again later.

Showing 1-10 of 17 reviews (4 star)show all reviews
143 of 146 people found the following review helpful
on October 14, 2005
Format: PaperbackVerified Purchase
Let me state up-front that this is an indispensable book for me, and, as a reference, or as a source for expanding a basic C++ capability, it's easily worth 5 stars, not 4. In fact, as an intermediate-level C++ user, this is the most indispensable book that I have. I have 15 C++ books on my shelf, and this one (the fourth edition) is the most comprehensive, even surpassing Stroustrup's tome in most areas. (Stroustrup's influence on Primer is pretty obvious in spots.) The book's depth and its style of presentation, however, will mean that it's not the best primer for newcomers, and that's why I only gave it a 4-star rating. Look at the painting metaphor expressed on the front cover of the book. This book is more than a primer: it's a full pallet of colors, and as such is more than a beginner "painter" will be able to put to use quickly. I need to clarify what I'm saying here.

You might ask how a book can be the most comprehensive available without being longer in page count. The answer comes down to style. This book rarely expends space on full-length, executable code examples. The treatment of nine out of ten subjects offers only snippets of code - not complete executable examples. Many books offer examples that take up multiple pages for the code and multiple pages for the line-by-line explanations of the code. This difference in presentation is the single biggest reason why C++ Primer can offer so much more thorough coverage of C++ language features in fewer than 900 pages. The downside is, if you intend to learn C++, you absolutely must experiment with working code - there is no other way. The fact that this book does not offer much complete working code means that you will have to spend more time getting yourself set up to experiment. This will be especially true if you are a beginner, just because it will be harder to get things working.

The conciseness of code examples is matched by conciseness of explanations. In this regard, however, I have found no downside: the vast majority of explanations are extremely clear to the point of elegance. I've found only a few flaws in clarity, which are probably left over from earlier editions.

The tremendous depth of this book will be another weakness for newcomers to C++ who need to get started quickly. In my opinion, you just can't get started quickly when every treatment of every subject has to cover all of the ins and outs of that subject. There are too many subjects and too many ins and outs. If you try to go straight through the book, you'd better be prepared to work lots and lots of problems along the way: it will take so long to get through it that if you don't practice as you go, you may find yourself forgetting almost as fast as you're learning.

The other side of the coin is this: if you really do take this book, work through it from start to finish, and really master the material, you'll have a fantastic knowledge of C++. I seriously doubt that three good college courses in C++ - assuming no prior programming experience - would teach as much. The fact that you'll have to develop your own working code to demonstrate each feature will, like the depth of treatment, make you a better programmer, even though it seriously slows you down in the process.

You can conclude, then that if you are a newcomer to C++, and especially if you are inexperienced with programming in general, this book will be a long, hard climb. I'd be willing to bet that fewer than 5 percent of purchasers of this book start at the beginning and work straight through. Even so, if you are a newcomer taking a C++ programming class or just using another book to get started, it will be valuable for parallel reading and will come in very handy when you want to do a deep dive. Finally, don't forget that if you have a basic grounding in C++ fundamentals and you want to grow from there, this is a dynamite, five-star opportunity.

I feel like I have to elaborate here a bit as well. Time after time after time, when I've wanted a better understanding of a really fine point on the language, I've turned to this book and been rewarded for doing so. Every single subject is explained fully and, in most cases, eloquently. You can learn to do a lot quickly in C++ using other resources, but C++ offers the ability to fine tune and get close to the hardware. This book will make you better understand what the compiler is doing. The authors took the time to make extensive use of cross-references, which are invaluable in a subject this complex. The explanations, bolstered by cross-references, tend to leave me more than satisfied that I've gotten a grip. When I finish a section and have some example code executing, I feel like I have a complete understanding: I rarely find myself asking, "... but what about ...." I could go on and on, but you get the message. (One reason I'm taking the time to write this is that I feel indebted to the authors!)

The book builds up a consistent set of semantics - more so than any other book I've read. One example is their thorough explanation and consistent use of the terms "declare" and "define." Another is example is "argument" and "parameter list." Unambiguous semantics are essential to unambiguous communication, and, as you know, programming is one of the most unforgiving disciplines there is; ambiguity is intolerable. This attention to detail pervades the entire book, beyond just semantics.

Also, like with Stroustrup's book, I don't have to worry about whether the authors got it right or wrong or only half-right. This is an authoritative work: these guys know their subject as well as they know how to communicate it.

I especially like the dark page summaries and glossaries that act as chapter boundaries. I like the highlighted notes, tips, "bewares," and best practices. I like the blocks of text that address "cautions." These features are value-multipliers for me.

I also appreciate that there is absolutely no subconscious assumption that you already know C. That assumption seems to creep into so many other books, even though the authors deny it.

I agree with other reviewers that this edition is a huge improvement over previous editions. (I have the second edition beside me as I write this.) Frankly, I don't like the earlier editions. My guess is that the new authors, who came on board for this edition, should get a lot of credit. (I know an absolutely brilliant guy who has done some real innovation with C++. For example, he wrote a C++ library that allows you to write C++ in Python style, while getting C++ performance. This same guy was so intimidated by an earlier edition of Primer that he put off trying to learn C++ for several years! I'm still trying to convince him to get the fourth edition!)

So the fourth edition is a vast improvement, but, assuming that we don't try to make it all things to all readers and stick with the objective of compact comprehensiveness, how could we improve it further? The code examples could be simpler. I think Schildt is the master of communicating through code examples, just because his examples do the best job of isolating on the subject at hand. C++ is an extremely broad language, and when I read about a concept, I don't want to be expected to know everything, especially code examples, that preceded it in the book. Primer could do a better job - at least for me - in that respect. Examples should not be codependent: each example should lean only on the preceding material as much as is necessary to get the point across. Stated another way, OO programmers are big on encapsulation; OO tutorial writers should use the same rigor in encapsulating modules of tutorial text. All experts agree that the best code is code that is easily readable. In a tutorial, the meaning of the code examples should jump off the page. Primer is not bad in this regard, but it could be better. Some will argue that leaning on previous material reinforces the learning of the material, and they will be right. In my opinion, however, that argument applies mostly to course textbooks where the learning of diverse features can be forced into a tightly channeled sequence. I often use Schildt and Holtzner for reference when I need a quick answer. (As an aside, Stroustrup's book is the worst, for me, in terms of code examples being unnecessarily complex and codependent, even though I consider his book second only to this one as an indispensable reference.)

Bottom line: C++ Primer is an amazing accomplishment. The authors have done the best job to date of sorting out and presenting in lucid fashion a vast and complex network of features. I speak from experience as a technical writer as well as a student of C++. I feel guilty for assigning only four stars, but I'm concerned about the newbie who sees a 5-star rating on a "primer," and rushes to spend his limited budget on this book as a sole reference. C++ Primer is a very wise investment if you are really serious about C++, whether newbie or expert, but most newbies will also need a primary resource that is more beginner-oriented. Other books I recommend, in addition to the ones mentioned previously, include Prata (a good tutorial and a good resource for complete code examples, although there is significant codependence of examples); Lafore; Josuttis' classic STL book (definitely not for beginners); Schildt's STL book, also for its code examples; Keough and Gray (for quick reference only); and Safir and Brown (which does assume that you know C).
55 commentsWas this review helpful to you?YesNoSending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
11 of 11 people found the following review helpful
on March 24, 2006
Format: Paperback
I've been programming in C for 25 years. In the last 15 years, I've read a number of C++ books (I even read the first half of Stroustrup's 3rd edition. This was the first treatment I've read which I really absorbed (part of the fact is I had to learn c++).

While the treatment is thorough, I found far too many typos in a 4th edition. I really abhor typos in a technical book where the characters in an example MUST be right for it to work.

Barbara Moo gave me a copy of the errata (I submitted a number of errors I found). But one of the MAJOR shortcomings is why do I have to look up the author's to get an errata? Shouldn't the errata be on Addison's web site? (I just looked -- its not there -- I sent them a message). Also, be able to find the answers would be valuable (For a reader, examples without answers don't
necessarily help much).

I don't think its an introductory programming book. I just looked up the word "primer" -- this book goes far beyond what a
"primer" would contain. It covers C++ in depth. A number of subjects are covered in a way so a range of solutions ot problems
are presented from bad to good to introduce new features.

One thing I missed was full examples of working programs, being dissected. There are a lot of snippets. not whole programs. I find larger examples would be a good teaching tool.

Overall, this is a very positive review -- the best, most thorough treatment I've read -- with some caveats.
0CommentWas this review helpful to you?YesNoSending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
7 of 7 people found the following review helpful
Format: Paperback
[A review of the 4th EDITION 2005]

This is perhaps one of the most distinguished of the numerous books on C++. Its authors have a long involvement with the development and teaching of the language. The book presents itself as a definitive text on C++, much like Kernighan and Ritchie's C manual is for C. So it teaches exhaustively on the attributes of C++ and also on what you can do at the preprocessor and compiler level.

The presentation style seems to echo K&R and is roughly at about the same level of difficulty, in terms of how concepts and syntax are explained. No flashy multihued graphics in the book. The authors have eschewed these in favour of a few schematics to illustrate key ideas like pointers, where you really do need some diagrams.

As a very useful aid, they have included many exercises, sprinkled through each chapter. Some exercises are rather simple. Which is perhaps deliberate; to give you confidence in items you can easily tackle.

Not having seen an earlier edition, I am unsure how substantive the differences between this text and its predecessors really is. C++ has been pretty stable for several years. Unlike still changing languages like Java and C#. So if you have an earlier edition of the book, you may not necessarily need to upgrade to this edition.
0CommentWas this review helpful to you?YesNoSending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
7 of 9 people found the following review helpful
on December 10, 2005
Format: Paperback
Firstly, I'm not a kid, just don't have a credit card. Personally, I like this book. I started programming C++ a year and a half ago and it was just going to C++ classes and reading various tutorials on-line. Then I thought that I should buy a proper book, firstly I didn’t know where should I find a proper C++ book. I went to like 5 bookstores but didn’t find a thing nor in my national language, neither in English (only in Russian). So I decided to buy it on-line. After surfing amazon’s comments I decided buying this one. And, hell I tell ya, this book rocks! Now what’s bad in this book is that: 1. It’s a paperback; 2. Some topics are not totally thorough; And the main +’es are: 1. Tough reference guide; 2. Covers almost all aspects;

Now it’s your call to order the book but If you’re a newbie in C++ and/or not have an experience on other languages than this book REALLY is not what you’re looking for. P.S. For those who have some programming experience, but not only in C++ then I guess you probably could buy this book if you’ll read this book thoroughly. In the low-order pages of the book there’s a stuff mentioned about constructors/destructors, now don’t go crazy if you will not understand those, ‘cause stuff about constructors/destructors will be explained totally thoroughly in Part III of the book. After all I gave this book a strong 4 but not a 5 because I don’t really like some aspects of learning-technique of this book (like including SL), but on the other hand, it sets C++ programmers on the road more quickly. To sum everything up: if you have some experience in programming and really don’t know whether order this book or not, then the answer is order. It’s really worth its price and it’s a lifetime reference guide. Knowledge is worth the money, money is worth the knowledge.
0CommentWas this review helpful to you?YesNoSending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
2 of 2 people found the following review helpful
on August 11, 2005
Format: Paperback
C++ Primer - Fourth Edition has a really effective way of teaching you the C++ programming language-full detail of what every bit of code does. Have you ever looked at C++ code and had no idea what all of it meant? This book will teach you every single bit of what that code does.
The book is laid out in approximately 17 different chapters which are then divided into an average of 9-15 sections. Each chapter is focused on one key subject such as the begining steps and more advanced techniques to use your code. Within those chapters you have each section slowly explaining in detail what each bit of code you're seeing is doing.
Now as I've said before, this book explains every bit of code in detail, but this doesn't mean that this book isn't for just beginners. The books cover states that over 48,000 programmers have learned the coding language from beginners to more advanced.
About every other page contains tips and secrets to successful coding which stand out in gray boxes. Some of the most smallest things are mentioned here such as how comments work in your code to how your code should be formatted. These tips will help you inprove your coding habits very much.
Now you're probably thinking, "This is just another one of those reviews which show each good part of the book. It's not like they're going to give me any info on weak parts of the book!", Well in fact you're wrong. This book isn't all positive. There's some parts in this book which can be very annoying such as lacking a glossary of needed terms even though most terms are put in bold print. There are very good examples of code in this book, but not all of them are the most interesting. Reading this book can be very monotonous at times because of the lack of different things they mention you can code or give you examples of code.
How about the strong points? In depth explanations, great examples, great tips, need I say more? This book has a lot of good points to it, there are very few weak points. I would recommend this book to anyone wanting a good C++ reference manual.
0CommentWas this review helpful to you?YesNoSending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
5 of 6 people found the following review helpful
on December 30, 2005
Format: Paperback
You may know that an answer book was not released for the fourth edition as was done for the third edition. I've began reading this books weeks ago and while I think highly of its design, my limited exposure prevents any critical review. The real point of this comment is to help others in choosing this book by revealing the answer to the first third of the book can be found online. Check out [...] At this point the answer key runs up to ch. 7, and I believe it's still receiving updates and additions.
0CommentWas this review helpful to you?YesNoSending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
on September 11, 2012
Format: PaperbackVerified Purchase
I have some experience with programming (10 years, I'm 21 y.o.). But I have never learned C++ the way I should have learned. So I searched for a good primer and found about this book.

Really, an awesome book that covers everything (?) of C++ language and give the newcomers to programming (in general) a solid background. It explains a lot: starts from basics like sintaxe, variables, functions, libraries, and others (considering structured programming) and only after that it goes to object oriented programming and C++ coverage about it. But I guess it should have a little more pages to cover better some aspects like 'preprocessors' (while it's a bit advanced topic, it's still a C++ topic that you will need to know - my way of thinking).

Approximately three or four months ago (I acquired it in August 2011 - I haven't had much time to read it and I had a whole mountain of books to read), I finished it with great smile: I learned C++ and the money was well spent. Now, time will give me experience - together with more advanced books that covers code optimization, inner work of C++, algorithms and so on.

I recommend it for anyone - including those that doesn't have English as a mother tongue (like myself), experts or novices. But be prepared because it's a gigantic book.

Note: I don't like to read only one book covering one subject. So I like to read at least 2 (or have more than one for future consultations). I suggest you doing the same.
0CommentWas this review helpful to you?YesNoSending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
2 of 3 people found the following review helpful
on May 16, 2009
Format: Paperback
I think an introduction book is not only good for the beginners. It is good for the experienced to pick up from time to time as well. From a more seasoned programmer's point of view, it is fairly easy to go through the book from cover to cover (just to scan through and not line by line, of course). The key is to review the structure of the way the author presents the language and the techniques. I personally find it both useful and entertaining doing a review like that once in a while.

I believe that it would be more difficult to write a good introductory book in C++ than an in depth monograph. The thing is that there are so many things in C++ and you will have to be very selective in what to include and you have to be very careful about how to present it in a way that the beginners will be able to follow and appreciate. This is the same as writing an introduction to any subject, only the best authors can do a good job and quite frankly, I think it is a job only the most experience authors should tackle. In that perspective, this volume is indeed quite good in that the scope it is trying to cover is quite complete and that it covers the material very well.

However, I personally prefer another book that is even more focused on the most important aspects of C++ and will be able to bring the beginners up to speed even quicker. Please try "Accelerated C++" by Andrew Koenig and Barbara E. Moo. That would be my 5 star selection.
0CommentWas this review helpful to you?YesNoSending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
5 of 8 people found the following review helpful
Format: Paperback
[Review of the 4th Edition]

I really need to learn C++ some day, and I received a review copy of C++ Primer (4th Edition) by Stanley B. Lippman, Josee Lajoie, and Barbara E. Moo. If you're comfortable with lots of text, plenty of detail, and a more academic style of learning, this appears to be a good choice...

Chapter List:

Preface; Getting Started

Part 1 - The Basics: Variables and Basic Types; Library Types; Arrays and Pointers; Expressions; Statements; Functions; The IO Library

Part 2 - Containers and Algorithms: Sequential Containers; Associative Containers; Generic Algorithms;

Part 3 - Classes and Data Abstractions: Classes; Copy Control; Overloaded Operations and Conversions

Part 4 - Object-Oriented and Generic Programming: Object-Oriented Programming; Templates and Generic Programming

Part 5 - Advanced Topics: Tools for Large Programs; Specialized Tools and Techniques; The Library; Index

As you can probably tell, this book covers quite an array (no pun intended) of topics related to learning C++. And knowing that it's now in its 4th edition, it has a track record that is solid enough to allocate resources for both the publisher and authors to keep it updated and fresh. In the tech book world, two editions of a book is commendable. Four is not often seen, so you can trust that the others who have gone before you have fared well.

Each chapter is sprinkled with exercises to drive home the material being covered, as well as a summary and glossary of new terms at the end of each chapter. In many ways, it reminds me of a textbook approach to learning a new language or technology. I can imagine the teacher lecturing from chapter 4 and then assigning exercises 2, 4, and 5. Unlike books that assume little programming background, this volume doesn't try and step you through setting up an IDE or anything. It covers C++... you need to get the IDE set up on your own. Don't assume much in the way of handholding.

To me, this would be a good "geek-level" book if you wanted to learn the language. No fluff, no laughs, just learning. Probably best for someone who already has a background with technology. If you're more in the camp of C++ being your first language to learn (you're braver than I am!), this might be too much and too hardcore.

Of course, your mileage may vary...
0CommentWas this review helpful to you?YesNoSending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
1 of 2 people found the following review helpful
Format: Paperback
C++ Primer - Fourth Edition has a really effective way of teaching you the C++ programming language-full detail of what every bit of code does. Have you ever looked at C++ code and had no idea what all of it meant? This book will teach you every single bit of what that code does.

The book is laid out in approximately 17 different chapters which are then divided into an average of 9-15 sections. Each chapter is focused on one key subject such as the begining steps and more advanced techniques to use your code. Within those chapters you have each section slowly explaining in detail what each bit of code you're seeing is doing.

Now as I've said before, this book explains every bit of code in detail, but this doesn't mean that this book isn't for just beginners. The books cover states that over 48,000 programmers have learned the coding language from beginners to more advanced.

About every other page contains tips and secrets to successful coding which stand out in gray boxes. Some of the most smallest things are mentioned here such as how comments work in your code to how your code should be formatted. These tips will help you inprove your coding habits very much.

Now you're probably thinking, "This is just another one of those reviews which show each good part of the book. It's not like they're going to give me any info on weak parts of the book!", Well in fact you're wrong. This book isn't all positive. There's some parts in this book which can be very annoying such as lacking a glossary of needed terms even though most terms are put in bold print. There are very good examples of code in this book, but not all of them are the most interesting. Reading this book can be very monotonous at times because of the lack of different things they mention you can code or give you examples of code.

How about the strong points? In depth explanations, great examples, great tips, need I say more? This book has a lot of good points to it, there are very few weak points. I would recommend this book to anyone wanting a good C++ reference manual.
0CommentWas this review helpful to you?YesNoSending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
     
 
Customers who viewed this also viewed
C++ Primer (5th Edition)
C++ Primer (5th Edition) by Stanley B. Lippman (Paperback - August 16, 2012)
$42.27

C++ Primer Plus (6th Edition) (Developer's Library)
C++ Primer Plus (6th Edition) (Developer's Library) by Stephen Prata (Paperback - October 28, 2011)
$35.46

Accelerated C++: Practical Programming by Example
Accelerated C++: Practical Programming by Example by Andrew Koenig (Paperback - August 24, 2000)
$33.13
 
     

Send us feedback

How can we make Amazon Customer Reviews better for you?
Let us know here.

Your Recently Viewed Items and Featured Recommendations 
 

After viewing product detail pages, look here to find an easy way to navigate back to pages you are interested in.