In my whole life, I have known no wise people who didn’t read all the time – none, zero. Charlie Munger
Books allow you to delve deep into a topic, stop focusing on doing and think about your situation, your approach and effectiveness. Spending time on design before writing code creates better quality code, thinking about how you code, run a scrum team, deliver a project, work with people helps you do these things better.
Reading a book is conversing with an expert on that subject, you learn from their mistakes, success and experiences. You get that knowledge and apply your adventures and conclusions on top.
Read why developers should read books if you are still not sure. If you don’t like reading it’s because you haven’t found a good book but you have come to the right place. Those who read books, get wiser.
Coding
Coding is a fundamental skill software engineers should try to master. Improving your coding will have a significant impact on your career.
It shocks me the number of developers who don’t learn how to design, write, test and refactor code to a high standard. They are paid cash money to write code, so be an expert in it. Not being a great coder is like a chip shop that doesn’t make tasty chips, it makes no sense.
Let’s start with books to make your code shine brighter than a full moon
Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin)
I love this book, it’s short, concise and focuses on the fundamentals of coding. Every developer should read this book and earlier the better. Master the fundamentals and you have a solid foundation to build on
Code Complete (Developer Best Practices – Steve McConnell
This is a monster of a book at 960 pages and it goes deep into the details of coding. When you read a chapter on how to write a method, it helps you realise the skill that top programmers have.
The Pragmatic Programmer: From Journeyman to Master
Great advice for programmers with common sense, down-to-earth advice. Less technical than Code Complete but still a great book. Everyone software engineer who reads this will learn something, it improves your code and your approach.
The Art of Unit Testing: with Examples in .NET
Unit testing is an art, you need to write your code in a testable way but writing unit tests isn’t straightforward but it reduces the feedback loop, allowing the developer to test their code. Unit testing is something you should master and this book will help.
This helped me understand Design patterns, I still admire the simplicity of well design code and the patterns featured here are beautiful. Design patterns are great for seeing examples of well-designed code and giving you a common language to use with other software engineers.
Design patterns are common solutions to common problems, it’s worth the time to read up on them. Without unit tests changing code becomes risky because without unit tests you can’t be sure you have not broken any code.
Refactoring: Improving the Design of Existing Code
All software engineers will spend time on legacy projects and looking after other developers dodgy code. This book gives you a way to bring order to a legacy project and improve it.
Projects, Scrum and People
The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win
A story about a company who bring DevOps into their business, solving problems and adding drama with characters. It’s useful to view a project from a different perspective because most people see little in their own projects because they are so focused on delivering the project.
An interesting look at the insanity of IT Projects, teams, offices and all aspects of being a software developer. You may have had an inkling you must be mad to be a software developer, this book will help you understand why you feel that way. It’s funny and enlightening.
Scrum Mastery: From Good To Great Servant-Leadership
Scrum and agile is a tool, it’s great or terrible depending on who is using it and it won’t be going away soon. They will use it on many projects you work on, so spend time on understanding how it works and the theory behind the concepts.
Agile projects done well are effective and enjoyable to work on but few people understand the theory behind Scrum\Agile.
Read it, master it, it will help you deliver scrum/agile projects to a high level.
Radical Candor: How to Get What You Want by Saying What You Mean
The driving force behind any project is the people on it. If you lead anyone, then this book will help you be honest with them and work more effectively.
Never Split the Difference: Negotiating as if Your Life Depended on It
This book contains great practical advice for communicating with people and using emotional intelligence. The writer was an FBI hostage negotiator, so has experience dealing with pressure situations. This was my favourite book from 2018.
This book gives many examples of people who devoted their lives to mastering something, it’s inspirational and motivating.
Being a software engineer needs people to master it with constant improvement, study, reflection.
Other recommended reading lists
Time is not wasted if you are reading a book#HoskWisdom