Author: Mike McGrath
Publisher: In Easy Steps
Aimed at: Beginners wanting to learn C
Pros: Well presented treatment of C and principles of modular structured programming
Cons: Nature of C means it's not an exciting book
Reviewed by: Mike James
A book that brings C to beginners has reached its 4th edition.
This is an easy to read treatment of a really easy to use simple language - C. Yes it's true! Compared to modern languages like Python, Ruby or even languages derived from it (like C++ or arguably Java or C#) C is very simple. It's an old-fashioned, modular, procedural language free of the complexities of classes, objects, monads, closures, events and so on. The only difficulty is that it’s a true compiled language and this makes it more difficult for the complete beginner to get to grips with than an interpreted language like Ruby, Python or Qbasic.
This book is a colorful and slow-paced introduction to C using one of the free GCC compilers. No attempt is made to hide or simplify the tedium of the edit, compile and run cycle and perhaps this is a good thing is you are trying to teach some computer science along with the language. However, it might put the reader off. If you are made of sterner stuff then pressing on will reveal the delight of the simplicity and power of C that made it so popular in the first place.
The problem is that C is a language designed to do fairly technical things. For the reader expecting 3D games or multimedia the coverage of this book may well be disappointing and for this reason it probably isn't for the younger reader or the wannabe hacker.
What the book does is present the principles of modular structured programming and using data for tasks that might be considered boring but are at the core of serious programming. Of course this isn't enough to get you from complete beginner to expert but it is the first step on the ladder and C is a good first language that can lead on to either C++ or any of the other object-oriented block structured languages. It would also be a good introduction for anyone who is expecting to use C as part of another skill such as electronics or engineering. Of course if you already know a little about programming and need a fast paced expert's introduction there is still nothing better than the original Kernighan and Ritchie language definition. But if you need to learn C either because it is what your subject uses or because you want to start programming then this is a good introduction.
The source code files from examples in the book are available in a single ZIP archive.