Summary of reading: January–March 2020

This post (the first in a long row, hopefully) is inspired by Eli Bendersky's Summary of reading posts where I've more than once found a good read or two.

  • Edward Snowden: Permanent Record – was a Christmas gift from my brother and his wife (thanks again!). The German subtitle is "Meine Geschichte" (my story) and the book is indeed an autobiography. While it naturally also describes technical aspects it has to make concessions and the explanations are tailored to a general non-technical audience. But that's OK, the focus and strength of the book are the people, first and foremost of course Snowden himself. He's an interesting personality and tells an engaging story. On second thought though the book is actually not about people. It's about systems. How they lure you in. How they support and comfort you. How you become a part of them. And how they can turn against you or your loved ones at whim. Snowden decided to expose the system, which makes him a traitor in the eyes of many. The system is still instated. An important battle has been won thanks to the sacrifice of Edward Snowden (and many others), but the war is still waging. It is not sufficient to expose or even "destroy" the system; it has to be replaced [1]. The system thrives or dies on decisions made every day, by all of us. Decisions not as dramatic as in Snowden's case, but also not as hard or consequential. Recommended reading.

    Arguing that you don't care about the right to privacy because you have nothing to hide is no different than saying you don't care about free speech because you have nothing to say. –Edward Snowden

  • Philip K. Dick's Blade Runner – what can I say, it's a classic, and I got hold of a new German translation. Normally I'm not too fond of reading the book after having watched the movie (because I inevitably visualize the scenes), but in this case I realized pretty quickly that the plot is quite different. The theme and the atmosphere are the same, but the storyline is totally different—which really confused me in the beginning because I had no recollection of that movie. And maybe I do misremember Harrison Ford-Deckard, but I feel that the Deckard in the book comes across much more mundane and almost shallow, always worrying about money, his fake pet sheep, how to get a real one and what the neighbors might say if they find out. True to the original, now subtitle of the book Do Androids Dream of Electric Sheep I guess. What surprised me the most though is that even the iconic "Tears in rain" monologue in the film is actually not from the book! Anyway, I'd recommend the book even (or maybe all the more) if you've already seen the movie.

  • The Order of Time by Carlo Rovelli – a popular science book similar to Stephen Hawking's A Brief History of Time. I read the German edition ("Die Ordnung der Zeit"); the translations for these kind of books are usually pretty good and it makes for a more pleasant reading because I don't have to guess (or look up) technical terms. The book consists of three parts. Part I deconstructs our "intuitive" notion of time and describes what scientists have discovered about the nature of time in the last couple of thousand years. Basically all of our assumptions don't stand up to scrutiny. One thing in particular I hadn't realized before is how much the Newtonian world view has apparently shaped our thinking and education, and really our "intuition" about time (among other things). Anyway, part I is a concise "history of time" that alone is already worth the read. Part II is rather short and somehow too "philosophical"; I didn't understand what it was supposed to convey. Part III finally develops a new notion of time in which entropy, relations of events and (un)certainty play the central role. Although handwavy and a bit unconnected, the author manages to paint a fascinating picture of (t)his promising Loop Quantum Gravity (LQG) theory and provides a lot of food for thought. Oh and BTW, if during part III you, like me, keep thinking "that sounds a lot like what that Lee Smolin guy I saw on Youtube was saying", you're not mistaken: He's mentioned in the author's bio as the co-creator of LQG and has also written a couple of (I guess) popsci books on the subject. This definitely all sounds quite exciting.

  • Functional Programming in C++ by Ivan Čukić – a great introduction to key ideas and concepts of functional programming, how they can be applied using C++ and why they make for better designs and programs. The book contains a lot of (I'd say advanced) code and is not suitable for beginners. But everything is explained in detail, often supported with diagrams and tables. I have to say that this was really an eye-opener for me. In particular the (motivation for) ranges [2] and the monad chapter gave me some aha moments. I only skimmed the last two chapters, but I plan to reread parts of the book anyway once I get around to using some of the stuff in my personal projects. If you're a practicing "object-oriented" C++ programmer and want to expand your knowledge portfolio, this is definitely a book to consider. If you're curious go see this more in-depth review by Sumant Tambe.

  • The Pragmatic Programmer: your journey to mastery – is the title of the 20th anniversary edition of this now classic software engineering book by David Thomas and Andrew Hunt. When I started my professional life in 2008 a senior colleague (a CS guy; hey Martin!) gave me a (100% legal I'm sure) PDF copy of the first edition of the book and advised me to read it. He was also a Ruby guy (Ruby was at peak hype back then I believe). I had no use for Ruby, and I wasn't pragmatic. I didn't read the book. After reading the new edition I really wish I did, because I had to learn a lot of the stuff the hard way, by making mistakes. And while I think that many of the ideas have become part of the collective wisdom (in one form or the other), it's always nice to see a coherent and comprehensive exposition that IMO only a book can provide. Yes, you can glean the gist of it from blog posts, journals, advice from coworkers, own experience, etc. but it's not the same. You're missing the whole picture. So don't make that mistake. Read the book now. (Or at least read this recent review by Swizec Teller.)

[1] Russell Brand's Youtube channel
[2] There seem to be concerns about The Surprising Limitations of C++ Ranges Beyond Trivial Cases pretty recently still though.