I'd recommend this book for novice C programmers, people with two or less years of coding experience. However, this 1989 book focuses on pre-ANSI C, so the novice would need to be guided by someone that knows the history of C. Some of his statements are false when applied to ANSI C with prototypes (e.g., p.139, it _is_ possible to pass a char argument, if there is a function prototype). I read through and did the problems in this slim book in about three hours. It does have a few nuggets of value, and introduced me to a bug I'd not seen before, the reverse of the "= for ==" bug:
while( (x == fgetc(f)) != EOF )