Book review, C Primer Plus, Sixth Edition by Stephen Prata
Introduction:
C Primer Plus is a book by Stephen Prata. The book has total six editions, the first edition came out in 1990, as far as I’ve managed to track down the older release. The main focus of the book is to teach C Programming Language. The sixth edition of the book came out in 2013, two years after the ISO standard of c 2011, and this review will focus on that edition.
My review:
The book goes very deep into the history of C, why things are the way they are, and various features which the language offers. It introduces all the features of C standards, from 1989 to 2011.
Naturally, it also includes fair amounts of warnings and what not to do, which is very important because there are some idiots on the net who write tutorials using gets() without even knowing how dangerous it is. (Don’t even get me started on void main() That is what happens when you let Java programmers teach C.)
My snark aside, the book also includes exercises, which is always a bonus in my opinion. Letting the reader solve problems through what they have learned in the recent chapters is the way to go in my opinion.
But not everything is good. First, the size of the book. It is huge. Given all the explaining it has to do, it can’t be helped I suppose. But still, the size of the book can be a turn-off.
Second, this warning. “This may not work with your compiler.”
Take a drink each time you read this warning. I get that there is a lot of legacy stuff in the C, and someone, somewhere, is still using the Borland’s compilers for one reason or another. But that warning by the end of the book annoyed me to no end.
Third, the commenting style of code. this might sound that I’m nitpicking here, but hear me (or read me) out. when you only have a single line comment, what would you do. Will you use the //? Or will you use /**/?
Of course, you will pick //. Why then a lot of the single line comments in the book are written using like this? /Watch out for errors/?
That is a personal gripe, but I think it has to be noted here.
Apart from that, don’t expect any mention of clang or LLVM. I’m not familiar with how things were back in 2013, but from what I’ve gathered, clang and LLVM didn’t took off in heavy use until then, certainly not enough that they will be mentioned in a book. Or it could be that Prata ignored it entirely.
Now, let’s answer the important question. is it worth reading to learn C? I think no. if you’re an advance programmer familiar with other languages, then you can find better sources than this, because you don’t need long explanations of the basic things like this book does. And if you’re a beginner, and for whatever reason, you wish to grind your head in the grinder that is C, then there are easier books out there which you can try.
So, if you ask me, this book gets a hard pass from me.
Have you read this book? Do you agree or disagree with my opinion? Tell me in the comments below. If you like this review, then consider buying me a coffee
You can check out my other blog Muse of Eagle