Rating: - Covers all bases
I have reviewed and read several C++ books, and this by far is the most complete book that I have come across. I use C++ both as a hobby developing open source and also professionally as a white-box tester and software developer (Amiga OS, DOS, Mac, Windows, OS/2, UNIX) for 9+ years. I haven't coded in C++ for a long while and I needed to re-learn C++, with all the needed OOP concepts as applied in the C++ langauge. This book had everything I needed, and also cleared some confusion as to why one would use const references, const pointers to data, or pointers to const data. The information on const, inline, and static for both the non-object-oriented and object-oriented usages was immensely helpful.
Many have flamed and bashed this book, but I ask you to find another book that covers important concepts that include but are not limited to the following: - static data types, arrays, data members, member functions - const pointers to data, pointer to const data, const pointer to const data, const references, - const objects, initialization of const data members, const member functions, - inline functions and inline member functions, - overloading, operator overloading, cast overloading, - default constructor, default parameters, copy constructors, destructors, - virtual member functions (overidding), virtual destructors, - abstract classes and member functions (pure virtual member functions), - member initialization list (used for setting const data members and data members in base classes) - inheritence, encapsulation, polymorphism - proxy class, interfaces, containers, templates I've looked at other books and I found huge missing gaps in one of the above major concepts. This is why I took the time to write the review.
For improvements, I would recommend shrinking the basics down as far as looping and branching goes -- assume readers know C programming or can look it up -- and sprinking more industry practices and styles into the code. Some examples would be to have smart destructors and copy constructors that do some tricks to avoid memory leaks, and perhaps some simplified versions of techniques mention in Meyer's books. It would be nice to have some implementations of some common design patterns like the facade or factory pattern.
Rating: - No professional code here
I took one of Deitel's Jr.s courses, my company paid for it. I had trouble understanding a section on muli-threading; turned out there was actually errors in the notes( which Deitels basis his books on) from Deitel's class.
These guys are not "real" programmers (at least Deitel said he was not a programmer consultant at the time I took his class).
Anyway, I like books writen by real programmers there is a difference when it comes to really knowing how to do good technical coding.
Rating: - Deitels do perfect whatever they do!
I can not think any other of source of teaching, doing its job so perfect and excellent. Deitel's books differentiate from any other in that it provides an excellent mechanism of teaching with cleverly oriented subjects and clearly explained examples. Subjects are so approached that it is not possible to miss any detail. From the explanations to the exercises, everything seems and of course proves to be well designed in learner-side-perspective. Deitels really well know what they know and they do really perfect whatever they do."
Rating: - A Good Introductory Book
I liked this book! There are other books out there on C++ that are more concise and factual, but personally I found that the redundancy of information (information repeated again in different parts of the book) and numerous color-coded examples were really helpful.
I do know of some people who do not like Dietel Books because of their formulaic writing style on a given subject. Conversely, I know many other people (myself included) who do like this book for that exact same reason. I feel the approach they have made is suitable for an introductory book such as this one.
This is not the book for you if you're looking for a complete reference book. This is a learning book. It starts at the basics and builds up. It's intended for beginners (the title says it all: "How to Program"). It has a nice gentle approach into Object Oriented Programming throughout the first 6 chapters and then starts using more OO paradigms from there after.
Although this book is for the novice, it does go into more detail than some other books (another reason why I liked it). It discusses dynamic memory as well as shows you how to implement abstract data types like stacks, queues, and linked lists.
I would recommend this book to people who would like to build their fundamental C++ (and OOP) knowledge without covering extensive language details.
Rating: - Choose a different book
I have enough programming experience that I can recognize how much Deitel & Deitel complicate simple concepts, such as bubble sort, and pointers and strings. From examining several of their textbooks, it is obvious that their approach is homogenous. The same programs are used in throughout their series of textbooks, although these same programs do not explain each programming language well. Discouraging, unnecessary statements, such as "Pointers are among C++'s most difficult capabilities to master" can be found throughout the text, and they use jargon, such as "full-fledged," making this book a poor choice for college environments, especially those with international students.
|