Zed A. Shaw — Learn C The Hard Way

Context

I got an online PDF for this book in mid 2021 when I was first learning Linux and programming. This one was my choice because I got tired of online tutorials that were more of a reference than actual learning material.

Recap

This is a hands-on programming book with a strong focus on security and code correctness above all else, which seems natural given the author's background in industry-grade applications.

This time, you're not making a game from scratch or creating your own LISP interpreter, but thoroughly making your way through what makes C an "ugly language"; learning to manage memory, avoiding segmentation faults and using pointers. This is achieved through chapters each focusing on an aspect of the language with exercises all around it, as well as ideas for improvement and experimentation.

Rating

90 percent

This is the first programming book I actually worked through, I regret nothing. If you're someone who has always been wondering about C and low-level programming, whether you're experienced elsewhere or not, I highly recommend this one. Make sure to keep a few free hours, as this is not a typical hand-holding manual; the most important thing, I would say, is to really get used to and abuse the language as to come to grips with it. Of course, this alone isn't going to make you a master programmer, but it really helped me develop a feel for C and appreciation for what has been done for us since then.