Book Recommendations

Introduction

Even though I have specific articles posted for my book reviews (see part one here) I decided it'd be helpful for me to keep a more succinct list of book recommendations in a separate article.

Software Design

Leadership

Career

  • The Tech Resume Inside Out [⭐⭐⭐⭐⭐]: having read through countless resumes I have to say this book should be mandatory reading for developers, period.
  • An Elegant Puzzle [⭐⭐⭐⭐]: a very good read for engineers eyeing the engineering management track.
  • Staff Engineer [⭐⭐⭐⭐⭐]: the staff engineer counterpart of "The Elegant Puzzle", although I did find this book to be a slightly better one overall.

Best practices

  • Domain Modeling Made Functional [⭐⭐⭐⭐⭐]: an excellent book that tackles both domain-driven design and functional programming at the same time.
  • Clean Code [⭐⭐]: I know it's in vogue to hate on Uncle Bob and Clean Code, but I still have to put this here because I see and hear this book being recommended far too frequently. Please, please don't read this book and then treat is as the Holy Bible. For every decent advice this book has it offers a dozen terrible ones. If you're a junior, there's plenty of books even on this page that'll serve you better. If you're a senior, you should already know most of the useful stuff that's in this book.

Programming Languages

C# and .NET

  • C# in Depth [⭐⭐⭐⭐⭐]: a wonderful overview of C#'s history and a deep dive into some of its features. Probably the best intermediate level C# book out there. Note that the latest, fourth edition only up until C# 8.
  • C# in a Nutshell [⭐⭐⭐⭐⭐]: the latest edition of C# in a "nutshell" is probably the definitive reference book on C# out there, coming in at merely 1058 pages! While the whole book is great, the section on threading is probably the best intro one can get into C# threading -- no wonder, considering the book was written by Joseph Albahari.
  • CLR via C# [⭐⭐⭐⭐]: even though this book is somewhat old at this point, it's still the best advanced book on .NET and CLR internals.
  • Book of the Runtime [⭐⭐⭐]: while this is not necessarily a book as much as it is a collection of documents, BOTR is the definitive deep dive into the CLR and the BCL. The target audience is clearly the maintainers of the .NET runtime, but it can be an interesting read for C#/.NET developers looking to get a better understanding of the runtime.
  • Pro .NET Memory Management [⭐⭐⭐]: a very thourough treatise on the .NET memory model and the GC. Very similar in style and depth to CLR via C#, but covers more modern topics as the book came out in 2019. While the content of the book itself is great, due to the subject matter the author goes into excrutiating detail on memory, very frequently dipping into the IL/JITted code level.

Misc

  • Refactoring UI [⭐⭐⭐⭐⭐]: a book full of amazing, actionable UX/UI advice for the average developer.
  • Operating Systems: Three Easy Pieces [⭐⭐⭐⭐⭐]: probably the best text on operating systems out there. I wish the operating systems course I took was this good.
  • Grokking Algorithms [⭐⭐⭐⭐]: a neat little book that covers a significant portion of an Algo101 class for those who have not taken one, or those who have already forgotten.
Previous articleModern Command Line tooling - Windows edition!
Next articleA recap of modern C# features for the busy enterprise developer