Book recommendations

Reading books is a great way to cut throught the endless sea of poorly written and unfocused articles online. They're curated, edited and maybe even coherent. Beyond learning "how to code", many high level pursuits, software engineering, arcitecture, management, principles, philosophy − these are often best found in books.

It is not lost on me though, that despite increasingly searching out for these options, many go unfinished. Despite that, those books listed here are essentially recommended.

Hopefully through these recommendedations, you can share in some of my favorite sources of knowledge around these topics.

If you have a wonderful book recommendation for me, feel free to share.

The Pragmatic Programmer: your journey to mastery, 20th Anniversary Edition
David Thomas, Andrew Hunt

A good friend recommended this book during its prerelease phase, and the week of release I picked it up. For an engineer programming for a few years, if engaged in philosophical "Am I really doing this right?" mixed with sufficient work variety, this book will likely reaffirm many of your approaches. Being the 20th anniversary edition of the original book, there are refreshed examples, even some using Elixir, and many older C and Java examples have either been removed or revised to keep up with modern approaches. This is a good book for an at-work bookclub -- the chapters are short enough for a weekly meetup, but has enough material and relatability that everyone can offer some perspective during discussions.

This book is not prescriptive, if you disagree with a portion, that is fine, you just need to know why.

An Elegant Puzzle: Systems of Engineering Management
Will Larson

I think I learned of this book through the occasional HackerNews book thread. Entering into a pseudo-management position at the time, it caught my eye. During my reading of An Elegant Puzzle, I felt philosophical alignment with Larson, while at times I think he stretched his advice too far and left the argument hanging without a conclusion or justification. Definitely a recommended read for intermediate and senior engineers, and of course those looking towards management. Finally, all of this is to say nothing of its well made printing − Stripe Press has gone out of its way to make a beautiful hardcover, with many full color pages, on thick paper stock.

The Systems Bible: The Beginner's Guide to Systems Large and Small Paperback
John Gall

The Systems Bible is a strange book, in my opinion. It uses irony, exageration and some mix of satire and parody to portray how complexity piles up in systems and what that means.

The Rust Programming Language
Steve Klabnik

Rust's entire "introduction to rust" book is available online for free, but it is great having that in physical book format. For my purposes, it serves more as a reference to various examples I use to base specific implementations, or to refer to terms to search for elsewhere.

The Design of Everyday Things: Revised and Expanded Edition
Don Norman

As a part of a college reading list for a human computer interaction focused course, The Design of Everyday Things tells the story about the human factor in design. Norman explores core tenets of design, affordances, signifiers, mappings and more. While obviously aimed towards frontend inclined engineers, backend engineers may benefit being exposed to this mode of thinking.