Summary of reading: January - March 2020

Create: March 28, 2020
  • "Real World OCaml Functional programming for the masses 2nd edition" by Yaron Minsky, Anil Madhavapeddy, and Jason Hickey - I highly recommend this book for people who want to learn Ocaml in-depth. However, it does require familiarity with functional programming to understand. I understand a lot of advanced ML language features such as Functors (witch very different from Haskell functors) and First-Class Modules by reading this book. Also, as the name suggests, this book is a "real world" programming book that spends enough time on the build system and libraries.

  • "The Formal Semantics of Programming Languages: An Introduction" by Glynn Winskel - The book has a clear explanation of the programming language concepts. It is centralized around a little programming language IMP, and the book defines it with different style semantics. On the other side, since this book is so dated (1993), the notations used in the book are quite weird.

  • "Practical Foundations for Programming Languages" by Robert Harper - Maybe I am dumb, but I find this book a dry and tough read. A lot of the time, this book read more like a reference menu than a textbook. If you don't understand the concepts, reading this book is probably not an efficient way to help you. On the other hand, if you do understand the concepts, then you will find the definition mechanical. Simultaneously reading the Winskel book helps a lot in understanding this book. I like the emphasis on language static of this book, which is a missing part of the Winskel book.

  • "Hands-On Design Patterns with C++" by Fedor G. Pikus - I start reading this one after someone recommended it on the cpplang slack channel. I like how this book focuses on idiomatic C++ instead of design patterns. My only gripe about this book is that some examples are quite contrived or may not use the right pattern to solve the problems. For example, the game example in the template method chapter should be implemented with a component architecture or ECS instead of inheritance. I understand that those examples are just for demonstration purposes, but they can be misleading for people who don't know the alternatives.

  • "The Elements of Style" by William Strunk Jr. and E. B. White - A cute little book on how to write English efficiently. I have to say, nevertheless, that understanding the points from the book is far from applying them as an instinct.