ACCU Home page ACCU Conference Page
Search Contact us ACCU at Flickr ACCU at GitHib ACCU at Facebook ACCU at Linked-in ACCU at Twitter Skip Navigation

Search in Book Reviews

The ACCU passes on review copies of computer books to its members for them to review. The result is a large, high quality collection of book reviews by programmers, for programmers. Currently there are 1949 reviews in the database and more every month.
Search is a simple string search in either book title or book author. The full text search is a search of the text of the review.
    View all alphabetically
Title:
C++ from Scratch
Author:
Jesse Liberty
ISBN:
0 7897 2079 5
Publisher:
Que
Pages:
418pp+CD
Price:
£27-99
Reviewer:
Francis Glassborow
Subject:
beginner's c++
Appeared in:
12-1
There is a lot that I like about this book. I approve of the general approach to learning by introducing syntax on a basis of need to know etc. However I think there are two big caveats, this book is not for the programming virgin because it assumes the reader can make sense of a number of technical issues. It sometimes fails to stick with the criterion of only introducing things on a basis of need.

What sort of sense do you think a pv would make of:

When I have constants that belong together, I can create enumerated constants. An enumerated constant is not quite a type, it is more of a collection of related constants.

Even if you know what the author is getting at you would probably be unhappy with those two sentences. Just look at that second sentence where one suddenly becomes a collection of several.

Then, all through the book we can see places where the author is pre-occupied with something he found difficult without stopping to ask if the reader has any need to know. For example in chapter 5 he spends a bundle of time on pre-processor macros. Eventually a programmer probably needs to know about these because s/he will come across them in other people's code but surely not at this stage. And there is no reason for creating ASSERT as a macro function in C++. There are other ways that substantially avoid using a macro function.

Chapter 6 (irritatingly there is a typo in the header for pages in that chapter so it gets highlighted as 'Chapter 1') is about linked lists. The author knows about the STL so why is he spending a whole chapter on this subject at this stage, rolling his own linked list. Remember this is a C++ beginner's book. Yes, every programmer should once in their lives write their own implementation of a linked list, but not at this stage.

Chapter 13 is on persistence. This is another very difficult topic that I contend has no place in a book for novices.

In summary, the author understands the learning process and makes all the right noises. However he does not understand the need for simplicity that the genuine novice has. I can imagine most readers getting quickly lost in trying to work from this book. If they have enough experience to cope with this book they could happily use such works asThe C++ Programming Language 3rd edorThe C++ Primer 3rd edand get a fuller and more rounded view of the language. If they can benefit from what Liberty set out to write then the irrelevant and overly complicated material needs to be cut out.