Teaching Linux to Software Developers With This Book
This time, I have something interesting for you. A book review 😉
A Linux-focused book by David Cohen (software engineer) and Christian Sturm (consultant on software and systems architecture).
It aims to be a resource for anyone who wants to learn Linux and understand the command-line, catering specifically to software developers.
Before I share my experience, I’d like to clarify my perspective on the review.
In the past, I have gone through multiple resources, including some certifications on LinkedIn Learning, to explore the path to a Linux System Administrator. I am neither a software developer nor a professional sysadmin. But I have been using Linux on my personal computer for years now.
So, I went through the book from a fresh perspective to evaluate how well it caters to its target audience, and the value of insights gained.
What Can You Expect From It?
“The Software Developer’s Guide to Linux” tackles well the fundamentals, and the important bits of the Linux filesystem, command-line, file manipulation, shell scripting, and some more.
To cater to software developers, the book also covers Git and Docker. It also covers topics like load balancing and SSH. There is also an entire chapter on logging which is crucial for the devs. Not many Linux books cover these tools that are usually in the workflow of a developer.
The book aims to be useful for developers starting with Linux.
It is more of a handbook focused on making you comfortable working with the Linux command-line, managing files/ services, organizing docker containers, and maintaining the security of a Linux server.
Is it Easy to Understand?
Yes, even if you are not a software developer, you can get some idea from it.
If you are not a software developer, you will encounter some jargon to break your read. Though, in my opinion, you can just look for their meanings quickly, and continue your read. The content is presented in such a way.
The language style of the book is relatable to most.
In one instance of the book, I noticed internet references like “Wikipedia tells us…“, which some might find informal and making easier to understand/relatable. Furthermore, they follow through with their style of explanation.
So, you get a different perspective through the variety of definitions.
With every section, the book presents what you will learn, and what you learned so far, using bullet points.
Hence, it gets easier for you to recap, and keeps you intrigued about what’s coming next.
Not just limited to the good use of bullet points. The entire structure of the content is like: the basics, the important bits (including examples), and the conclusion.
Additionally, if there is something significant related to the topic that you need to know, those have been covered as insightful notes throughout the book.
What You Should Not Expect From It?
The book is not a comprehensive study resource for you to learn all about Linux, specially the desktop side of Linux.
The books also doesn’t cover Linux kernel programming if you were eyeing it for Linux kernel development.
It is not just me saying, the book clarifies that it is meant as a good refresher or an introduction tackling the fundamentals, instead of being a 500+ page study guide.
Does it Miss Out On Anything?
It serves its purpose well.
Having said that, the book could have included more information to help you test drive a Linux distribution (and the command-line).
Yes, the book tells you how you should try a Linux distribution (via a virtual machine or WLS or bare metal).
However, considering the user is a first-time Linux user, the installation process, warnings to not try Arch Linux, and some other pointers could have been useful. But that’s not a deal breaker.
My Take on The Book 👨💻
The book is good at highlighting all the essentials.
It tries to tackle all kinds of FAQs one would have with every topic introductions.
While the tone and content is written for a developer as the target audience — a complete newbie with a pinch of tech/computer background, not necessarily a developer, can also understand most parts of it.
Just like the book describes itself, you get useful insights from it to get your hands on the Linux command-line (to step up your practical skills).
Sure, for the most effective experience, I recommend you try the commands, explore more about it, and then move on to the next section.
Overall, the book was a good refresher for me as someone who is interested in exploring the side of a Linux system administrator. And, definitely, this book (thanks to the review unit) can help me brush up my Linux command-line knowledge when I need it.
It should take you a couple of weeks at most to go through the content.
You can purchase it via Amazon (paperback/kindle) using the button below.