
Library
Welcome to my library - a bookshelf full of books I read and highly recommend reading to everyone interested in software development.
C# in Depth

The book written by Stackoverflow legend Jon Skeet is not just another book about C#. It describes the different concepts in a way that is incredibly easy to follow and interesting to read.
The book is not for beginners. It is for C# developers trying to get on an advanced level.
It is a book you should always have in your library. There are so many different topics covered in this book. You won't need all the information at once, but you'll be lucky to have a copy of this book if a question about a particular topic arises and you want to understand what's happening.
I've read the second edition. However, I recommend buying the fourth edition.
Head First Design Patterns

This book is one of the first programming books I have ever read. It covers many classic but still applicable object-oriented programming (OOP) design patterns.
What's unique about this book is its reader-friendly style, simple visualizations, and examples they use to explain those abstract topics.
I prefer this book over the original Gang of Four Design Pattern book at any time.
The Pragmatic Programmer

This book is a long-time classic written by Andrew Hunt and David Thomas. It focuses on providing practical advice to help software developers become more adaptable and professional.
The key topics are being pragmatic, meaning focusing on practical, result-driven problem-solving strategies.
Always stay up-to-date and curious, and continue learning new skills. Always strive to understand why something works and not only how it works.
Taking full responsibility and ownership of your work and avoiding blaming factors outside your control is another crucial section of the book.
The Art of Unit Testing

This was the first book I read about unit testing, from the cover to the back. Many resources are available online, but this book still offers a great insight into the perspective of Roy Osherove.
It mainly focuses on the importance of unit testing, how to write efficient unit tests, and how to implement a maintainable test suit that doesn't hinder future development of the production code.
Even during the modern age of AI-generated test code, those fundamentals still apply.
Clean Code

The Clean Code is one of the classics in software development. It covers basic stuff, such as how to consistently name your variables and how to structure your methods and functions.
Most of what is written in this book is considered standard in modern-day development. However, there are some gems hidden in the pages that you might want to introduce into the code base you are currently working on.
It is still worth reading at least once, especially for upcoming software developers.
The Clean Coder

While Clean Code focuses on hard skills, the Clean Coder is the counterpart guiding software developers through their professional careers, focusing on the professional mindset and soft skills.
I took a few recommendations by heart and learned about how companies work internally, how to communicate effectively, and why you are asked to behave a certain way.
A great read, even if you don't agree with everything - it will challenge you to think critically about your professional habits and the role you play in creating successful software.
C# Smorgasbord

Filip Ekberg's C# Smorgasbord explores advanced C# programming concepts, offering a comprehensive overview of topics like asynchronous programming, unit testing, dynamic types, and inversion of control.
The book is designed for beginners and experienced programmers and balances foundational concepts with advanced techniques, though it is better suited for those with some prior programming experience.
The book's practical approach shines through in its examples and real-world applications, helping developers integrate the concepts into their projects.
I have been interacting with Filip over the years, and this book is still relevant and worth reading for .NET developers who are getting serious about digging into the depths of the .NET platform.