Author: David Giffiths & Dawn Griffiths
Aimed at: Beginner
Pros: Good concept coverage, real life lab projects make it fun
Cons: Very UNIX oriented
Reviewed by: Bill Cunningham
By no means is C an easy language to learn. There are lots of places where you can get lost even if you are familiar programming other languages.
Head First C tries to present material as simply as possible using illustrations, like all Head First titles, to show the reader complex concepts in a simple manner.
If you want to learn the C programming language, even if you've never learned a programming language before, this is a great starter book. This book takes you through most of the C language (all 26 keywords) and some of the standard libraries.
If you follow along like the book suggests, you get to work on real life type projects such as Arduino programming, interfacing with OpenCV an open source video library, and an asteroid-type game. Along the way you learn programming concepts such as concurrency, threading and data structures.
The book does have a few drawbacks if you've only done programming from a Windows environment. The book makes extensive use of command line tools and you might not be all that familiar with them. Tools such as gcc, make and gdb can be a little intimidating to use at first, especially for a beginner.
I would recommend this book for the beginner programmer and those who would like a peek at data structures and computer science concepts. This book covers quite a lot of material and functions, but is very UNIX centric in its approach.