“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 and 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 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. You are paid 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:
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.
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.
Great advice for programmers with common sense, down-to-earth advice. Less technical than Code Complete but still a great book. Every software engineer who reads this will learn something, it improves your code and your approach.
Unit testing is an art, you need to write your code in a testable way. 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 you can’t be sure you have not broken any 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
A story about a company that brings DevOps into its 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 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 projects to a high level.
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.
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
- recommended reading blog post
- The Ultimate List of Programming Books
- Recommended Reading for Developers
Time is not wasted if you are reading a book #HoskWisdom