2.2 KiB
title | date | toc | images | tags | |||
---|---|---|---|---|---|---|---|
Book Review: "C Programming: A Modern Approach" by K.N. King | 2023-12-16T16:21:04-05:00 | false |
|
Note: This isn't going to be a very long or comprehensive review of this book, but I figured it might make sense to post some of my thoughts on it regardless.
"C Programming: A Modern Approach" by K.N. King made quite a nice read. Very insightful in some aspects, but a few bits were a tad cryptic ("few" might be an over-exaggeration, it was mostly just the bitmasking section). It felt a lot more accelerated than K&R's famous "C Programming Language" text, which I definitely enjoyed. It was also significantly more affordable and available than K&R's book, which is certainly a major win for those reading this for school-related reasons.
The syntax of C isn't too hard to grasp if you've programmed before, but the many developer patterns (King refers to them as "C idioms") and niche edge-cases that cause undefined behavior can be quite a monster to tackle as a learner. Luckily, King does a good job of informing the reader by dedicating countless pages to inform the student of these situations and how to handle them in the Q&A sections at the end of each chapter. I find this to be a quite refreshing improvement compared to K&R.
I'd likely recomend King's book to anyone wishing to learn C, especially if you plan to take a Systems course in the future, or need to read a bit of C code for your work. I probably wouldn't recomend it to someone without programming experience, but then again I wouldn't recomend C for new programmers in general.
Pros
- Usually straight to the point, doesn't get on tangents
- Affordable compared to other C texts
- Contains basic information about languages like C++ in relation to C
Cons
- Lower level knowledge is required/useful after Ch. 10
- Lacks additional material about advanced concepts like theading and optimization
Coming Soon...
My next writings will likely be something related to the book I'm currently reading, or the history/legacy of UNIX and UNIX-like systems.