The Best Books I Read in 2020

December 16, 2020

I have read many books in 2020; let’s forget most and talk about the good ones.

There is no particular order, but I broke down my recommendations by categories: technical, non-fiction and fiction.

This is a yearly tradition! You can read my book reviews for 2015, 2016, 2017, 2018 and 2019.


Technical

Programming Phoenix

Programming Phoenix

Before reading this book, I felt that I needed to read a bunch of other books first. 😢 I made the same mistake with Ruby and Rails…

At heart, I’m a web developer and that’s what I care about. Knowing HOW I can use Elixir to build a webapp was so much more practical than the bottoms-up I took.

I only have good things to say about this book:

If you follow along, you’ll end up building just enough of a webapp to give you an idea about whether Phoenix and Elixir are right for you.

Afterwards, I would recommend Programming Elixir, which covers the language in more detail. It’s a great book, and I’m surprised it didn’t make it to my 2018 recommendations… 🤔 (maybe I felt that learning Elixir in a vacuum didn’t make sense…)

Elm in Action

Elm in Action

I had been wanting to learn Elm for a while, and I found Elm in Action to be a gem!

Yes, Elm has a guide, but I cannot say that it was the easiest to follow or the most organized – especially for someone (me) going in cold. To be fair, I went through the guide after the book and found (in retrospect) that it made complete sense (a feeling probably shared with the authors of the guide).

Elm in Action is a tutorial in book format. It walks you through a project, introducing concepts and adding functionality one chapter at a time. I thought that the pace, order of presentation, and tone were perfect: each section clarified a previous point, or answered my next question.

From the preface:

… I realized I was describing the book I wished I’d had back when I first set out to learn functional programming. […] I wanted that book to exist so badly, I volunteered to write it.

Mission accomplished! I would recommend this book either for Elm enthusiasts, but also for people wanting to get deeper into functional programming.

Game Programming Patterns

Game Programming Patterns

Game Programming Patterns is another no-brainer: I found it interesting and relevant – even if I’m not a game developer. (also: I had seen it recommended so many times, it was hard to avoid…)

Design Patterns is old and not necessarily the most enjoyable read. And though Amazon says the book is (still) a best seller, it’s unclear how many people have read it. It’s refreshing to see an updated take on patterns, with modern examples and opinions about what to do and what to avoid.

I had the opportunity to apply some of the ideas from the book to a project at work; it made the code more flexible and simplified the architecture. It’s unclear if the book was the cause, but it certainly was an inspiration 😄

There are also a few chapters on optimization patterns, of which “data locality” is close to my heart. Overall, it was a fun read, and gave me ideas to (hopefully) untangle future code messes.


Non-Fiction

White Fragility

White Fragility

What a year 2020 was! During the George Floyd protests, there were many proposed reading lists, like this one. Fighting racism starts with yourself and I thought it would be good to do some homework.

A few names and titles kept coming back; I ended up reading (in this order):

Let me be clear about this: I enjoyed and recommend all 3 books … but I felt that White Fragility probably hit the hardest.

I tried to gather my thoughts, but I think wikipedia page did a better job:

DiAngelo coined the term “white fragility” in 2011 to describe any defensive instincts or reactions that a white person experiences when questioned about race or made to consider their own race. In White Fragility, DiAngelo views racism in the United States as systemic and often perpetuated unconsciously by individuals. She recommends against viewing racism as committed intentionally by “bad people”.

If you ever thought “… but I’m not racist!”, this is exactly the book for you.

If you need to ease into it, I would start with So You Want to Talk About Race.

Never Split the Difference

Never Split the Difference

I admit, grudgingly, that Never Split the Difference had some good advice.

But, like many non-fiction books, it could have been a much thinner book. And it could have been called “A Bunch of Stories about my Time as a Hostage Negotiator” … but that’s not as catchy.

In the end, it’s a book about letting others “help you to help them”: it talks about mirroring, and variants on “how am I supposed to do that?”. Every time that I’ve remembered the techniques and put them to use, I was surprised at how well they worked!

This book is an update on classics like Getting to Yes (1981) and Start with NO (2002). While not wrong, we’ve learned much since then, and this book contrasts different approaches.

Whether business or interpersonal, even putting this book into practice once will pay the price of the book multiple times over.

Science Fictions

Science Fictions

I first heard about this book from the article: You Want to See My Data? I Thought We Were Friends!. The article, though unfortunately not the book, is illustrated by the @smbc guy:

comic sample

This book is critical of science (for good reasons) while remaining pro-science: the way for science to heal itself is through science. Metascience, “the use of scientific methodology to study science itself”, is the backdrop of the critique.

There are chapters dedicated to the problems of science:

It’s a mess out there, mostly because of how science is currently incentivized. Don’t lose all hope: the final chapter is called “Fixing Science”, and it highlights some of the solutions that are possible (though it isn’t meant to be a comprehensive list).

Mastery

Mastery

Written in 1992, Mastery felt like the “original source” for many other things that I’ve read over the years. (think 10,000 hours, etc) It’s part of a certain philosophy about living your life.

Mastery is a journey:

The modern world promises quick-and-simple solutions to most problems … it takes a certain perspective to accept that it’s going to take more time/work.

You also need to know that the journey to mastery will mostly be spent on plateaus – long periods where progress is stagnant. Depending on your outlook, you will give up, double-down, coast, or “transcend”. I don’t think we can (or should) master everything; it becomes a question of priorities. But it’s helpful to make those decisions consciously.

This is another could-have-been-a-shorter book, but I really enjoyed the first half.

How to Invent Everything

How to Invent Everything

Oh no: your time machine broke down, and now you’re stuck in the past?! Don’t worry, this guide will bootstrap your civilization to a relative level of comfort…

This is part history book, part “how to” guide, wrapped in a thin layer of tongue-in-cheek humor. Written by Ryan North, of Dinosaur Comics fame, it’s a decent effort at accomplishing “a survival guide for the stranded time traveler”.

We live in an ever-increasingly complex society and, proportionally, understand less and less of it. This creates an anxiety: “if the world came apart, I wouldn’t know how anything works…” (this is reflected in the popularity of games like Civilization, Minecraft or Factorio … or other games with technology trees). Deep down, most people want to feel self-reliant and feel like they can manage complexity.

While I sometimes found the humor tedious (especially after a few chapters), I concede that it might make the book more palatable to a certain audience. I learned a bunch of things and this is a book that I keep thinking about.

(it also made me look for other world-from-scratch books, some of which will probably make an appearance next year)


Fiction

I read a bunch of fiction that I enjoyed this year … but not many books that I could recommend whole-heartedly. Even this one comes with a disclaimer.

Cyteen

Cyteen

If fiction, and especially science fiction, is supposed to “take you places” or let you (safely) experience things you normally wouldn’t, then Cyteen is worth discussing.

Humanity ventured into space and divided due to the long distances. One possible solution to populate and bootstrap new worlds is cloning. Cyteen is a book exploring cloning and its ramifications:

Cyteen won the 1989 Hugo award (that’s how I found it).

The whole book made me feel uncomfortable, claustrophobic and paranoid; living in a completely different world and spending decades with its main characters. I found the worldbuilding impressive, and I’m going to look for more from the author.


Closing Thoughts

If you have liked this blog post, please write your own. I want to read your book reviews and recommendations.

Discuss on Bluesky