Here I will talk about five books that I think every software engineer must-read. These books aren’t limited to just software engineers. At least three of them are applicable to anybody if you’re a program manager, accountant business analyst, or in general, just want to be more pragmatic or practical in life. I think these books are really interesting books to read if you think you’d be interested in any of them I’ll link them to the title below and you can check them out.
Algorithms to Live By
So without any more delay let’s begin our 5 must-read books list. The first book that I recommend is called Algorithms to Live By. This is actually one of my favorite books because it has around 10 or 12 computer science concepts but you don’t need any knowledge of computer science or algorithms to understand that. It’s really interesting to kind of take a look into how things are optimized in the world of computer science. But they actually have a direct parallel to how we operate in day-to-day life.
For example one of the things that are pretty common in computer science is called sorting. We have various kinds of lists and items and you know orderings that we have to deal with. We sort them in different ways we reverse them. It’s like a concept that you study early on in computer science in this book they give you an example of how you can use sorting to sort your clothes in certain orders. So you can grab your clothes really effectively or the ones that you use more often are more accessible to you. So that kind of stuff I think anybody will enjoy this book. Especially if you’re into optimizing your methods and your processes in life. So yeah check it out if you find it interesting. It’s a pretty good read.
Pragmatic Thinking and Learning
So the second book that I recommend is called Pragmatic Thinking and Learning. This is a pretty interesting book because the way the author goes our book is generally through the concept of software development. But the actual core concept of this book is that software development the entire process actually happens in your head. So it’s really critical for us to know how our brain operates and how we learn things, how we focus or are de-focused. So he uses a lot of study and concepts from neuroscience and cognitive science and kind of combines that with the process of software development.
But in the end, it’s presented in a way that anybody would find this pretty useful and informative. There are slightly more technical concepts on this. But you could easily skip that and just focus on some of the case studies that the author has here about basically how the brain functions. You could probably come up with pretty interesting brain hacks and optimizations just by reading this book. Above that, if you’re a software developer it’s even more interesting to learn how the brain operates hand-in-hand with the process of software development or hardware development. So yeah give it a try I think it’s pretty cool.
The third book of our must-read books lists that I recommend is called the Productive Programmer. This is all about being more effective and efficient as a programmer. It doesn’t really teach you how to become a better problem solver but it definitely gives you a lot of information about things you can do to actually become productive at your craft. This is probably at the middle ground where non-technical folks could probably gain some use out of it. Programmers or technical folks will definitely get a lot of use out of it.
The book is divided into two main parts one the author calls mechanics and then the second part is called practice. So the mechanics side of things he sets up a lot of ideas and tools that you can use to build your environment to become a productive programmer. The second part is actually even more interesting for software engineers where he talks about some neat principles like YAGNI which means you ain’t going to need it. So like don’t do more than what you need. Then there are some principles of dry which means don’t repeat yourself. The way he talks about these principles is sort of removed from the actual coding. He does have some samples of code to drive home the point. Although I think it’s an easy read it’s not too technical. It’s very easy going to read so I think you’ll enjoy it.
Refactoring by Martin Caller
The fourth book that I recommend is called Refactoring By Martin Caller. The first edition of this book was actually one of my favorite books that I frequently referred to. This one is a lot more technical. So now we are talking about books that are purely for programmers and software engineers. So a lot of times in software engineering we work on a proof of concept or what we call the minimum viable product. When you’re building a minimum viable product is to validate the concept of an idea. So you aren’t really concerned about the best engineering practices or you know like writing the most optimized or precise code. You want to make a quick concept of the bare minimum that you can do.
When you get a lot of technical debt and you get a huge backlog of stuff that you have to fix and the program just becomes buggy badly designed not maintainable. But the concepts in this book that come in really handy is quickly refactoring the code and making it good for the pointers. The book has: how to detect code smells? how to refactor properly and effectively? how to make it extensible modular? So this is super useful and probably the book that I use most because refactoring is a huge part of being a software developer.
The last book in my must-read books list that I recommend is called Clean Code. This is probably the most hands-on in terms of hey here’s a sample situation how should you approach this. What’s the design in terms of agile software development talks about a lot of good practices and paradigms in software engineering. It does overlap a little bit with the refactoring book. As there’s a section in this book that talks specifically about refactoring.
I think this can be used as a handbook for the entire process of software development that will help you design a better product that is more maintainable and extensible in the long run. This book also has great examples of good code versus bad code. What good formatting looks like? what a code smells a little bit like? I said about refactoring test driven development and honestly everything you essentially need to get your product from inception release. So it’s a great tool to have in your arsenal.
So yeah these are my five must-read books recommendations. Some of them are very technical directly aimed at software engineers and developers. While the others are very easy reads that anybody could benefit from.