DJ’s Book of the Month – The C Programming Language
I realize that “The C Bible” isn’t the official title, but I’d go so far as to say that K&R’s “The C Programming Language” is as close to a holy book on C as has ever been written.
There is an indentation style based on this book (called K&R, after the authors), so take that as a sign of how influential it has been. While I “may” use BSD-KNF for the examples, I still go back to this one and play with the ‘assignments’ at the end of each section. It’s a game of mine to come up with better ways to perform the same task.
The book starts at chapter 0, which is highly humorous if you think about it, and by the time a new programmer makes it to the end of chapter 1, they should have a much stronger idea of how the C language works. Unlike many of the programming books that are popular today, this one doesn’t come with a DVD of flash videos, and isn’t the biggest book ever written by any means. On the flip side, if you actually do the little exercises, you’ll have written programs that count words, reverse input, strip lines of whitespace, and many other tasks that someone might actually want to do. While these are significantly more challenging than many other books on the language, they’re actually useful examples that aren’t big on holding your hand so much as treating you like they wish for you to actually learn to program.
It doesn’t really focus on compilers, or have a step-by-step on how to set all of the basics up. I don’t think that I’d refer someone to it who wished to learn C as their first language until they’d made it through some other resources first. That being said, it’s perhaps one of the most concise and information-heavy books on the subject ever written. I read that it was a “book by a computer programmer for computer programmers, not a book by a teacher for a student.” Those aren’t my words, but are a very accurate assessment in my opinion.
If you’re wanting to learn C, or are already playing with some C programming, though, you must read it. You simply cannot afford to ignore the information inside.