Books

Books that I certainly recommend for reading. I will try to arrange them in the order of recommended reading at least within each sub section like "Core Software Engineering"

Core software engineering

Code Complete: A Practical Handbook of Software Construction

Shop

If i could recommend to read only a single book in entire life, that would be this one. It is very all encompasing book covering a lot of aspects of software development. Some of them in more than enough capacity. Some of them is showing only briefly and redirecting to where to learn them further. With this book u will have much clear picture that there is still a lot to learn ahead. It has plenty of recommendations what to read next.

Despite it being written in 2004 year as second edition, it still remains relevant for 98%+ of its text. With reading its material you will learn reusable skills that will remain persistent through your full career. it will help you to write more cleaner, more readable and maintainable code in any programming language. It will help you to understand possible goals in development to aim for, and what you could be missing to code with more efficiency.

Prerequisits: I recommend it for reading after you already grasped basic syntax to program applications, "for loops", "classes", importing code from other files, learned DSA stuff like with book like grokking algorithms , and tried writing around a thousand code lines programms preferably.

Test Driven Development: By Example

Shop

This book teaches practice behind unit testing. On a specific example it walks you through how to have unit testing as part of your development cycle at every moment. It teaches you feeling how much gap between tests is allowed in your working code.

Unit Testing Principles, Practices, and Patterns

Shop

This book teaches theory behind unit testing. For which goals to aim for, how to escape pitifals. It will explain you importance of unit testing and what kind of testing exists. This book is important to weaponize your skills to an average commercial level development.

To understand this book fully in a full capacity, you would have to learn operating code architecture at a scale of application with drawing lines of isolation between different layers of your code architecture..

Head first Design Patterns

Shop

This book helped me training mind in a brain friendly way to operate basic code architecture structures. This book has far more sense if you wield languages like Golang, Java, C# or grasped gradual typing capabilities of your dynamic typed language like usage of Mypy/Pydantic in Python or Typescript for JS. Otherwise applying it would be more problematic

Clean Architecture: A Craftsman's Guide

Shop

This book helps to have a global look onto code design of a single application. It helped me in achieving a necessary view for designing libraries. I would recommend first keeping in mind learned architecture approach with making things rapidly auto testable locally first, that will help you to achieve quite balanced result.

When to read this book: I would recommend going through Head First Design Patterns first to achieve necessary flexibility of a mind to operate architecutre. Having learned static typing is necessary prerequisute in my opinion too. Otherwise u will experience a problem to arrange a custom layers of code in sane way and using materials of architecture books heavily depended on existence of such things like "interface" syntax of a language. Things are way more simple when they are validated for correct usage of interfaces, and function or classes constructor and method usages automatically across all your code.

Systems Analysis and Design

Shop

The book makes walk through steps of Software Development Lifecycle. From getting approved draft, gathering requirements for its functional and technical requirements, to working with user usage case scenarios, designing database, infrastructure and application development. You can save a ton of time, with refactoring the design of application before a single code line was written.


DevOps

Docker Deep Dive

Shop

Structured learning of docker. Important thing for any DevOps engineer, Backend developer or any other job role dealing with web applications and their related ecosystem of databases and other stuff. Docker is helping to document as a code your web application building and freeze entire everything needed for its running. Containers became standard for immutable deployments, and with learning docker you will make your app compatible with modern ecosystem and get ability for easier rollback to previous version.

When to read it: This is more job role specialized thing, usually will be most useful only if you are into backend, devops, full stack, data engineering or any other web development related role (You deploy final apps to Linux servers) and/or your company uses docker compose stuff actively in dev environment.

Terraform up and runnning

Shop

This book teaches you instrument to automate all actions of dealing with cloud providers, like AWS / GCP / Azure. Without terraform or pulumi it is not very recommended diving into them, for a reason of a high complexity to tune all things. Infrastructure as a code changes things and helps to utilize the power of such cloud providers in a comfortable way.

P.S. this book is AWS oriented, but its material will be useful for you for any cloud provider. Also recommending learning terraform first instead of kubernetes, as it is covering more necessary things first, from setting up servers, to configuring networks, iam permissions, security groups to managed databases and other gazillion of moden cloud services.

When to read it: Good to go after Docker learning at minimum. You could consider also giving a go to Ansible In order to learn more raw approach to configure stuff before diving to Terraform Opentofu or Pulumi, learning docker/containerzation throughly,

The Kubernetes Book

Shop

In case u need jump start in learning kubernetes this book is for you. From same author as Docker Deep Dive. a structured dive into k8s.

When to read it: if you are into Infrastructure as a code as I am, my advice regarding this book will be leaving for the last one Kubernetes is entire wormhole of new problems and ecosystem. Better learning things like Terraform Opentofu or Pulumi, learning docker/containerzation throughly,or Pulumi, learning docker/containerzation throughly, usage of distributed monitoring systems first (Like Loki, Grafana, Prometheus, Tempo for example).

The Phoenix Project

Shop

At a start of our journey we learn more hard skills than soft skills. But for further growth we should learn understanding what is person in our role needs to do in order to help developers and company in the most useful way. The Phoenix Book is a good one for getting a needed mindset

P.S. It has continuation The Unicorn Project

Site Reliability Engineering

Shop

The Phoenix book was fun, but we could be desiring more serious reading, having recipes for different real world challenges and which approach and professional behavior is expected from us to solve it. Google SRE books help with that.

P.S. The full set of related Google SRE books is linked here

Articles

which caught my eye. And i can be wishing often linking, quoting them to other people i talk with.