REVIEW - C Programming In Easy Steps


Title:

C Programming In Easy Steps

Author:

Mike McGrath

Publisher:

Dreamtech Press (2002)

Pages:

192pp

Reviewer:

Pete Goodliffe

Reviewed:

April 2003

Rating:

★★☆☆☆


This book has not been sent to the ACCU to review. However, a friend of mine was given it for Christmas and after looking through it I thought that it was worth commenting on. It does appear very interesting, there aren't that many C books being published any more. But more than this, the price is only£9.99.

At first I was pleasantly surprised. There's a lot going for it, not just that it is cheap. It's generally well written, with an even tone and neat layout, making good use of call outs to draw attention to important points.

It's short and concise, containing no extraneous waffle. Each item is explained once in sufficient detail. It is "cross platform", with examples for Windows and Linux. Indeed a lot of example screen shots are shown of terminals running the example programs on both platforms. Up front the book describes where to get gcc for linux and mingw for windows. Mind you, it's a shame that it never suggests a better text editor than notepad!

It's a shame to see a number of simple items missing that would have greatly improved the book: there are no exercises to test understanding, and it would have been beneficial to include some pointers to more information. Although there is a "Where to go next" section at the end with the Borland/MS/free Bloodshed IDEs mentioned, there are no other books, websites, or other sources of information recommended for the curious reader.

Up to here it would have been an "adequate" book. But unfortunately, it contains a number serious let-down features. There really isn't much technically inaccurate information, but a lot of misleading and incomplete content.

This ranges from missing simple things like a clear differentiation of "==" from "=", through only ever showing if/for/while statements in their form with braces (not wrong but something that will clearly confuse a newcomer when looking at other people's code), to only describing one form of main: void main().

A section on multiple source and header files is dangerously misleading. In the example it shows a header file that actually contains the implementation of a function. Then in each .c file this function is prototyped separately. I really can't understand what the author was thinking.

The book proudly claims it claims it "conforms to ANSI C" on the cover, and there's another problem. There is no discussion of C standards. It happily describes an older variant of the language. It also describes some perspectives that aren't really applicable to 21st century C programming. For example it carefully explains the register keyword when these days the compiler is going to pick the best place for each variable regardless. You are left with the impression this is an old text on C re-presented. This really isn't excusable in a 2002-dated C book, it belongs more around the early 1990s.

So this could nearly be a recommendable book, especially considering the price, but it misses the mark. Perhaps this is what should be expected from a book with a smaller budget - in some ways I was impressed by how good parts of the book are. A subsequent edition could bring great improvements.

Unfortunately, the newcomer at whom this book targeted (with the low price) will not appreciate the flaws. As a case in point, after trying to explain to my friend why this book has serious issues, he thought I was being unnecessarily pedantic and elitist. He thinks these things don't matter. He wants a cheap book to teach him to program at home - he has no intention of getting into the programming industry. But this book could also mislead a set of novice C programmers who do have their intentions set on a career in programming. This is a serious issue and shows the level of responsibility technical authors have.


Book cover image courtesy of Open Library.





Your Privacy

By clicking "Accept Non-Essential Cookies" you agree ACCU can store non-essential cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

Current Setting: Non-Essential Cookies REJECTED


By clicking "Include Third Party Content" you agree ACCU can forward your IP address to third-party sites (such as YouTube) to enhance the information presented on this site, and that third-party sites may store cookies on your device.

Current Setting: Third Party Content EXCLUDED



Settings can be changed at any time from the Cookie Policy page.