A while back I read Mark Heath from NAudio (a .NET audio library) didn’t reach his usual target of reading 52 books in 2015.
With me barely reading a or two book a year, I thought that was crazy and at the same time thought I should step my game up. So when Good Reads suggested to take their reading challenge, I targeted 12 books for 2016 as an ambitious goal for me.
And here we are, 8 months later and well passed my goal. A lot of them are technical books which are well known, but I felt like recommending the once I really liked anyway.
Clean Code + Clean Coder
For me Code Complete was the book that teached me coding discipline, so I always felt like I didn’t need to read Clean Code since it covers much of the same topics. Especially after watching some of the videos, I considered it kind of “read”.
What’s unique about these books, is that they give you a conscious as a software developer, encouraging you to do the right thing, from how you code to how you act.
Release It! gives you a front row seat at production systems experiencing problems in prime time. The author was so kind to share his hard learned lessons, so you can stand on his shoulders. After reading the book it feels like you also gained all the author’s many years of experience in an instant, like Neo in The Matrix linked up with the computer and learned kung-fu.
Sure, there is a lot of hype around microservices and you should be careful not to confuse problems of global major league systems as your own (unless you really are at that scale). Building Microservices however carefully frames microservices in the context of modern systems and gives clear pointers, leaving you with another item in your toolbox to use when appropriate.
Working Effectively With Legacy Code
I always preferred mature systems over greenfield projects, I understand why people love legacy code 🙂
So I very much enjoyed Working Effectively With Legacy Code. What I took most away from this book, more than the techniques to solve problems, is the reminder not to accept the status quo in legacy systems that have issues.