Title: C++ WITHOUT FEAR
Subtitle: A Beginner's Guide That Makes You Feel Smart
Series:
Series Number:
Author: Brian Overland
Reviewer: metromary
Reviewer URL:
Publisher: Prentice Hall PTR
Publisher URL: http://www.phptr.com
Publication Date:
Review Date: 29 November 2004
ISBN: 0-321-24695-0
Price: $24.99 US, $35.99 Canada
Book URL:
Author URL:
Pages: 486 - including index (467 for the good stuff)
Format: paperback
Topic: computing
Brian Overland worked for Microsoft for 10 years (but lets not hold that against him if you use other operating systems, like LINUX).
His book is designed to be useful for non-programmers, which I'm not but I like to start from the ground up when learning a new language. However, he does try to include sections which will hold the attention of more experienced programmers.
He has a straight forward layout to his chapters. First explain the concept, then show a coded example, explain the example and finally list a summary. Logically, this is a good way to lay out information. The problem is it does feel like overkill sometimes. I understand that repetition is a good way to drive information into your head, but when does repetition become brow-beating?
The book also provides a number of examples which are the basis for a number of exercises. These exercises are somewhat trivial in nature but it's always good to get practice and see what changing, for example, a data-type will do to the program and what problems arise when you don't change everything consistently.
Finally there is a CD with software to allow you to compile your code - so you have no excuse not to do the exercises (or a bit of your own coding which is probably the reason you bought the book!!)
Lets concentrate on the good things in the book for a little bit.....
As a programmer, and maths hater, I enjoyed his introduction to Prime Numbers, Lowest Common Denominator etc. Its just that after seeing them for the 3rd and 4th time I was bored with them. Looking back I understand that he was using them to as building blocks to show us how to put a program together, but at the time it was painful.
He has clearly marked asides in his chapters which, as well as being diverting, are very informative. He also marks his " rules " well so you can always look back and find them easily and they are well thought out and well explained.
He is good at highlighting potential problems to look out for (like always destoying objects after use so you don't end up with memory leaks and avoiding overwritting other areas of memeory by not allocating the right amount of space to hold a string). As he points
out, when he started coding he fell into exactly the same types of problems as any new programmer does.
I also like the way he taught efficiency in coding by reiterating the
substance of the code and explaining what subtle changes achieved. It gives newbie programmers a real sense of there being lots of ways to construct thier code.
I also started to get to grips with pointers (though I'm probably still at the stage of " put a * or & in front of variables randomly until it works ").
His section on Object Orientation is a reasonably gentle one. He introduced concepts like new and this surprisingly well; and I even understood the concepts of virtual and absolute virtual (but then he did liken the concepts to Java interfaces and abstraction). He covers the major concepts of encapsulation, inheritance and polymorphism in good detail and even gives a heart-felt explanation of why Brian feels that polymorphism is a major
feature of OO.
His last few chapters finally splits programs out into seperate units of code, and gave a better view of how OO could be used to give much more power to a program with minimal coding (if not minimal thought).
Time to gripe.....
The book was hard work, but not in the sense of being left behind - merely that it takes willpower to keep going back for another chapter.
The early chapters were going over ground that all programmers have seen before AND BRIAN DOES SAY SKIP THESE if you've programmed before. However, I did want to see if anything was different and
better so I read the chapters. There are little gems to find, but they are hidden under a lot of repetition, which you can skim over if your not careful.
This book has the words " A Beginner's Guide That Makes You Feel SMART ". However, this book did not give me that feeling. Yes, I could program the examples and could just about get my head around the maths but I spent a lot of time skimming the early chapters.
The appendices are OK but I felt that it was only the " Glossary of Terms " which made any real attempt to be complete. The other appendices seemed to be consolidataion of what we'd already learned (somthing akin to a summary of the summaries)
My final assessment of Brian's book is - if you really are a non-programmer and want to learn this is not a bad book. However, don't expect to use this book as a day-to-day reference after you have learned the basics; pass it on to another non-programmer or recycle it, but the chances are you'll not read it again after a couple of months of using C++ in anger.
I'd also recommend the OO chapters of this book to anyone who has not touched on Object Orientation before. It's written by someone who does seem to have a real appreciation of the power of OO and wants to enthuse the reader into adopting the concepts. He spends time explaining the power of OO and how it can be uses to future proof your code.
|