Personal-Website/content/posts/BookReview-ModernC.md
Ben Hays e14bd5f205
All checks were successful
Build Hugo Site / build (push) Successful in 11s
Initial commit
2024-01-27 23:55:41 -05:00

32 lines
2.2 KiB
Markdown

---
title: "Book Review: \"C Programming: A Modern Approach\" by K.N. King"
date: 2023-12-16T16:21:04-05:00
toc: false
images:
tags:
- Reading
- Computer Science
- Programming
---
![Cover Photo](/images/c-knking.jpg)
**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](https://www.amazon.com/Computer-Systems-Programmers-Perspective-3rd/dp/013409266X) I'm currently reading, or the history/legacy of UNIX and UNIX-like systems.