Summary of reading: October - December 2020
I read almost nothing for a few months after the lockdown, but I started to pick up reading more for the last couple of months.
"C++ Best Practices" by Jason Turner — Buying Jason's book is a no-brainer for me considering I started to watch his C++ Weekly in 2016, and he was one of the people who inspired me to delve into C++ at that time. I particularly enjoy the chapter "25. Avoid default In switch Statements," which is a great practice not often mentioned, and "47. Fuzzing and Mutating," which provide concrete instructions on setting up fuzzing and mutating test.
"Effective C: An Introduction to Professional C Programming" by Robert C. Seacord — I love this book, and will recommend all C people, not just beginners, to read it. It is really easy to make mistakes when writing C code or using C APIs, and this book tries to mitigate the problem and teach best practices for writing secure C code. Since most commonly recommended C books are decades old, Effective C is a rare book covering up-to-date C standards and practices. Robert certainly knows about both the standard and modern techniques very well.
"Automata and Computability" by Dexter C. Kozen is a textbook I used in my Theory of Computation class. It is more like a course note than a traditional textbook, where topics are split into "lessons." I enjoy the writing style of this book.
"Analysis I: Third Edition" by Terence Tao — this is the textbook used for our university' mathematical analysis course. It is a solid read, and the points are conveyed clearly. I also found that I am quite interested in the topic of analysis.
"How to Take Smart Notes" by Sönke Ahrens: This book is recommended in the talk on "org-mode for non-programmers" by Noorah Alhasan in Emscs-SF meetup. I am positively surprised by this book. My expectation of "self-help" books is full of platitudes with little insights. Yet this book was one of the most profound books I read this year. And I immediately put the slip-box method described in the book into practice on this same book and other things I learned. The downside of this book is that it does not spend enough time on "How to take smart note," as the title suggests, but instead repeats a lot on "why." Nevertheless, these characteristics are pretty common in this kind of book.
- "Ray Tracing in One Weekend" book series by Peter Shirley — I reread this series as I both covered it in the Graphics Programming Virtual Meetup and did the Ocamlpt coding project based on the book series. In my opinion, this book is a must-read for graphics people and is also worth rereading.
- "Quaternions for Computer Graphics" by John Vince — I read it in 2016 when I understood almost nothing and wanted to make a video game, and I was lost at chapter 7. This time, I finally get enough insights into quaternions.
- "Structure and Interpretation of Computer Programs" — I joined the programming language virtual meetup organized by Conor Hoekstra this summer, and we read the classic SICP book together. We haven't finished the book yet at the time of writing.