51 of 53 people found the following review helpful
- Published on Amazon.com
I'm not a big fan of "Teach yourself X in Y amount of time" books. There, I've said it. Most of these books have their timing wrong anyway, you can't learn to be a world class polo player in 24 hours, you can't build your own ocean liner in 21 days and you can't be a professional hula champion in six easy lessons. And you won't be able to teach yourself C++, at least not enough to be of any use, in an hour a day.
But this book works. Forgetting the one hour a day promise, the book works very well. Learning C++, or just C, or any programming language from scratch is hard. Even harder if you have to learn the concepts of programming, loops, branches, pre and post tests and the whole object oriented thing. This book doesn't make it simple, but it does make the process more logical. And it breaks the process into small steps, most easily learned in an hour.
I'm not a C++ guru. I've used Visual Basic for just about ever and only written a few minor projects in C. I can print my name to the screen in C++, but that's about it. Or at least it was until I started this book. Walking through the first section, aptly titled "The Basics," I was able to get moderately familiar with C++ in such a way that I'll retain the knowledge pretty well. Quite obviously I'll get rusty if I don't use the new skills on a routine basis, but learning them was straight forward and well presented. The tutorials are backed by example code that worked fine in several different compilers and the analysis of what the code is doing is very effective at teaching the concepts as well as the specifics.
I do have a few minor complaints about the book. For one, it almost seems like two books. The first two thirds teaches C++ fundamentals and Object Oriented Programming quite effectively. But then the book almost changes direction and dives into the Standard Template Library. To me it's almost as if the book went a few hundred pages long. I suppose with the trend to produce forest-leveling technical books rather than specific shorter, more to the topic books, that this is to be expected. But I'd rather pay $50 for a 120 page book with only the information I needed than $20 for a thousand page book that scattered that same 120 pages across hundreds of pages of irrelevant, at least to me, material.
On the plus side, this book's 800 or so pages aren't padded with repetitive material or fluff just to meet a page count. The contents may not all be relevant to me, but they are likely relevant to someone else who might buy the book. I tend to see quizzes and exercises in a book like this as extra paper I didn't need, but a student with this book as a course text would find the material appropriate. Even for me the exercises provoked a thinking process not contained in the lesson itself. And in the end, you can't truly learn anything, whether it takes an hour a day or ten, unless you use the knowledge outside of the written example. If you want to learn C++, at your own pace, this is an excellent book to have.
22 of 23 people found the following review helpful
- Published on Amazon.com
I've never bought a book from the Sams "Teach Yourself" series. Although I've browsed a few of them in the local bookstore, I've never really found one that worked for me. This book is different.
First off is the all-star writing staff: Siddharta Rao leads the lineup, as a Microsoft MVP (C++) and expert programmer who contributes to community development sites like CodeGuru. Contributing authors Bradley Jones (also a Microsoft MVP) and Jesse Liberty round out the team, contributing their real-world development skill and writing experience to this book.
These writers have put together a solid book that will help a new C++ programmer get off to a stellar running start in the field. As for myself, being an old hand at C++ programming but having neglected my unmanaged C++ development skills for a few years, this book worked well as a wonderful refresher.
The book advertises that it will teach the reader C++ programming in "one hour a day". I think this might be slightly ambitious for many readers, especially those that want to test sample code along the way. But the fact of the matter is once you start a lesson, the authors' writing style will pull you in. The time literally flies by as you work your way through the lessons. Several times I found myself reading 3 or 4 lessons back to back, with no regrets.
A lot of people might judge a C++ book by its discussion of object-oriented concepts: inheritance, polymorphism, etc. The authors discuss these concepts in great detail, devoting several lessons to a thorough discussion of object-oriented concepts.
The authors use a very entertaining writing style, which expresses complex concepts in a very plain-spoken manner. Consider their comparison of passing parameters to a function by value versus passing parameters by reference:
"Passing (a parameter) by value is like giving a museum a photograph of your masterpiece instead of the real thing. If the vandals mark it up, there is no damage done to the original. Passing by reference is like sending your home address to the museum and inviting guests to come over and look at the real thing." (p. 249)
If I could have but one wish, it would be that in the next edition the authors add an introduction to .NET-style managed C++. The authors do, however, provide several lessons explaining the STL (Standard Template Library), a powerful standardized unmanaged code library that provides implementations of data structures, iterators, and many of the other niceties that programmers tend to take for granted in lesser programming languages.
This book is highly entertaining, expertly written, and intelligently organized. "Teach Yourself C++ In One Hour A Day" is an excellent resource for the newbie learning unmanaged C++, or the old hand (like myself) looking for a quick refresher course.
12 of 13 people found the following review helpful
- Published on Amazon.com
I just finished chapter 4 managing arrays and strings. The book is well written the examples are error free and best of all the book follows a great structure that's something like;
-analysis of code,
-at the end of each chapter there's a summary,
-Q/A for the main points of the chapter.
-workshop section with quiz questions and exercises.
The exercises send you out to write your own code from scratch and think outside of the books examples, some of the exercises are labeled BUG BUSTERS which show code snippets with errors for you to solve. Appendix D has quiz answers and possible solutions to the exercises.
So all that gets your mind into the language not just memorizing it, and gives you multiple opportunities to understand each point.
The book includes a free 45day pass to read the book online via "Safari online".
I highly recommend this book!
6 of 7 people found the following review helpful
- Published on Amazon.com
I haven't finished it yet. I'm on chapter 12, but I've seen more than enough to know that this is a great book and I have no plans to look further for a beginners book.
To clarify the title, I'd say this book is great for those new to programming, as well as amateurs from other languages who need a more modest pace for a 2nd language.
This book is an easy read, while managing to cover all of the basics in good detail. Explanations of difficult aspects are very good, although, as with any book, there are a few portions where I wished just a bit more had been added for emphasis and clarity.
Examples are good along with good end of chapter reviews. I especially like the areas where the authors point out syntax and techniques that you need to know, but then explain why they are better for niche use, and then go on to explain the better, and more common alternatives.
As of chapter 12, the downsides are trivial, as they all fall into that category of, "It's impossible for any one book to please everyone perfectly". Having said that, I give this book my highest rating. I also have Liberty's 24 hour version from 2002, which is why I ultimately bought his bigger version.
And now, a bit of general advice. I've seen a fair amount of programming books, and I've read tons more reviews of many more, all in a quest to find that 'perfect book'.
Try this for a bottom line: By the time you find that 'perfect book', that fits you like a glove, you could have learned that language 4 times over, and spent your spare time getting help from pros on various forums to enhance your skill in places the book was lacking.
Don't wait for the perfect book. First, decide whether you want the 'rush job' and more amateur approach, or the longer route, serious amateur/potential pro approach. For the rush job, get a smaller, '24 hour' book, typically 200-400 pages. For the longer route, get the big thicken'.
Next, aim for a book that is easy on the eyes and the brain, as opposed to one that is said to cover every last scrap and detail of the language and professional practices. Those 'cover-all' books are better for veteran programmers, and you can always get that info online, or later in an 'advanced/professional' book.
Obviously, if you land on a book that is just difficult to work with, you need to try another one, but if your complaints are minor, then the web can fill in those gaps for you, just as it has done for me with my experience with this book. I've only had to do that a few times, ftr.
4 of 5 people found the following review helpful
- Published on Amazon.com
If you plan on learning C++ in 21 days like the title says, good luck. This information is to be ingested slowly and it takes time to type in the code for the example listings. Also there are great side articles that will start you on a wild, but good, information goose chases. For example, after the book takes a few pages to explain Pointers on a very high level, I found myself trying to supplement what I just learned with web resources.
I am very pleased with this book so far. I look forward to continue learning from it about what could very easily be a mundane subject.