There are many good resources available for Software Engineers. Resources like YouTube, Blogs, Online courses, Podcasts, etc made acquiring new skills very easily. When it comes to sharpening your basic concepts, books are still one of the best choices.
In the rapidly changing technology world, finding good books, which are not obsolete, is not easy. Thus, I made a list of 10 ever-green must-read books for a Software Engineer
Please note, there are many books, which may hit this top 10 list. I’m listing the books I feel are a must-read for a Software Developer.
Table of Contents
Categories of must read-books for software engineers
Let’s divide these books are divided into 5 categories:
- Starting the career/Finding new Job
- Covering the basics
- Understand common real-world problems and their solutions
- Cleaning the mess
- Working with old code – where the money lives.
Books selected in these categories are ever-green books, still recommended by senior developers to junior developers. In today’s fast-paced world, reading a single book is not easy, let alone ten, but if you manage to read even parts of a few of them, they will be a great help for your career.
Finding the job
The first and most important part of the career is finding a job. If you are looking for your first job or switching, the following book is going to be very useful.
Book 1: Cracking the Coding Interview
Let’s start assuming you are preparing for an interview and here is the first of 10 must-read books for Software Engineers.
Cracking the coding interview by Gayle Laakmann McDowell will help you understand details of the questions, break problems into small chunks, and to get better at learning concepts. In the book, the author provided 189 real-world interview questions and their solutions.
The book is available on Amazon India at ₹ 486 for the Indian edition.
If you are purchasing this book in India, make sure to purchase the Indian edition by clicking on the link provided below, the normal edition is priced at ₹ 880.
Buy from: Amazon @ ₹ 486
Covering the basics
Major Tech companies such as Google, Facebook, Microsoft, Amazon, Apple, etc. focus more on designing things in the most optimal way to improve user experience and improve tracking and management.
The two most basic topics there are Data Structure and Algorithms.
I’m not saying to apply in these tech giants but to understand the basics. Even industry leaders consider these basics most important.
Data Structure is about organising and managing data. When organized, we can efficiently perform operations on data. The algorithm deals with a step-by-step procedure to reach the desired output.
Two recommended books in this category are:
Book 2: Introduction to Algorithms
Algorithms are considered one of the most basic subjects in Software Engineering.
Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Revert, and Clifford Stein is considered one of the best and most recommended books on the subject.
It provides a comprehensive introduction to the modern study of computer algorithms. It covers a broad range of algorithms in-depth, yet makes their design and analysis accessible to all levels of readers. Each chapter is relatively self-contained and presents an algorithm, a design technique, an application area, or a related topic. The algorithms are described and designed in a manner to be readable by anyone who has done a little programming. The explanations have been kept elementary without sacrificing depth of coverage or mathematical rigour.
If you are purchasing this book in India, make sure you purchase “Eastern Economy Edition”, which is available on Amazon at ₹ 1044.
Buy from: Amazon @ ₹ 1044
Book 3: Advanced data structure
You must get some of the basics of Data Structures in the previous book, Introduction to Algorithms. However, Data Structure is a topic, big and important enough, to have a dedicated book.
This is where “Advanced data structure” by Peter Brass comes not picture and it is one of the most recommended books on the topic.
Classroom-tested lessons include brief reading selections followed by a constructed response and multiple-choice questions and thinking and writing activities. Reading comprehension boosters is flexible and can be used as a core or supplemental program, as test prep, or for intervention with individual students or groups.
This book also has a “Printed in India” copy, available at an economical price for Indian readers. You can buy it at Amazon at ₹ 745
Buy from: Amazon @ ₹745
Understand common real-world problems and their solutions
Once you know the basics, it is time to solve real-world problems. We will get new problems every day and no one can prepare to solve all the problems of the future. Still, there are many great software developers, who already solved a lot of the problems and shared their experience in the form of design patterns.
Design Patterns are the solution to some of the most common problems, we may get in the real world. They are the basic building blocks, which you may use to solve bigger problems in the real world of Software development.
Design Patterns are the solution to some of the most common problems, we may get in the real world. They are the basic building blocks, which you may use to solve bigger problems in the real world of Software development.
Book 4: Head first design patterns
Head First series is very popular among Software Developers, especially the young ones, because of their fun-filled approach to describing complex topics in easy languages.
Head first design patterns, written by Eric Freeman & Elisabeth Robson is no exception from the series and my number one recommendation is to go through design patterns for beginners.
I enjoyed reading that book early in my career, roughly 15 years back. Yes, it is an old book, but still, one of the best if you are starting with the design patterns.
Although it’s not cheap, I’d highly recommend it as one of the best investments in yourself, especially early in your career.
Buy from: Amazon at ₹1475
Book 5: Design Patterns: Elements of Reusable Object-Oriented Software
If you are a more serious or experienced developer, you may want to go with a Gang of four.
Gang of 4 also called GO4, are the authors of one of the most popular design patterns books; Design Patterns: Elements of Reusable Object-oriented Software. They are Eric Gamma, Richard Helm, Ralph Johnson, & John Vlissides.
This book was published more than 20 years back but is still one of the best books in the design pattern. It covers examples in C++. That’s the reason I recommend it for experienced developers, not beginners.
This is an original design patterns book and one of my Must Read recommendations for every experienced Software Engineer.
It divides patterns into 3 categories:
- Creational patterns: are ones that create objects, rather than having to instantiate objects directly. This gives the program more flexibility in deciding which objects need to be created for a given case.
- Structural patterns: These concern class and object composition. They use inheritance to compose interfaces and define ways to compose objects to obtain new functionality.
- Behavioural patterns: Most of these design patterns are specifically concerned with communication between objects.
This is very good but not a huge investment. You can get it at Amazon for just ₹495.
Buy from: Amazon at ₹495
Book 6: Patterns of Enterprise Application Architecture
Once you are done with basic design patterns, you may want to have a deep drive at Enterprise Design Patterns.
This is where Patterns of enterprise application architecture by Martin fowler fits in. (This book have contributions from 5 other authors.)
This book has some advanced patterns, used in multi-threaded object-oriented programming languages like Java, and DotNET.
Common failures in enterprise applications often occur because their developers do not understand the architectural lessons that experienced object developers have learned. Patterns of Enterprise Application Architecture is written in direct response to the stiff challenges that face enterprise application developers.
Buy from: Amazon at ₹904
Cleaning the mess
Okay, you have a job and understand the basics of programming like Data structure, algorithms, design patterns. That is most probably, you are already an experienced developer, working on some good products, having a positive impact on its users.
However, learning is something that never ends and here is the next set of recommendations, which will help you write your code better. By better, I mean more simple and manageable.
Book 7: Refactoring
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
– Martin Fowler
This is one of the most popular quotes in the world of programmers, taken from the book Refactoring.
In this book, Martin explained how to identify common mistakes. He calls them ‘smells’ and explain like bad food, bad code also smells. This book is all about finding those bad smells and fixing them (Refactoring)
This is one of my highly recommended books to all programmers. You can buy it from amazon for ₹ 850.
Buy from: Amazon at ₹850
Book 8: Clean code
If you are a beginner in the coding world, looking to write code the right way, I’d recommend Clean Code by Robert C Martin before Refactoring.
Clean Code is divided into three parts. The first describes the principles, patterns, and practices of writing clean code. The second part consists of several case studies of increasing complexity. Each case study is an exercise in cleaning up code of transforming a code base that has some problems into one that is sound and efficient. The third part is the payoff: a single chapter containing a list of heuristics and ‘smells’ gathered while creating the case studies. The result is a knowledge base that describes the way we think when we write, read, and clean code.
It is a bit on the higher side and costs ₹1478 in India. I may not recommend it based on its high price, it is a must-read if you find it in your office library or cheaper price for a second-hand book.
But from: Amazon at ₹1478
Book 9: Clean Architecture: A Craftsman’s Guide to Software Structure and Design
Another Gem from Robert C Martin but another highly-priced book in India. It is available on Amazon at ₹ 2375.
Maybe many of you will not read the further review of the book just after reading the price. I also didn’t read the book but it is one of the highly recommended books in the coding world and definitely on my Wishlist, in case I could afford or get it.
Since even I haven’t read the book, no further words of recommendation from my side. I’d just say to go with it, if you can, it will be great.
Buy from: Amazon at ₹2375 (+₹156 delivery)
You may wait for the Indian/South Asian edition published at an affordable price or take Google’s help to find a cheaper/free copy for you (At your risk, I don’t recommend it)
Working with old code – where the money lives
Most of us want to work on the latest and best technology. That is understandable, no one wants to be stuck in the past and just want to keep their future secure with experience of the latest and best technologies.
However, we must understand, most stable businesses can’t afford to live on cutting-edge technologies. For them, their business is more important than staying on the latest technology. Being technical, we might not like this but it is the business that drives the technology, not the other way.
But stable business also means stable money (or call it job security, if you wish). In the end, we are professional and working for money, aren’t we? Will you take a job where you work on the latest technology but not get any salary?
Learning new technology is not hard, especially in today world where we have a lot of free or cheap study material/ videos etc. Just start a side-hustle to satisfy your hunger for learning new technology, and maybe you can convert it into a business of your own.
Having said that, working on legacy code is one of the most important skills for a Software Engineer (Professional coder) and believe me, most of us are not very good at it. This is where our last recommended book will help you.
Book 10: Working Effectively with Legacy Code
This is an old book but the legacy code is also old, isn’t it?
You may be responsible for managing the code, that is poorly written by some inexperienced developers, years back. Still, it is an important code and crucial part of working and mission-critical applications.
I could understand the frustration, as I too experienced it for many years (and still have that).
Fortunately, there are ways around it. Working effectively with Legacy code by Michael Feathers try to solve that problem by making old code testable.
Well, that book was written back in 2004 and might not include all the tools we have in 2022 but it is still a good starting point. Read it, it will get you started and once you get the basics and solve some of the problems, you will get an idea of how to ask Google baba’s help for the rest 😉
Buy from: Amazon at ₹650
This is my list of 10 books, that I believe every software Engineer must-read. There are many more, which I wanted to include but I just have 10 spots and just 1-3 spots in the categories I divided.
If you strongly believe some other book must be made to the list, I’ll like to listen and possibly update the article. Just add a comment below with the following information.
- Which book must be added?
- (Optional) Which book must be removed (to make space for your recommendation)?
- Your reasons behind it (Just a few words and we will connect over comments, Twitter, or mail)