Shop now Shop now Shop now Shop All Amazon Fashion Summer Savings Up to 25% Off Cloud Drive Photos Shop now Learn More Shop now Shop Fire Shop Kindle Oasis Learn more Learn more

Customer Reviews

4.6 out of 5 stars24
4.6 out of 5 stars
Your rating(Clear)Rate this item

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

on 23 April 2009
I had just finished reading Herbert Schildt's book C++: The Complete Reference and had resolved not to read another door stop before devoting much more time to practising the new techniques I had learned. Then I got wind of Bjarne Stroustrup's new book for beginners: Programming Principles and Practice Using C++. Now Dr Stroustrup occupies a very elevated position in the panoply of C++ deities; his words are cast in stone and he is often referred to as "the creator" of C++ (read: he invented it). Most programming tutorials have shortcomings of one kind or another, so I was intrigued to discover what sort of a job BS had done. I was not disappointed.

Firstly, his approach is not to treat learning C++ as a purely language-technical issue, but to talk about programming as a means to the solving of problems, and use C++ (the most versatile and widely used programming language we have) as a vehicle to do this.

After a dedication to Lawrence Petersen, his collaborator on this project, there is an interesting chapter concerning the place of computer systems in modern life.

Programming is introduced in the conventional way with the simplest concepts, then the learning curve becomes progressively steeper (a feature which is required of a reasonably complete introduction to the subject, even given the 1264 pages of this book).

BS uses several techniques that I had not seen before. All the code is printed in a bold typeface in blue. That makes it easier to distinguish code terms from other, possibly similar words within the body text. He does not use unnecessary spaces in his code. This helps to clarify where spaces are actually required by the syntax as opposed to merely beautifying the code. It also allows more characters per line, but the downside is that the code tends to look more crowded.

Nearly every chapter ends with a set of drills (short exercises), a review of all the new material introduced in the chapter, a list of the new terms, a very comprehensive and well thought out set of more substantial exercises and a postscript giving final thoughts. If students were to take on these exercises in a conscientious way I have no doubt that the learning curve would be flattened to a great extent and they would rapidly gain proficiency in programming.

Having prepared the ground thoroughly, BS raises the level of activity by introducing programming techniques which produce graphical output, and devotes 160 pages in five chapters to it. An independently produced lightweight graphical user interface package called FLTK has to be downloaded and installed for this purpose (its free of charge). FLTK was chosen partly because it is a cross-platform system (cross platform functionality being one of BS's hobby horses, although one which is justified). I found this part of the book a bit tedious, mainly because I am not greatly interested in graphics at present and partly because I did not have the time to play with the system sufficiently.

Two thirds of the way through the book is a refreshing and fascinating chapter dealing with the history of programming and some of the personalities involved; something I had not thought of investigating in any detail before. Colour photographs are another feature of this book which adds to its appeal.

An important theme of the book is the idea that its all too easy to make mistakes when programming, but there are ways to mitigate this. BS owns up and highlights many mistakes he made (some of them deliberate, for pedagogical reasons) when writing programs for the book. I find that both endearing and encouraging. Major sections deal with debugging and system testing, including the recording of run-time.

The last chapter is an introduction to the C programming language. I was very pleased to see that since you cannot go very far in the world of C++ without tripping over branches of C code, and it helps a lot if you can understand it. There are five appendices which provide useful reference material and some extra ideas for anyone who has stayed the course.

The book is supported by some excellent web pages with supporting material including an errata list and well designed tutorial materials for teachers.

I found this book generally very revealing and rate it not only excellent, but inspiring. It provides the means to become a good programmer if you are prepared to do the work, and the encouragement to do so.
11 comment|45 people found this helpful. Was this review helpful to you?YesNoReport abuse
on 13 October 2009
Unlike his previous books, this book is aimed at the beginner and intermediate C++ programmer. Having struggled with some of his books as they are very technical and involve more complex problems, I was pleasantly surprised by the simplicity of this book, which is much more chatty and starts with the basics.

I do however have some reservations about this book. About the only thing I don't like about the book, occurs early on in chapter 2. I don't like the way the author hides the headers etc by including them in a header file of his own - "std_lib_facilities.h". I feel that this treatment makes the student far too dependant, and that it would be better for them to know about these things right at the beginning, especially as the are relatively easy to grasp. What is even worse is that the book does not tell you the contents of this header file. In the appendix, you are however told that you can download the header file from the authors web site.

Now that I have said what I don't like about the book, I must say that besides my complaint above, the book is excellent. There are certain topics that possibly don't appear in most other introductory texts, and certainly are not explained so clearly as they are in this book.

Even in the first part of the book - The Basics, there is good coverage of errors and exception handling, an overview of Classes and much more involved real-world programming examples that you don't typically find in introductory texts.

Part 2 - Input and Output, gives as the title suggests a thorough grounding in Input and Output, as well as providing an introduction to Computer Graphics using the FLTK. This is a class library that comes packaged in Quincy 2005, though can be downloaded separately if you are using another C++ compiler/IDE. This is the only C++ book that I have seen, that uses the FLTK. Other books such as "You can do it" and "You can program in C++" by Francis Glassborow, include graphics environments, but using their own graphics classes.

The remaing parts of the book cover more advanced topics - including data structures and algorithms, including vectors and templates, the STL including the <algorithm> library and many other topics that will only appear in more advanced courses.

So, although the book starts off easy, and has the appearance of being user friendly, it does cover some really difficult stuff.

This is a book that will appeal to a variety of C++ users, from beginner to advanced programmer. A very interesting and useful book to have available on a shelf at home.
0Comment|15 people found this helpful. Was this review helpful to you?YesNoReport abuse
on 15 May 2009
I am a final year Software Engineering student, and our curriculum covers only Java and PHP so I was excited to really get my teeth in to the newest book. Although I consider myself an advanced beginner at programming, my C++ knowledge was lacking in many departments (I didn't actually understand how many different facets of the language I misunderstood until I started working through the book). I have always taken other programmers advice and bought (and used) as many books as I could to get a firm grounding in a language, though "P3" surprised me somewhat. I was expecting a reference book akin to the C++ Programming Language book, with maybe a few design patterns thrown in to cover the programming aspects the book advertised.

I was delighted to discover that the latest book combines the technicality of Knuth's "Art of" books, with the 'in the trench' advice of McConnell's Code Complete series. The layout of the tutorials such as the "Try This", "Drill" and "Review" sections have really provided a well rounded knowledge of a subject; not enough to presume complete knowledge, but enough to understand the concepts that will encourage further independent study. The "Exercise" sections were particularly rewarding, and I have used up many a braincell trying to solve them in some cases.

This book is perfect as an introductory programming book, and also as a book that will teach advanced programmers new tricks. With a language as large (and sometimes as obtuse) as C++, this book presents a clear learning path towards a full comprehension of programming principles. C++ is used as a tool here to present readers with the knowledge needed to understand concepts present in all languages. That said, if you want to learn C++ this is the book to buy.
0Comment|14 people found this helpful. Was this review helpful to you?YesNoReport abuse
on 14 August 2011
I'm very impressed by this book. Unlike many books that simply present you with information, carefully explain it and then give you some exercises to do, this book really engages with you as someone trying to learn this difficult topic and uses the techniques of a good teacher to help you progress.
The book is more about how to learn programming than it is about c++ itself and this it what makes it stand out. It also treats the reader with respect and makes you think for yourself, it assumes you are an intelligent person and doesn't waste time explaining the obvious. Instead it spends time showing what good and bad code looks like and how to get into good habits when structuring your programs.
33 comments|Was this review helpful to you?YesNoReport abuse
on 10 February 2014
I got this for £25. I don't know what happened to the price now.
You get all that you need - because the book is written by the guy who invented C++ so...
It covers everything in great detail and it is suitable for any experience level - given the fact that the book is massive, I'm sure everyone will find something in there about C++ that they had no idea about.

Let me know if you have any questions.
0Comment|Was this review helpful to you?YesNoReport abuse
on 4 May 2011
If you have no Previous programming experience then this is the book for you.
Its written by the man who created the C++ language and he has deliberately focussed this book for those people who are new to programming.
The style of writing is like no other i have come across, Unlike most books of this subject its actually a pleasure to read and fun to follow.
0Comment|Was this review helpful to you?YesNoReport abuse
on 18 May 2012
This book has been a fantastic experience so far!

I come from a music background, and have been a computing hobbyist for many years, so after a while toying with bash scripts, I longed to take up programming 'proper', so I took the plunge and purchased this book.

I am around halfway through the book, and after I began taking notes, I realised that I was effectively copying the entire thing out by hand! There are no superfluous words, no padding or unnecessary asides - just lucid, well-written information, that doesn't so much hold your hand as point you down a path and nudge you if you're heading off course (exactly as a good program should do for it's user). This book has explained a huge amount of information, but you DO have to sit and read it slowly and systematically - unlike many other programming books that I've leafed through, every paragraph contains information vital to the understanding of the next - read through linearly and don't skip, and before you know if you'll be able to read code and create programs that you would have never dreamed of creating a few weeks prior.

This book has also helped me improve my thought processes greatly. I have mild autism, and this book seems to get through to me in a way very few books (especially textbooks) are able to - However, the early exercise where the reader is asked to write down detailed directions of how to get to the bathroom really took it's toll on my brain - it has a tendency to strip away abstractions, and I think it saw this exercise as a chance to include things it thought were incredibly relevant (making sure the handle was attached to the door properly and that the hinges worked, etc!). Needless to say, I suspect the majority of readers will have it easier!

I would thoroughly recommend this book to anyone wanting to learn to program. The language itself doesn't matter, but the approach and the way that software interacts with the hardware on your system has never been so lucidly and succinctly put as in this book, and I would like to thank Mr. Stroustrup - both for this fantastic book, and for the C++ language itself.

0Comment|2 people found this helpful. Was this review helpful to you?YesNoReport abuse
on 28 December 2013
This book is brilliant. It has everything. It is well written, structured and the tasks are challenging enough to make you want to complete the entire book. The example code given is clear and is perfect in showing the points that the writer wishes to emphasis.
0Comment|Was this review helpful to you?YesNoReport abuse
on 8 June 2010
Perfect! It's just the C++ book I was looking for and it's the book by Stroustrup I would loved to read. Regardless of what level you master the language, read this book...and never miss any work by Bjarne Stroustrup.
0Comment|Was this review helpful to you?YesNoReport abuse
on 28 April 2010
This book is written by an incredibly intelligent man who imparts a stunning array of info to the reader in such a way that leaves you in complete understanding of the subject. very good book, very well written.
0Comment|2 people found this helpful. Was this review helpful to you?YesNoReport abuse

Send us feedback

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