Author: Dave Mark Publisher: Apress, 2008 Pages: 376 ISBN: 978-1430218098 Aimed at: Beginners and relatively inexperienced programmers Rating: 4 Pros: Good explanations throughout Cons: Not ideally structured Reviewed by: Mike James
Learning C as a first language isn't a silly idea but C can be a difficult and uncontrollable language predisposed to all sorts of idioms that make programs difficult to understand. For this reason if you do pick C as a first language you need a really good introductory book to guide you safely though the potential minefield and to expose the neat and elegant language that C can really be. This particular book won't send you astray but neither does it do much to make sure you understand the principles of good design. Even if you forgive it this failing it also has a basic problem that it isn't structured as well as it could be. The author has a very friendly and readable style and he does his best to make topics easy to absorb with very reasonably analogies and suitably short examples. So at a micro scale the book is very good but at a bigger scale it tends to introduce things in an order that makes things unnecessarily difficult. Why introduce functions that breakup the flow of control before you have introduced flow of control? Why introduce bits and bytes when the concept of a variable and assignment is still sinking in? And why bother with the complexities of two-complement representation when there is so much more to teach at this early stage. As long as you can cope with the less than ideal order that ideas are introduced in, and as long as you give yourself time for one idea to sink in before worrying about the "asides", the book will most probably teach you C even if you are a complete beginner. If you know a little more, i.e. if your'e happy about flow of control, variables, assignment and operators, then you might find the pace a little slow but it quickly ramps up to cover pointers, function parameters and even recursion before coming to a close.
All of the topics are well explained at a beginner's level and for the right reader this book will succeed.
|