Most Helpful Customer Reviews
|
|
95 of 99 people found the following review helpful:
5.0 out of 5 stars
Absolute First Stop for Beginning Programmers, July 20, 2000
I've been looking for just the right introduction to programming for some time. I've spent more than a dozen hours combing through the shelves in my local Borders and B&N, skimming over 50 so-called "introductory" texts, looking for one that I could really learn from. By way of background, I am an advanced computer user/tinkerer, but I'm completely inexperienced in the field of programming -- never so much as typed a lick of code.In reviewing other books, I didn't want to start with a book about C, because conventional wisdom says that it's a bad idea to start with C (a procedural language) if you plan to use it to jumpstart a study of C++ or java (hybrid OOP languages). I also didn't want to start with a book on QBasic, because it seems to me that the language is pretty much obsolete. For me, I wanted to learn OOP, and that meant a commitment to C++ and/or java (preferably both, as each has its strengths and weaknesses, and they are similar and popular enough to study together). That said, I looked at somewhat advanced introductory books by Deitel, Savitch, and Horton, all of which are extremely well-reviewed here on Amazon. I also looked at several books from Microsoft Press, as I planned on learning by using components of the Visual Studio. Horton's Beginning C++ came close, but its massive size and more advanced approach left me looking for a different introductory text (I plan on returning to Horton's book though, to supplement what I learn from Mr. Davis' book). Finally, this new edition of C++ for Dummies came out just in time. This book really hits the mark on many levels: (1) it assumes no knowledge of programming; (2) it does a great job of explaining truly complex topics without going overboard or hitting you over the head; (3) it is clear and entertaining; and (4) it is new and compliant with the latest standards, which is more than I can say for books written, say, pre-1998. Do yourself a favor -- if you have no programming experience and want to learn a cutting edge OOP language like C++ or java, start here, then use that knowledge to branch out to more advanced material. Personally, I'm supplementing this reading with Horton's Beginning C++ and Beginning Java 2 (JDK 1.3 Version), and Bruce Eckel's highly praised Thinking in Java. Good luck!
|
|
|
21 of 22 people found the following review helpful:
3.0 out of 5 stars
This C++ developer came away impressed, December 19, 2003
Background (why you might care what I think): I've programmed and taught programming for 20+ years, in time migrating to C++. The title, of course, is an oxymoron: You are mistaken if you think you can master C++ without sooner or later being able to chew your way through the following: "It has always been possible to overload a member function in one class with a member function in another class. With inheritance, however, you can overload a base class member function with a member function in a subclass as well." However, by the time this book gets to where that quote is lifted from (roughly halfway through), Mr. Davis has done quite a credible job of preparing you for it. He sometimes falls down badly: his explanation of pointers completely neglects to mention the implicit referencing that is part of every normal assignment statement. The expression "variableX = variableY" (in all computer languages) actually means "the address pointed to by variableX is assigned the value pointed to by variableY", not "variableX is given the value of variableY". Most students would be much less confused by pointers if he had started his discussion by pointing out that all variables are actually pointers by nature. Given the rather astonishing subtlety, complexity, and even beauty of full-bore C++, 400-odd pages are not going to make you into an overnight master (reading Stroustrup is the only way to do that) . The pace is extremely rapid, but the author succeeds fairly well in what he sets out to do, which is to explain the most complex computer language (by far) in clear and understandable terms. If you have no programming background and no outside help, you will be quickly lost. And yet I firmly believe that C++ is the best language for a beginning programmer to start with, even if for no other reason than to avoid the development of bad habits. I am still searching for a book that will thoroughly explain the fundamentals of programming from the ground up, using C++ as the starting point. However, if you do have some programming experience, and want to bootstrap your way to C++, this book is a good choice. The "humour", on the other hand...
|
|
|
13 of 13 people found the following review helpful:
1.0 out of 5 stars
Riddled with errors / typos and assumes prior knowledge, December 12, 2004
I'm in my 3rd year Computer Science studies, and am coming from a Java background after fiddling with C/C++ on embedded systems and decided some structured learning was needed.
On the whole this book rambles quite a bit, but that's to be expected for something aimed at beginninger - however this means that most of the learning meat is learnt from examples; which is a very bad thing as there are a lot of inconsistencies between the example code and the passage describing it.
Specific examples of what I mean:
On page 46 the author says that theoretically 10.0 == (100 % 10), and says to revise the modulo operator if you're confused. I'm pretty certain that 100 / 10 does not have a remainder, and hence that 100 % 10 = 0, and not 10 as the book states.
On pages 52-53 the passage says the code takes two numbers from the keyboard and does something with them, while the code does in-fact instantiate the variables directly, and does not accept any input at all.
There are also plenty of typos, both in the general writing ("was is 0x6 | 0x3?") and the code (page 52 "0x2" is written as "0x[subscript 2]").
Some of what is said is just plain wrong, for instance there are 8 bits in a byte, not 4. (Page 49).
I also got the impression that prior knowledge is being assumed, there are terms and concepts used casually, such as the default word length on an average PC is 32bit, without making it clear what this means - ints and floats were described in terms of what values they could contain, not their binary lengths.
And finally many important concepts are not explained fully, such as XOR, which does not even have a description in the operator table on page 50, it does have a partial truth-table though - why the other two cases were not included I have no idea, certainly my understanding of XOR did not come from this book.
I'm seriously glad that I'm borrowing this book, and didn't buy it myself. It seems to cover all the important topics, just not very cleanly, and I certainly wouldn't dream of inflicting it on a beginner. It's merely annoying if you have enough prior knowledge (of binary and how computers work with it, of logic (NOT, AND, OR, XOR) etc).
|
|
|
Most Recent Customer Reviews
|