Best Books for Software Engineers

26 Dec 2021
Best Books for Software Engineers

With new year round the corner, there is no better time to brush up some skills. In this article i’ll be sharing some books for fellow engineers to brush up on system design and development. There are also recommendations for cracking your next interviews. Feel free to share your recommendations, i’ll keep adding more to this list.

Develop a passion for learning.
If you do, you will never cease to grow.


Software Fundamentals

Before trying on the new popular framework, it’s important to master the computer science fundamentals. Here are some the books covering microservices, design patterns, managing distributed systems and how to build scalable and reliable applications.

What people don’t realize is that professionals are sensational because of the fundamentals.

There is a lot of misconceptions around microservices. This book covers fundamentals and helps in understanding how to structure your application that scales well. Sam explains concepts like bounded context with real world examples.

This has to be one of the most amazing technical reads for me. DDA is my goto recommendation for learning how to build distributed and data intensive applications. The book covers system reliability, scalability, storage, data representation, distrubuted data, database replication, partitioning and a lot more. Highly recommended if you’re into backend development.

Accelerate helps in visualizing the impact of good practices on performance of the organization. The book covers methods to create the right culture, approach, and speed to support rapid value creation to remain competitive. How organizations can improve with right architechture, culture and software practices.

You’ll definetely encounter old crappy codebase that hurts you after every release. Eventually you’ll want to refactor it. This books exactly explains the methodology and principles on when and how to refactor your applications. While you are at this, also read amazing blog by Martin Fowler.


Best Practices

What differentiates average software engineer from the best is the quality and efficiency of their code practices. It’s not just about the code but also about the software development process, planning the tasks, code reviews, automations and how extensible are the system that you’re building. These books will help you build habits that will help you throughout your career.

You are what you practice most.

You would have already realized in your career that how a good piece of code can enhance productivity and help in extending applications. Clean Code is a guide to writing better code. I’m pretty sure you’ll learn something new from this book. The book focuses on KISS, naming standards, rules for functions, comments and how to write good tests.

Effective engineer is a short but covers so much insights about the engineering stories from past. It will help you in answering this question: “How do the most effective engineers make their efforts, their teams, and their careers more successful?”

One of the most recommended books for a reason. You can maybe skip this if you’ve read clean code. The book covers the pragmatic practices for engineers. It provides set of principles that will help you grow in your engineering career and make you love your craft.

Highly recommended if you’ve recently moved into a new role. First impression leaves a impact for rest of your tenure. Learn how to master your first 90 days.


Interview Preparation

Looking for a new job, these are the useful and timeless books that will help you ace you interviews. I’ll be sharing a interview preparation guide with best resources soon. Meanwhile, revise with the popular CTCI book.

“To improve is to change; to be perfect is to change often.” — Winston Churchill

Well, you’ve probably read this once. If not, go read this before making your next career switch.

If you want to master on the fundamentals of algorithms and use data structures to solve problems, this book is what you need. The author goes deep into complexity, derivation of algorithms and lot of challenging problems at end of the chapter.

Go-to book for learning design patterns. Design pattern provides a general reusable solution for the common problems that occur in software design.

System design are the most fearful interview rounds. Interviewer can go deep into multiple topics ranging from scalability, load balancing, DNS, Reverse proxy, Databases, etc. Another brilliant resource is the educative course - Grokking the System Design Interview.


Product & Productivity

You can’t build good applications without understanding the needs of customers. These books will help you understand the business and help in building what’s useful. From my experience, if you don’t learn how to manage your work and time, you’ll eventually burnout. Learn how to improve your productivity and build focus. You’ll start seeing the results within a month.

Productivity is being able to do things that you were never able to do before.


If you’re looking for more recommendations apart from engineering and development, do check Learnshots.

I share regular updates and resources on Twitter. Let’s connect!

Keep exploring 🔎 Keep learning 🚀

Liked the content? Do support :)

Paypal - Mohit Khare
Buy me a coffee