5 Books for Junior Software Developers

Kenny Wolf
Geek Talk
Published in
5 min readJun 25, 2024
Five Books for Software Developers Cover

It’s not just about the language and syntax.

A good software developer must be able to do much more. This goes beyond topics such as the programming language. If you want to stand out from the crowd, programming language or framework knowledge is not enough. A competent software developer should have a set of different knowledge and skills.

As a junior developer, I have therefore read several books and actively implemented the knowledge from them to improve myself.

In this article, I will show you five books that have helped me in my career as a software developer to integrate faster and more efficiently in a company. However, it is important that the books are not simply read from A to Z, but that the knowledge is actively implemented.

This is the only way to consolidate the skills into useful tools in everyday working life.

Linux Basics for Hackers

Why Linux?

Linux is a widely used operating system. It is mainly used for server structures, less for desktop applications. There is a very good chance that the server on which a system is running is based on Linux. As a software developer, it is not uncommon for you to have to do something on the server (debugging, viewing logs, restarting docker containers etc.).

For these reasons, it is worth taking a closer look at this operating system.

The book “Linux Basics for Hackers” by the author occuptytheweb is a great introduction for me. The author is a cyber security and digital forensics consultant and is as yet unknown or anonymous. But don’t let the title put you off, it’s also suitable for software developers.

The book is widely known and respected by the cyber security community.

The reason I recommend this particular book is that it gives an easy to understand introduction to the world of the Linux terminal and how Linux itself (or the kernel) is structured. There are many chapters that cover these basics. There are of course some chapters on hacking.

If these don’t interest you, you can simply skip them.

Personally, I read them at a later stage because I think it’s important to know how to set up and maintain your systems securely. The only thing I criticize about this book is that it is no longer up to date (2019). But in an interview with David Bombal, he mentioned that he will revise the book.

Grokking Algorithms

Algorithms and data structures play an important role in computer science.

This is also the reason why universities and colleges teach it and why it is asked in many coding job interviews. But it’s also a controversial topic that doesn’t suit everyone (e.g. the LeetCode grind). But in my opinion, I think it is essential that a developer at least understands the basics of algorithms and data structures.

The focus should be on the practical part, and not, for example, how to prove algorithms mathematically by induction…

A great book that I can recommend is Grokking Algorithms by Aditya Bhargava. He is a software developer at Etsy and maintains an interesting tech blog (https://www.adit.io/). The book comes with lots of good examples and code snippets. There is even a GitHub repo associated with the book, with all the code examples in it.

What I really like about the book, that the author explains the topic in a very simple language (without the mathy noise) so you can really grasp the topic.

Head First Design Patterns

As a software developer, you come across a lot of problems every day.

Or even just one problem that is a little more complex (usually consisting of many other small problems). Solving these is our daily bread. But what most people don’t realize is that many of these problems are already solved.

This is where design patterns come into play.

A design pattern is a proven and reusable solution template for a specific design problem. Let’s take a newsletter dispatch for a store as an example. Users can subscribe to a newsletter for certain product categories. When new products are released in their categories, they receive an email.

This concept is nothing new in itself.

But how do you convert it into code? One design pattern that could help you with this is the Observer pattern. I’m not going to explain it in detail here. You can read about it on the refactoring.guru website (which is my Go-To site on the job).

Or you can read up on this topic with the book “Head First Design Patterns” by Elisabeth and Eric Freeman. The book is a little older, but the basic principles are still valid today.

Clean Code

This book had to be on the list, a classic through and through.

But also very controversial among some developers. The book Clean Code shows you (as described in the title) how to make your code cleaner, more maintainable and more structured. This is particularly important if you are working on larger projects.

It’s not uncommon to have to look at or refactor code from the past.

You will be very grateful to yourself (and your colleagues) if you have designed your code cleanly. “Clean Code” by Robert C. Martin aka Uncle Bob helps you to discover code smells and write better code. I don’t recommend this book for fresh beginners, but for those who have been programming for about two years.

Because there are a lot of things to consider, according to Uncle Bob, and as mentioned above, opinions are divided on some topics.

The Phoenix Project

Every person involved in a failed IT project should be forced to read this book. — Tim O’Reilly

Finally, not a non-fiction book but a light novella with a lot of humor, (unfortunately) many truths of the problems in the IT world and well-placed wisdom.

“The Phoenix Project” by Gene Kim, Kevin Behr and George Spafford is a novella about IT, DevOps and the success of your company. It’s about Bob, who is already overworked and working on a sinking ship. However, Bob is quickly promoted and is now allowed to steer this sinking ship.

He has to manage several teams that not only don’t work with each other, but also with each other.

The book is a refreshing bedtime read and for me a reminder that things could be a lot worse at work (and that I’m actually lucky). In addition to the fun factor, you can learn a lot from the book about project and team management.

My key takeaway is that good things take time and sometimes you have to sacrifice something in the short term to gain in the longer term.

Summing Up

Software development is a rapidly evolving field with many new technologies and hypes popping up almost daily.

Nevertheless, it is important to master some of the basics that make a competent developer. In the era of Udemy and YouTube courses, these basics are easily overlooked and not covered enough. I hope you will find a book that will help you personally.

Maybe you have a book for me that you can recommend?

--

--

Kenny Wolf
Geek Talk

I write about tech, software development and hacking for non-techies and geeks 🤓 | Software Developer 👾 | Interested in pentesting 👹