A list of the 5 most influential books that changed my perspective on programming.

Some people like to watch courses, others like to tinker with the code, but I like to read. Books about programming are a bit tough sell though. Dry, long, and they become obsolete quickly. But you can find rare gems that don’t fit that boring category.

These following books helped to advance my career and change the way how I build software.

CLR via C#

For a C# developer this should be a bible. It is long, it is detailed, but Jeff Richter is doing a great job of keeping the reader engaged. You are going to deep dive into the nitty gritty details of the .NET framework and C# and when you are done with the book your .NET skills will increase by at least 1000 points.

Please, read this book and make the .NET world a better place.

Domain-Driven Design

In this book, Eric Evans dives deep into the design of complex systems. It has an academic feel and there is a lot of theory, naming and repetition. But it is worth it.

The focus on speaking the same language as your business experts is a revelation. Learn business terms and understand the concepts in your domain. And when you start using that language in your code it is a true transformation to a self-documented maintainable piece of software.

Threading in C#

A free chapter from Joseph Albahari C# in Nutshell book that has the best explanation of threading, synchronisation and advanced parallel techniques in C# I ever read.

It’s a must read before you type new Thread(…) into Visual Studio.

The Passionate Programmer

As opposed to the other pieces in this list Chad Fowler doesn’t directly focus on creating software. The main focus is how to grow your software developer career and how to approach it as a business.

For me the biggest takeaway from the book was understanding the impact of your work on the bottom-line of the company. In other words, how much money your code makes.

And also, as a software developer you need to build other skills than just hardcore coding. Marketing, networking, communication among others.

Practical Object-Oriented Design in Ruby

Wait a minute. This book is not about C# at all. What is it doing on the list?

Yeah, it is in Ruby, but Sandi Metz is one of those developers that grew up with Kent Beck and went through the classic Smalltalk object oriented design school.

She has a talent for explaining hard design concepts with simple words. After reading this book, design of my objects improved dramatically and for me it’s the most influential piece I read on object oriented programming.

Conclusion

Firstly, if you liked the books mentioned above chances are that you might enjoy my weekly C# Digest newsletter.

There are so many technical books on the market but if you would read just these 5 from cover to cover you’d gain an exceptional knowledge and have a solid background to become a great .NET developer.

And now over to you, dear reader — which software books make it to your top 5?