ArtifiShell Intelligence

2022 in books

2023-01-21

I was quite happy with this post format a year ago, so here’s a list of very short book reviews for what I’ve read in 2022. Way more fiction, compared to none at all a year ago!

Responsive Web Design

Responsive Web Design, 2nd ed., by Ethan Marcotte

Reading this was part of my long-term low-priority project “read all A Book Apart books”, because they’re nice and short, and they help extend my backend-focused horizons. The second edition is from 2015, so there’s no mention of flexbox and grids, which I’m pretty sure would dominate a contemporary version.

It wasn’t all useless, though, and among other things has nice introductions to media queries and mobile-first design.

Designing for Emotion

Designing for Emotion, 2nd ed., by Aarron Walter

I found this pretty interesting because it comes with lots of examples of companies I’m familiar with, and I could always think about the design of the product of the company I work for as well. As always, I was thrilled to find references to books I’ve read previously, such as applying the “Peak-end Rule” from Thinking, Fast and Slow to figure out when to talk how to a user. Like, you probably shouldn’t solicit an app store review right after the user has encountered an error. (Unless you’d like to have a really low rating, of course.)

Eloquent JavaScript

Eloquent JavaScript: A Modern Introduction to Programming, 3rd ed., by Marijn Haverbeke

This was my third attempt at reading this. The first time around I had made it through the first two parts, then for some reason I stopped for a long time and started over, and then the third edition of the book came out and I kind of had to start over again.

In any case, this time I finished, and I think it’s an excellent book! The exercises are fun and insightful, the online playground is well done, and it’s fully open source. I did all the exercises, and two silly creations from there now even have a permanent home on my blog (here and here).

Employee Surveys That Work

Employee Surveys That Work: Improving Design, Use, and Organizational Impact by Alec Levenson

I was doing a survey for developers at work, and wanted to read something to help me avoid common mistakes. This was nice and short, though I’m not sure how useful it really was. In the end, I drew a lot more value from the Developer Productivity Survey article by Will Larson on his Infrastructure Engineering website.

1984

1984 by George Orwell

I’m trying to (re-)read classics I definitely wasn’t able to appreciate when told to read them in high school (like Brave New World, which I re-read in 2019), or this one, which I haven’t read before. I’m not going to bother and try to add a meaningful review here, but I enjoyed it a lot, and the speakers/screens in every room… I think that prediction has come true 😬

The Psychology of Money

The Psychology of Money: Timeless Lessons on Wealth, Greed, and Happiness by Morgan Housel

We read this in the book club at work. It’s based on the essay of the same name, and my slightly snarky review would be that just reading the essay probably is a much better bang for buck. I didn’t hate it, but I also didn’t feel like it gave me some deep insights. I will read the essay at some point, though, and maybe walk back this assessment.

If I had to pick one thing I did like, it’s the notion of “wealth is what you don’t see”: the “cars not purchased”, the “upgrade declined”.

It’s assets in the bank that haven’t yet been converted into the stuff you see.

The DevOps Handbook

The DevOps Handbook: How to Create World-Class Agility, Reliability, & Security in Technology Organizations by Gene Kim et al.

Apparently, 2021 saw a second edition of this, but O’Reilly only has the first edition from 2016, so that’s what I read. I think this brings the most value when read right after The Phoenix Project, because it makes so many of the concepts introduced there more clear and concrete.

I read TPP in 2018, but thanks to The Unicorn Project and The Goal, there was no shortage of business books written as novels in the first person until I got around to reading the DevOps Handbook.

Masters of Doom

Masters of Doom: How Two Guys Created an Empire and Transformed Pop Culture by David Kushner

I haven’t actually played many of the more recent id games, but mostly ancient ones (such as Commander Keen). How id has pushed what’s possible technically has always fascinated me, though, and this book is an excellent retelling of the entire story. Plus, I love reading about places that must have been special to work at.

Building Microservices

Building Microservices: Designing Fine-Grained Systems, 2nd ed., by Sam Newman

We read this in the tech book club at work. It doesn’t go super deep, but gives a nice high-level overview of the topic. It would sometimes talk about challenges one might encounter without really talking about solution approaches, but more often than not, those would be discussed in Designing Data-Intensive Applications, which we read previously.

Much was also very complementary to The DevOps Handbook, or maybe that was just top of mind because the readings overlapped.

Modern Web Development on the JAMstack

Modern Web Development on the JAMstack by Mathias Biilmann and Phil Hawksworth

This is more of a “report” than a book, and I read it because I started working with Jekyll around that time. It talks about JAMstack as a new paradigm for web development, and was a quick and easy read to solidify my understanding of the space.

Neuromancer

Neuromancer by William Gibson

I had heard of Neuromancer often before, and wanted to tackle a few seminal science fiction books for a while, so this is where I started. The alternative would have been Snow Crash by Neal Stephenson, which I still plan to read, but later.

Gibson coined the term “cyberspace”, and this novel is considered instrumental in the birth of the cyberpunk genre, though Gibson himself apparently doesn’t like it being called that. I definitely had to look up a lot more words than usual when reading, and as it turns out, a bunch of them are totally made up by Gibson and exist only in the universe of the Sprawl trilogy.

It was a very entertaining read, but I’m pretty sure I haven’t understood everything fully.

Count Zero

Count Zero by William Gibson

Clearly, I thought I should go all in and read the whole Sprawl trilogy as fast as possible. This might have contributed to everything being a bit of a blur, but Gibson doesn’t make it easy, either, and loves to have the story develop in multiple separate threads, which come together only at the very end.

As usual, I had to discover the big reveal by reading about it elsewhere rather than “getting” it from the book itself, but that’s fine—the experience of reading was not made worse by that.

Mona Lisa Overdrive

Mona Lisa Overdrive by William Gibson

The final book in the Sprawl trilogy is a bit more obviously set in the same universe; rather than just brand names and the like re-appearing, some of the main characters are actually the same as in the other books.

And, like in the other books, it was more about the journey than the destination, as again, I totally did not get the big reveal at the end.

The Pragmatic Programmer

The Pragmatic Programmer: Your Journey to Mastery, 20th Anniversary Edition, by David Thomas and Andrew Hunt

Reading this was part of my efforts to get through those books that appear on every single “must read” list for software people.

It wasn’t terrible, but even though this revised edition came out in 2019, it felt very dated overall. I did take away a few things that I haven’t thought about before in the way the book presents them, such as “tracer bullets”, and applying the “broken windows” theory to code.

Overall, though, I certainly don’t agree with the “live-changing!” reviews elsewhere, and the awful reading experience in the O’Reilly app didn’t help. Code blocks are, for some reason, displayed all centred, instead of using correctly indented lines…

Stolen Focus

Stolen Focus: Why You Can’t Pay Attention—and How to Think Deeply Again by Johann Hari

We picked this for book club at work. It wasn’t entirely useless, but I spent lots of energy being annoyed by the off-the-charts egocentrism of the author. “I’m addicted to Twitter, ergo everybody is. It’s a problem!”

It didn’t help that a few minutes of googling bring to light instances of plagiarism and fabrication of story elements by the author… I was confused for a while why he’d post the full length of all audio interviews on the book website, but I guess it’s some kind of self-protection mechanism.

In any case, it wasn’t a total waste of time, and I did take away a few things, but I’m pretty sure that was the last book by this author I’ve read.

Burning Chrome

Burning Chrome by William Gibson

This is a collection of short stories, mostly by Gibson, with three contributed by guest authors. Of the ones written by Gibson, three take place in the same universe as the Sprawl trilogy; since I’d already gone through that in its entirety, I thought why not make it complete.

Almost every story has some delightful plot twist, or maybe all of them do and I just didn’t catch them. One of the Sprawl stories is Johnny Mnemonic, which I only knew as a weird movie starring Keanu Reeves until learning about its short story origin. I re-watched it after reading, with all the context of the books, and it was still definitely weird, but also entertaining.

Clean Code

Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin

Part 2 of the “read all the books from those lists” project, after The Pragmatic Programmer. I can confirm all the common criticisms: it should really be called “Clean Java”, the disclaimer about there maybe existing other truths is half-hearted, and the whole thing is pretty dated by now.

I did take away a few points, though:

Sass for Web Designers

Sass for Web Designers by Dan Cederholm

I skipped a few books from A Book Apart to jump ahead to this one; specifically, I needed to learn enough Sass/SCSS so I could create a calendar layout for the Swiss Club Toronto events page; that website uses Jekyll, and Jekyll uses Sass. So there. The result can be admired here.

I quite like SCSS, and it still does a few things that modern CSS doesn’t do natively, but with CSS nesting on the horizon, I guess we’re getting closer to not needing preprocessors any longer.

Dinosaur Brains

Dinosaur Brains: Dealing with All THOSE Impossible People at Work by Albert J. Bernstein and Sydney Craft Rozen

I bumped into this in the references of The Pragmatic Programmer, put it on my “to read” list, and then was gifted a physical copy, making this the only non-electronic book I read this year. (And books are great gifts.)

The fundamental premise of the book is to be aware of an irrational “mode” of the human brain (the eponymous “dinosaur brain”), and recognize it in others as well as oneself. That’s a pretty useful idea.

In many ways, though, the book is a product of its time (published in 1989): gender roles are pretty stereotypical, women get advice on how to better navigate that time of the month where, you know, they’re more irritable…

And maybe I was just lucky in my career, but the workplaces described all sound like terrible companies. I’d rather quit than employ all the techniques to keep the dinosaurs at bay.

This Goodreads review summarizes it well:

A strange mix of insightful, useful commentary and questionable, outdated thinking.

Head First Design Patterns

Head First Design Patterns, 2nd ed., by Eric Freeman and Elisabeth Robson

I read this to prep for reading the OG Design Patterns, which, though clearly part of The List, is now old enough to warrant more context before reading, and I wanted that context from a modern interpretation such as the Head First book. (After Design Patterns, I should probably go on and also read the actual OG books, The Timeless Way of Building and A Pattern Language.)

I was a bit skeptic of the Head First style at first, but I think I’m a convert now. When I want to retain much from a book, I’ll read and highlight in a first pass, then go over the chapter again and summarize it. This book basically did that work for me by repeating principles, never skipping over details, and I guess the unapologetically silly cartoons and interviews with patterns also helped. I didn’t even mind that it all was Java.1

The Difference Engine

The Difference Engine by William Gibson and Bruce Sterling

After reading his first trilogy and the related short stories, the logical consequence was to commit to reading William Gibson’s work in its entirety, and The Difference Engine is the next book after the Sprawl trilogy. I knew the co-author, Bruce Sterling, from one of the short stories in Burning Chrome already.

Apparently, every few books, Gibson creates an entire new literary genre (or at least popularizes it); in this one, it’s steampunk. I loved all the references to mechanical computers and how they changed the course of the world as we know it, and even though I (again) totally missed the huge reveal at the end of the book, I thoroughly enjoyed it.