In order to get the most out of of this book you will need to be familiar with Unix programming concepts such as working with the Bash shell, environment variables, and shell scripting, and understand basic commands in Unix. You should be familiar with the concept of version control and know what is meant by a commit, and you'll need to understand how to use Git in particular. You should know basic programming languages concepts because we will use languages such as Golang, Node.js, and Java, which will work as build languages that we use in or CI/CD pipelines and examples.
This book is OS-agnostic, but you will need access to a Unix environment and commands in order to use some of the concepts in this book. So, if you are using Windows, it may be useful to have Git Bash (https://git-scm.com/downloads) and/or the Ubuntu Subsystem installed if possible. You will need to have Git (https://git-scm.com/downloads), Docker (https://docs.docker.com/install/), Node.js (https://nodejs.org/en/download/), Golang (https://golang.org/dl/), and Java (https://java.com/en/download/) installed in your system. It would be very helpful to have a text editor such as Visual Studio Code (https://code.visualstudio.com/download) and a terminal console application.