TechBookReport logo



Keywords: ANSI C, gcc, programming

Title: C Programming In Easy Steps

Author: Mike McGrath

Publisher: Computer Step

ISBN: 184078203X

Media: Book

Level: Introduction

Verdict: An excellent introduction to the essentials of C programming for the non-programmer

New books on C programming (as opposed to C# or C++), are few and far between these days. Given that C is still one of the most popular languages for system development this seems a bit strange. Here at TechBookReport we suspect that publishers are using their back-lists to keep up with demand but we hope that we're wrong and are looking forward to a rash of new titles in the near future … In any case 'C Programming In Easy Steps' is the first new title to arrive here for a while, (and even then it's a new edition of an existing title).

This is the first of the 'In Easy Steps' series that we've seen and we're impressed. It's a slim little volume of 192 pages, with good design, lots of colour and a clear and uncluttered lay-out. The book makes excellent use of screen-shots, along with good headings, clear text and well-formatted source code. If nothing else the book scores highly on the cosmetic front.

Of course, we're interested in more than good looks (at least when it comes to books …), so how highly does the technical content score? Surprisingly highly we're happy to say. The book is pitched at the beginning C programmer, however it avoids the common trap of spending chapters on core programming concepts. The focus is on (ANSI) C syntax rather than explaining what a program is or what loops are for. It starts with the absolute basics of assignment to variables and then moves on rapidly from there.

The author wisely takes a reasonably platform-independent approach, with support for Windows and Linux. Partly this is possible because the book is geared around the use of the gcc compiler rather than a proprietary set of tools. There are instructions for installing and setting up gcc, and the Windows section of this points the user to the MinGW set of tools.

The approach of the book is to tackle each topic in bite-sized (one or two page) chunks, with sample source code and supporting screen shots. The code is short and sweet and is used to illustrate the point at hand rather than building up as a series into a larger application. This works extremely well, though it does mean that the reader never gets to see a particularly large or complex bit of code. The writing is very, very simple and straightforward without being remotely patronising or condescending. There are a lot of technical writers who could learn a thing or two about clarity of exposition from this book.

In addition to the core syntax, which includes structs, arrays of pointers, recursion, file I/O, string handling, memory management and more, the book also manages to pack in some reference material. An appendix lists the contents of the standard C libraries and the ASCII table.

Are there any criticisms? Well, for a start while the book is good at using small programs and functions to illustrate things, it does mean that the reader does not get a chance to see a more complex example of a C program. There are no examples of real-world problems, such as accessing devices or ports, performing some complex text filtering or transformation or anything of that sort. The handling of header files is also idiosyncratic. But, to be fair that isn't really what the book sets out to do. The aim is to teach the essentials of C programming, and this it does brilliantly. If you're in need of a quick refresher, or just need to get a handle on C programming basics then this is a perfect resource.


Hit the 'back' key in your browser to return to subject index page

Return to home page