REVIEW - Wiley's Teach Yourself C++

Title:

Wiley's Teach Yourself C++

Author:

Al Stevens

ISBN:

0764526448

Publisher:

Wiley (2003)

Pages:

738pp

Reviewer:

Alec Ross

Reviewed:

October 2003

Rating:

★★☆☆☆

The intended readership of this book is programmers who want to learn C++. Cutting to the chase, I would certainly recommend this book for most people in that position.

It is a big book, at just over 700 pages; but for its intended purpose, of course, a difficulty is in what to leave out. To my mind Al has done an excellent job in his choice of coverage and in the detail given.

In my humble opinion there is now a range of good C++ textbooks using completely different tutorial designs. (Just think of Accelerated C++.) For introductory training in C++, whether it is delivered in a book or otherwise, there are important choices as to the sequence in which certain key concepts are introduced. In particular, the position of the description of classes, ABCs, templates and the standard library affects what can be used in the examples for other topics. It can, no doubt, also affect how the learner starts to think 'in' C++.

Teach Yourself C++ introduces OOP and data abstraction fairly early on (p112) and then again in the final chapter. Access specifiers and member functions are illustrated with structs (at p105), with forward references to the later detailed coverage of classes. Function template basics are covered around p193; class template basics are at p375, just before four chapters on the standard library.

Other design dimensions for such a book are in the emphases put on abstract and concrete aspects, e.g. on OO design principles and on language details. This book is very much focused on the concrete, as reflected in the choice of the domains(s) used in code illustrations. Al has chosen to use what he considers realistic examples that his audience can relate to, rather than anything concocted or abstract. These examples all have some application content. As a result they do not use generic names such as 'foo' or 'X'. I expect that the majority of beginning C++ programmers will be thankful for this choice - though they may move on later to seeing the abstracted style.

The code examples used are complete programs, not simply fragments, and are supplied on the book's CD. Building and running and editing and experimentation, are very simple with the supplied software. The main component of this is Quincy 2002, an IDE that front-ends MinGW (also on the CD).

I would have liked some more graphics and particularly canonical UML for the class diagrams, but the bottom line is as at the top; this book is highly recommended.


Book cover image courtesy of Open Library.