Amazon.com Customer Reviews
Start learning C++ here - Review written on February 20, 2007
Rating: 5 out of 5
2 customers found this review helpful.
If you're looking to learn C++ as your first language, or your first OO language, good luck to you! I tried learning C++ after FORTRAN77, and in retrospect, that was a big mistake. Go and learn another object oriented language first, Python or Java or Ruby (maybe even OO Perl). You probably also want to learn a tiny bit of C, just to get used to pointers and memory management.
Done all that? Good. I will be assuming in this review that you already know how to program reasonably and you're not trying to cram C, C++ and OO into your head at once. So, you just want to learn C++. If that's the case, this is the perfect book to start with.
The book assumes that you're coming to C++ from C, and builds up from C++ as C with a stricter compiler, then onto C++ as 'object-based' language - objects as structs with functions and encapsulating initialization and memory allocation with constructors and destructors. Finally, object orientation (i.e. inheritance and polymorphism) is introduced. Rounding things off is a brief chapter on templates and iterators, but it's only a sneak preview, really.
Only the core of C++ is covered: the standard libraries and other topics (like exceptions) are deferred until volume 2. This leaves volume one as a lean and mean exposition of the core of the language. This is quite an achievement, especially as it manages to be both comprehensive and readable. The somewhat begrudgingly object oriented flavour of C++ is also on display in this book, particularly when compared to Thinking In Java from the same author: there are interesting explanations of what the compiler is getting up to behind the scenes, which should presumably assuage the fears of the more paranoid C programmer. There are copious code examples, although the expected output is not given, which would have been helpful. The introduction to the make utility will also be very welcome to many (including me).
This is not quite as good as Thinking in Java, perhaps because of its C-centric opening section, which may require you to familiarise yourself with the differences between C99 and C++ simultaneously (this is particularly apparent in the discussion of the static and const keywords).
But it's still a great introduction to C++, and it doesn't waste time with the basics of variables, loops and conditionals. Between this, the second volume, and Koenig and Moo's Accelerated C++, you have all you need to graduate onto the intermediate C++ books, like the Exceptional C++ and Effective C++ series.
Teaching C++ using a strategy that works - Review written on July 10, 2006
Rating: 5 out of 5
8 customers found this review helpful.
The title of the book is an apt description of the approach taken by Eckel as he steps through the basic features of C++ and object-oriented programming. Rather than show how programs are written in C++, he presents the sequence of ideas that led to the structures and some of the ways they are implemented. This approach is very similar to the one I adopted after my first few years of teaching C++.
For example, when I started teaching C++, my presentation of function overloading was simply an explanation of the different signatures based on the arguments to the function(s). However, it was not until I included some information on name mangling that the students really began understanding it. Another point that makes the features of C++ much more understandable is showing the students how the implicit passing of the this pointer is done when a member method is called.
In this area, Eckel shines as he describes much of the behind the scenes activity of the compiler and linker that makes it all work. The descriptions are complete and yet not overdone. I have been teaching C++ for over ten years and yet there were a few points that were presented in such a way that caused me to change my view of the language. Unless you are one of the top experts in the language, reading this book will teach you something new.
The group that will benefit most from the book are those who are migrating from C to C++. Eckel spends a great deal of time in pointing out the differences between C and C++, using descriptions and short code examples to demonstrate how things are done in both languages. Even if you are coding in C and have no plans to migrate to C++ just yet, the book will be of assistance. As I recently told one of my classes, C as a distinct language is rapidly being phased out. Even those who are now programming in C are probably compiling their code as C++ files to take advantage of the additional error checking. Eckel demonstrates the major advantages of compiling C using a C++ compiler and all C programmers should know these benefits.
Another group that will find this book of value is one that has come about only in the past few years. Java has recently become the language used in the computer science programs of colleges and universities. The first graduates with Java as the language of their full four years have started entering the job market. Therefore, there is a growing group of people who will be forced to make the migration from Java to C++. This is a much harder transition to make than from C++ to Java and this book is an ideal tool to smooth the process.
Eckel makes a major point about programming that is often lost in the rush to learn how to write code. Programs are thoughts represented in a specialized language. Before you can write well in a language, you need to be able to think well in that language. It is the kind of thinking he emphasizes and he is to be commended for doing so. This is a pedagogical strategy that works.
Published in Mathematics and Computer Education, reprinted with permission.
Good book but leaves a little to be desired - Review written on January 11, 2006
Rating: 3 out of 5
3 customers found this review helpful, 8 did not.
I'm currently a graduate student studying physics. I bought this book because I read "Thinking in Java" by the same author (better book, I highly recomend it), and because I changed labs and now need C++ instead of Java. This book reads similarly to the Thinking in Java book however it lacks the simple, well thought out simplicity of the java book. I've found that this one is not quite as good as a reference, additionally I was extremely disappointed to find that he had 2 volumes for C++ rather than the single Java volume which covered everything. Overall, I do like Eckel's writing style, and for the most part the examples are fairly helpful. There is a definite assumption that you have a fairly mediocre background in C and computer science (Eckel does make this abundantly clear in the introduction). I would recomend this book to other people, however I would not recomend it as a first introduction to C or C++. If you've got experience in another language, this book should be fine for you.
Review of Thinking in C++ Vol 1 - Review written on August 24, 2005
Rating: 4 out of 5
4 customers found this review helpful, 1 did not.
Intially I liked the book very much, it seemed to have a fresh approach and style, was easy to read, and seemed trustworthy as far as the content was concerned.
Upon getting farther into the book I still find it solid, but at times it becomes ponderous in the reading, and the examples leave something to be desired. The material also at times breezed over, when a more indepth understanding might have been in order. I find the organization of the material a bit difficult at times as well. Subjects sometimes are introduced with out first giving a througough understanding of the subject matter, and I dont get a good feel for a consistent building of skills and knowledge. All in all I find this a good book, but I believe it could be better.
My C++ Learning Experience - Review written on February 26, 2005
Rating: 5 out of 5
59 customers found this review helpful.
Since I'm reviewing both "Accelerated C++" as well as "Thinking in C++", I thought I'd post the review on both book links.
There have already been excellent reviews of this book, but I would think the main reason people purchase these books is because they have an explicit purpose, which is to learn Standard C++. That being said, C++ is one of the most powerful and multi-faceted languages around, and no other language provides both high level abstractions and low level control in one programming language as C++.
Because of these features, it is often opinied that C++ is too complicated, large and takes too long to master. While there are some merits to this criticism, many important real world systems are being bult with C++ and professional developers need to master the fundamentals of C++ now. With that in mind, and after spending (or wasting) much money on various books proclaiming to teach C++ from the ground up, it was not until reading Konig and Moo's "Accelerated C++" and Eckel's "Thinking in C++" and in that order, that I finally "got it".
Why I emphasize "in that order" in the last paragraph, is due to the methodologies used to teach C++ by ACPP and TICPP, and due to this, its best to read ACPP first, then TICPP for the most effective learning. Here's my reasons:
ACPP teaches C++ in a top down fashion. What I mean by this, is that the higher level Standard Libraries are integrated right from the start to teach programming contructs such as looping, selection and decisions making using library facilities such as , , and
Thank you for your attention to focus, quality, and insight. - Review written on October 07, 2004
Rating: 5 out of 5
2 customers found this review helpful.
Whew!!
What a relief, a writing style that communicates to the many facets of the day in the life of a real programmer. Your words have been a giant breath of fresh air, and I appreciate your approach to all of your topics.
You have consistently crafted tools that act as beacons of light in the vast array of literary babble surrounding object oriented analysis and design (OOAD).
As you know there are multiple dimensions that contribute to good software design, and the design goals of any language is to aide in as many of these multiple dimensions as possible.
Many authors have attempted to write books to speak to the multiple dimensions, but your pioneering approach to a more holistic perspective is both refreshing and fills a deep void in the software engineering community. I appreciate your balance between language semantics, usage patterns, levels of abstraction, and your early attention to the methods movement, such as extreme programming.
I place your books on my bookshelf right next to
1. The C++ Programming Language, Bjarne Stroustrup
2. C++ Primer, Stanley Lippman and Josee Lajoie
3. Effective C++, Scott Meyers
I frequently use your books to speak to the psychology of subscribing to the OOAD approach and have found that your approach is more pragmatic than most. This translates into holding a new programmer's interest long enough to ensure that we will follow similar design philosophies earlier in the life cycle of a project.
Thank you for your attention to focus, quality, and insight.
GET IT NOW!!! - Review written on July 16, 2004
Rating: 5 out of 5
I have been wanting to learn C++ for about 8 years now, but have never found any really spectacular books for getting me to where I need to be, starting from the ground up and introducing concepts in small coherent chunks. So, I just stuck with the languages I knew, and kept putting c++ to the side. Oh, and making the excuse that "java can do everything I need", not true as I'm am delving into the dsp world. Thanks to this book, I'm further than I have ever been before in understanding C++!!! The book along with the supplemental answer guide (for a small fee from bruce eckel's site www.mindview.net) have proven invaluable! Making C++ easy to understand is no easy task! It is obvious to me that bruce not only has a profound understanding of programming in multiple languages, but also a great teaching ability. It is rare to find someone who has both of these traits. This book isn't specifically geared towards java programmers by any means, but this book combined with my java experience has made learning c++ painless, not to mention interesting and enjoyable. I know there are other great c++ books out there, but if you are transitioning to c++ from another language or are a programming newbie, I would say this is the book to get. It would also make great reference. GET IT!!!
Excellent book! - Review written on May 19, 2004
Rating: 5 out of 5
1 customer found this review helpful.
As far as I know, this is the best book available on this subject at this time. It's been the best read I've had in quite a while (that includes fiction). It's very well written, introducing new concepts to the reader in a very smooth and natural way. If you've ever wondered why 'C++ is the next logical step', then you should read this book.
I have also read 'C++ inside & out' and 'Thinking in Java' from Bruce Eckel, and I must say his educational and writing skills are getting even better and better. He clearly knows what he is talking about, and, more importantly, he also knows *how* to talk about it - not always a given. My C++ was getting a bit rusty, but TICPP has got me back on the C++-track in no time, and after reading it I feel ready to take on the world - well, almost..
In short: buy this book and read it.
Then go on and show it off to your friends..
Awesome Book - Review written on April 18, 2004
Rating: 5 out of 5
1 customer found this review helpful.
I am about to graduate from college, and although I got an A in my C++ class, which was way back in the first year, I really didn't learn the language. Recently another student came to me, she had flunked several classes and is retaking C and C++. The college is still using Deitel, and the professors still refuse to teach, so she knew there was no way she was going to pass these classes and graduate. I have been looking for a book to help me learn C++ on my own: Dummies helped, but..., then I found Thinking In C++; AWESOME. I got it today and I am already in chapter three. Bruce Eckel starts off explaining how to go about planning the creation of the application: Use Case, UML, etc... Other courses that I got A's in, but didn't really understand (I am good at memorizing things). But now, thanks to Bruce Eckel, I truly believe I am making progress, and I know I will be able to help my friend pass her classes and graduate on time. If the rest of the book, and Volume Two are as good as the first three chapters, I will get his book on Java.
Defies the First Law of Technical Documentation - Review written on April 08, 2004
Rating: 5 out of 5
1 customer found this review helpful.
The First Law of Technical Documentation states that:
"The more complicated the subject, the less will be written about it, and the more likely there will be errors in what is written".
This explains why typical programming books will have fifteen pages on If statements, but only a paragraph that says that "Interrupts can be serviced".
Bruce does a masterful job of building the readers up so they are able to gradually yet thoroughly assimilate the subject matter. Thanks to years of putting on seminars and taking comments from readers, he teaches in useful and productive increments without overwhelming the readers. His examples are well thought out and useful. He actually responds to questions and comments. Please don't spam him, he seems like a genuinely nice guy! I look forward to taking one of his seminars in person.
Just like "Thinking in Java" - Review written on March 25, 2004
Rating: 5 out of 5
1 customer found this review helpful.
Quite some time ago I have learned Java from "Thinking in Java"
what I have enjoyed a lot.
Recently I have decided to learn some C and C++ and so I have started to read "Thinking in C++". I'm quite amazed how programming in general becomes clearer to me while I'm learning both C and C++. It even helps me to improve my understanding of Java.
Just like "Thinking in Java" this book is very easy to read and entertaining.
Excellent C++ and general programming introduction - Review written on March 23, 2004
Rating: 5 out of 5
1 customer found this review helpful.
Easily one of the best introductory C++ books I have read. Read slowly the book provides not only a good introduction to the syntax of the language, and in some ways the applications written with it, but also the thought process which should go into the use of the language, the actual skills of programming applications. That being said the book puts understanding the syntax first and is written and edited in such a way as to be educational.
I recommend the book to those looking to understand the fundamental of C++ and the core set of system libraries. For those unfamiliar with C++ you should understand that unlike VB, C# and Java the platform specifically libraries are held at arms distance in C++. So you won't find any information in here about the Microsoft Foundation Classes or any other platform specific libraries. You will need to get another book to get into those. This is not a fault with the book or the language, you just need to make sure you get both a book on C++ (probably this one) and a book on your specific platform.
An excellent book, but only in the right circumstances. - Review written on March 11, 2004
Rating: 5 out of 5
6 customers found this review helpful.
Personally, I found this to be the best C++ book for me, as I am a self-taught and language-independent programmer. When I found this book, I was amazed at how simple C++ could be. When I had first learned C++, it was taught to me in a way that prevented me from understanding the advanced concepts, which are quite beyond the skills of the advanced programmer. I recommend this book very highly, but be very careful of your reasons for buying this book.
1. This is NOT a book that should be used as a teaching tool in a class - it is self-paced.
2. This is NOT a book that should be used by the beginning programmer - only people with some programming experience should purchase this book
3. This book is NOT for the expert for use as a reference, as it is instructional in nature.
Some people have strange ideas about what the author intends his work to be used for, which are contrary to what the author himself explains in the preface. Be sure to read the preface online at the author's website (http://mindview.net) before purchasing this book.
Highly Recommended - Review written on November 26, 2003
Rating: 5 out of 5
7 customers found this review helpful.
This book is highly recommended.
I am an experienced programmer but my C++ was not current.
I found this book very practical, thorough and compact. I
was able to get fully current with the language in 3 days,
and I now look forward to a similar timescale for the STL
in Volume 2.
Of course a certain amount of words are necessary to explain
the reasoning and concepts, but words take time to read.
Bruce has managed to keep the words to a minimum. He
doesn't baby-talk you through it, but he gives you the right
information at the right time. This makes it easier to
understand than the verbose and boring
you-must-be-slow-witted-or-you-wouldn't-need-this-book
approach which is so prevalent in programming literature.
This is such a relief, because usually books are hard to get
through because of the time it takes to read through the
rubbish to find the information, and also because the
patronising attitude is hard to swallow, and _boring_.
You get none of either in Bruce's book.
This doesn't make the book harder for beginners either.
Every concept and language necessity is clearly and _fully_
explained. Only without the distracting verbage it is _much_
easier to understand for beginners _and_ experienced alike.
When are the other authors going to get this? We're not
stupid, we just want the information!
C++ isn't that hard, but there is a fair amount of detail
required to operate it. Bruce runs you through that detail,
in particular bringing up the internal language requirements
that are relevant. For instance, almost everyone knows that
the compiler will synthesize the default and copy
constructor and destructor functions for you, but the
assignment operator overloader is also synthesized. This is
actually _crucial_ information for proper programming.
Other books will either ignore it or put it in a more
advanced section! You _need_ to know this stuff and Bruce
tells you about it _when_ you need it.
Despite _all_ its other advantages, it is this point that
makes this book stand out from the crowd. Bruce approaches
from a very practical real world stand point. He knows what
it takes to make a program work, and work safely, and he
communicates that information by the shortest possible
route. His humility and competence make this book shine.
Most books will not stand alone as a teaching aid without
some personal support such as a seminar or other
face-to-face tuition. I believe this one will. Thinking in
C++ Vol. 1 answers all the questions (like 'why doesn't this
work?') before you ask them.
Learning (or revising) C++ is _not_ about how many pages the
book has, how many programming examples they have on CD,
whether they provide their own little IDE or a copy of the
GNU C++ compiler on CD, etc. C++ is about C++ and this book
is it. My apologies to the other authors, I'm sure you tried
your best, but don't waste your time with them, get this
one.
2003/11/22
This book was key in helping me land a job - Review written on July 18, 2003
Rating: 5 out of 5
6 customers found this review helpful.
I was a professional musician for about 8 years. With few job prospects available in that field, I was looking for a career change. I went through being a project manager for a while, but was laid off from a dot com (who hasn't ;-) ). The tech economy was still pretty good at that point so I decided to give programming a try. Didn't have much income at that point, but I found the free Borland command line compiler for download and "Thinking in C++". I also pulled down the JDK and picked up "Thinking in Java." I spent 8-10 hours a day for 3 months studying. Learning Java helped my understanding of C++, and vice versa.
The level of understanding that I was able to achieve from Mr. Eckel's excellent books helped me to land a job as a C++ programmer , which I've been at for 2 1/2 years now.
One important feature of "Thinking in C++" that has helped me in my job, is how he takes you through C to C++. When I first started, I was doing maintenance and bug fixes on C++ code that had a very strong C flavor. Without the coverage of C, and those concepts, I would not have been as effective in my duties.
I still refer to this book on a regular basis.