I would very much like to hear the experiences of genuine novices who use this package to learn C++
This package contains the third edition of C++ How to Program and an extra CD - with the book and quite a bit more on it. I have written favourably about previous books from this father and son team. I have become used to later editions of books adding very little extra quality. This is not the case for this book, the authors have both updated the material and improved the presentation. The publishers have worked very hard with the authors to ensure that the paper copy is nicely presented with intelligent and attractive use of colour. I am so used to colour being poorly used, that it is a real pleasure to come across an example where the colour adds value.
Most, if not all, of the material in the book is also available on the extra CD where it is organised to make best use of that medium. Extensive use has been made of hyper-links and if you can use it in an environment that provides you with continuous access to the Internet you will get even more value. The CD adds end of chapter exams to the already fairly extensive tests and exercises.
The authors have gone to considerable trouble to make their code correct and be of a reasonable standard. There remains room for improvement; for example they are still using the classic implementation of operator= which is not exception safe. I also do not like the style that uses friend to manage overloaded operators. In the grand context these are small things. I very much appreciate the authors setting a good example with using declarations, rather than taking the lazy route via using directives.
Personally I would use a different approach to introducing C++, but I appreciate the care that the authors have taken to avoid burdening their readers with confusing detail. For example, where other thoughtful authors would use the C++ string type from early on, these authors carefully construct their code so that string variables are avoided (though they make extensive use of string literals) until much later when they are ready to introduce the topic.
The book comes complete with a CD of Microsoft Visual C++ 6 - Introductory version .
It is easy to assess books that are fundamentally flawed, and not too difficult to deal with those aimed at fast learners/programmers converting from some other language but this book is aimed at self study by the average student. The signs are good because the authors obviously work hard to build on the experience they have garnered from the previous editions. Gone are the annoying talking heads that characterised the first edition. What we now have on the CD is an audio commentary attached to each of the code examples. This seems to work well, even if the audio is a bit flat and monotonously paced. The combination of audio and source code on screen allows us to use both our eyes and ears simultaneously.
The coverage of the language seems complete and I would be happy to recommend this book to newcomers. I would very much like to hear the experiences of genuine novices who use this package to learn C++. I think they will be positive, but it is hard for people with my level of expertise to assess just how well an approach works in practice.
For now I will classify this book as 'highly recommended'.