ArtifiShell Intelligence

2021 in books

2022-01-01

I was pretty lazy with writing longer book reviews in 2021, but here’s a list with mini-reviews of what I’ve read last year.

Thinking in Systems

Thinking in Systems: A Primer by Donella Meadows

We read this in one of book clubs we have at work. I found it to be pretty dry, and it wasn’t straightforward to apply any learnings from it to software engineering, or at least that’s how the discussions felt to me. My favourite bits were the examples, but I don’t think I’ve taken much with me that’s actionable, other than the good feeling of having read this classic. Which also isn’t actionable.

Code

Code: The Hidden Language of Computer Hardware and Software by Charles Petzold

My favourite read of the year! I’ve written a longer review about this. We read it in our tech book club, and I’ve learned a lot from it. I’d love to go deeper on the topic by either building a CPU from first principles, do the Nand2Tetris courses, or read Computer Systems: A Programmer’s Perspective.

20 Patterns to Watch for in Your Engineering Team

20 patterns to watch for in your engineering team

This book is meant to help better understand patterns you can observe when using Pluralsight Flow, an engineering metrics tool. For my taste, it is biased too much towards an environment where the expectation is that developers do nothing but code, all day every day.

The Design of Everyday Things

The Design of Everyday Things by Don Norman

Another work book club book; this has been on my “to read” list for a long time. It was a real slog to get through, and though there’s a ton of repetition in the text, reading it felt like hard work. My main takeaway is the terminology coined by Norman, and being able to point out when somebody mixes up signifiers and affordances. I also pay a lot of attention to doors now.

Fundamentals of Software Architecture

Fundamentals of Software Architecture: An Engineering Approach by Mark Richards and Neal Ford

This is probably the first use of the O’Reilly subscription I get through work. As it turns out, they have basically everything!

True to its title, this book clarifies the fundamentals of software architecture, and in doing so defines a lot of terms everybody seems to have a different idea about. Now, if everybody would just read the book…

Some examples are a bit hand-wavy, but I did like the quantitative approach shown. Maybe the architects who produce a slide deck and then move on without anything ever happening aren’t actually doing a great job after all!

UNIX and Linux System Administration Handbook

UNIX and Linux System Administration Handbook, 5th ed., by Evi Nemeth et al.

I wanted to read ULSAH for a long time, and seeing it in the O’Reilly catalogue was enough to get me started. It took me quite a long time to get through, but I feel like I’ve learned a lot (DNS! Booting! Virtualization!). Each chapter is a great overview of a topic, and offers tons of references to go deeper if desired. And, unexpectedly, the book was funny in a very subtle way.

The Goal

The Goal: A Process of Ongoing Improvement by Eliyahu M. Goldratt

The one physical book I’ve read this year! I got this for a promotion at work. I think it holds up extremely well, and it made me want to re-read The Phoenix Project. Unlike the latter, The Goal actually explains why it’s written as a first-person fictional story, and why the main character has seemingly unrelated marriage problems. Without knowing any of this, TPP was kind of strange to read, though still entertaining.

Software Tools in Pascal

Software Tools in Pascal by Brian W. Kernighan and P. J. Plauger

I have started reading old Kernighan books a while ago, but somehow got stuck on Software Tools, mostly because I did the exercises, in Pascal. On this second attempt, I didn’t do the exercises, but I finally understand where you have to put semicolons in Pascal!

I found this a very instructional read, which has changed the way I approach writing small programs myself, and my thinking about what features belong where. It is also a masterclass in writing about programs.

Data Science at the Command Line

Data Science at the Command Line: Obtain, Scrub, Explore, and Model Data with Unix Power Tools, 2nd ed., by Jeroen Janssens

The first edition of this was part of a Humble Bundle I bought a while back, but by the time I considered reading it, the second edition was close to being finished, so I just waited for that.

DSatCL introduces a very structured approach to what I often do already, and I’m excited to adopt some of the practices such as using Makefiles to keep the chaos at bay. I also want to learn more about the R/ggplot-based plotting tools, and use them in some of my projects.

HTML5 for Web Designers

HTML5 for Web Designers, 2nd ed., by Jeremy Keith and Rachel Andrew

Work on my Pandoc Bash Blog has stalled somewhat recently, but I have a bunch of things I’d like to do with it, many of which require some frontend chops. Since the entire library from A Book Apart is on O’Reilly, why not read some of them? (Or all?)

This is the first book of the entire series, and I only realized when I was done that there is a second edition. And even that one is a few years old, but together with reading lots of MDN documentation, I feel like I’m now more or less up to speed.

CSS3 for Web Designers

CSS3 for Web Designers, 2nd ed., by Dan Cederholm

The second book from A Book Apart. This time, I read the second edition right away. I think browser support has improved quite a lot since this book was written, but it definitely helped me better understand transitions and animations.

The Elements of Content Strategy

The Elements of Content Strategy by Erin Kissane

Reading this was mostly because of completionsim, but it turned out to be quite interesting nonetheless. I’m a little less confused about “content strategy” now.

Mastering Blockchain

Mastering Blockchain: Unlocking the Power of Cryptocurrencies, Smart Contracts, and Decentralized Applications by Lorne Lantz and Daniel Cawrey

I read this mostly to understand all the buzzwords and getting an idea of the fundamentals of cryptocurrencies. The book mostly got that job done, and also confirmed my disinterest in the space—but now I can better explain why! It also tremendously improved my understanding of the crypto episode of Silicon Valley.

The Little Book of HTML/CSS Coding Guidelines

The Little Book of HTML/CSS Coding Guidelines by Jens Oliver Meiert

I thought I’d read this before, but apparently not… I was looking for a CSS style guide, and this contains at least a sketch of one. It also describes how to come up with and socialize coding guidelines more generally.

The Docker Book

The Docker Book: Containerization is the New Virtualization by James Turnbull

I wanted to much better understand how Docker works, and this helped a bit, but the e-book formatting was so annoying that I almost stopped reading. Docker has also evolved quite a bit since this was written, so I’ll have to read some more anyway.