In today's day and age we, aspiring developers, developers, and veteran developers consume a lot of information. Fast.
The volume of information available on the internet is something hard to put to scale. Blogs, tutorials, videos, boot camps, dedicated course platforms are abundant and easy to digest.
However today - it's hard to categorize good, relevant content, especially for newcomers.
That is why today I will mention a list of books. Remember books? Big, heavy paper things that contain a good amount of good, relevant knowledge about a specific topic.
Throughout my 10+ years career, some of these heavy paper things helped me grow. Some of them led to a breakthrough in how I wrote and thought about software and software development.
Here are my top 5 books for software developers. Join the conversation and let me know what you think about this list.
This is going to be the single book in the top 5 list that is about a very specific technology - and yes, it is about Python.
This book is important for several reasons, but this was indeed the first book about Python that I've read. The book is very good and introduces the language cleanly and concisely for the inexperienced reader.
When I purchased the book, Python 2.6 had been released for a few months and Python 2.7 was just around the corner. The book covered Python 2.2 (if I remember well) and it was a special gift from my mother 🥰.
While there are more advanced books about Python this book should be where your start.
The only downside about this book is that it's not up-to-date with the latest Python innovations, but a very good resource.
This is a bedside book. As you can imagine, I love talking about the efficiencies and abstractions of design patterns.
When I was first starting I felt at a disadvantage when compared to my peers - because I'm a geographer. This book allowed me to understand better how object-oriented paradigm work and understand how to built software for reuse (of course - I read a lot of other books, but this was 🤯 at the time.
It marked a very important milestone in my career.
PS: The authors of this book are: Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides. It is commonly known as the "The Gang of Four" book, because it was written by these four fine gentlemen.
Another classic book. Eric Evans explains what he considers to be Domain-Driven design. A fundamentally different way on how to understand the problem's domain, how to analyze its plans, the relationship between engineering and business stakeholders, and a new way of practicing software development - targeting the delivery of useful software first.
This book talks about communication, data models, domain code, design patterns, organization of domain concepts and many other subjects.
This is still relevant in the world of startups and distributed systems because introduces important concepts that will guide you in understanding your stakeholder's problem.
After a while - I had learned some of the fundamentals of software development that allowed me to navigate technically with my peers. I was looking up for a recommendation for a book similar to
Design Patterns and I've heard about Clean Code, from Robert C. Martin.
However, for some weird reason, I purchased a thinner book, from the same author that blew me away. While Clean Code is about code, Clean Coder is about people, behavior, and professionalism.
The book has a light tone and is easy to read, but contains valuable software development lessons.
Every now and then I still pick it up and read a few pages. If you are an aspiring developer, junior developer or just want to make sure you are doing you best professionally, this book worth it's weight in gold.
This was another book that caught me by surprise. When I first purchased I was considering it would be something deeply technical, but it is really about the details of the software development trade.
This book is about software as a craft. My edition has a woodworking hand plane on the cover.
Not everyone knows about hand planes - but I can tell you: hand planes are amazing tools and they are the epitome of woodworking as a craft. Mastering a hand plane is hard, demands practice and related skills (hello sharpening!).
The cover is the perfect depiction of software development - a craft that takes practice, skills, and hard work - and this book will help you guide you in the right direction.
Highly recommend this book for all levels of software developers. For newcomers, it will show some of the best practices - even if you are not sure how to implement them. For more experienced developers it can serve as a reference of best practices for you as a craftsman and your team.
🤯 What are your breakthrough books?
Let's join the discussion and mention good books that transformed your life as a developer. Technical and non-technical are valid!
I'm always looking for good reads, so let me know!