While crawling your way into the programming world, keep in mind it’s not only the working hours that will help you flourish. Increasing your capabilities requires shaping a growth mindset focused on continuous learning *ahem, which is also our tagline*. And, even though our topic is programming, this applies to every industry or working field. So, whether you’re reading books, taking courses, testing new methods, it’s important to do something else besides your daily tasks.
For now, you can check out this list with 8 books we encourage you to read if you’re making the first steps as a developer. Consider them your industry cheat codes. You’ll see that while they cover technical aspects, they also focus on sharing practical guidelines on how to grow as a developer from a soft skills perspective as well. Let’s go!
1. Clean Code: A Handbook of Agile Software Craftsmanship, by Robert C. Martin (Uncle Bob)
Once you can easily use code to solve any kind of problems, take a look at this book. According to Uncle Bob, writing code that works is the easy part of being a developer. After your code works, you have to make sure it’s easily understandable by the others. And, besides being easily understandable, it also has to be easy to work with for future changes and additions.
No matter how good your code is, there comes a point when someone has to go through it to make adjustments, add a new feature, fix a rare bug, or just read it out of curiosity. Similarly, you will go through these processes as well. Wouldn’t you want the code you’re reading to be clean and easy-to-follow?
2. The Clean Coder: A Code of Conduct for Professional Programmers, by Robert C. Martin (Uncle Bob)
The previous book was about differentiating bad from good code. Now, it’s time to learn the art of “true software craftsmanship”. From how to get into the flow of coding, to how to handle tight schedules, get past writer’s block, avoid burnout, or nail your own time management, this book helps you grow as a professional.
In this one, Martin also talks about the art of saying “No” (how and when to say it). And, you’ll find guidelines on how to develop environments where programmers can thrive.
3. The Pragmatic Programmer, by Andrew Hunt & David Thomas
According to us and its reviews, this one is a must-always-have-on-my-desk kind of book. As developers, both authors spent years observing how they do their work. Then, they studied how to do it better. And, after that, they shaped their findings into essential programmer philosophies. For example, programmers should have a “do it once, or automate” philosophy.
The book is filled with small pieces of advice that are worth considering before writing another line of code.
4. Growing Object-Oriented Software, Guided by Tests, by Steve Freeman, Nat Pryce
Test-Driven Development, known as TDD, is a technique for writing better code faster. It revolves around a simple idea: write your tests before you write your code. Even though the idea sounds simple, to nail it you need to practice writing tests before code * spoiler alert, it’s definitely not a piece of cake. As Michael Feathers, Chief Architect at Globant, says, “If you want to be an expert in the state of the art in TDD, you need to understand the ideas in this book.”.
Steve Freeman and Nat Pryce are the TDD pioneers that show you how to let TDD guide your development. Besides this, they share the ways of creating software that is coherent, trustworthy, and maintainable.
5. The Art of Unit Testing: with examples in C#, by Roy Osherove
To quote the book’s description: “You know you should be unit testing, so why aren’t you doing it?“. This read is for the ones who want a guide on unit testing, that takes them on a step by step process throughout the subject. From writing the first simple tests to developing robust test sets that are maintainable, readable, and trustworthy, Osherove has you covered.
Besides learning how to create dependable unit tests, you’ll also take a deep dive into more complicated subjects such as fakes, stubs, mock objects, and isolation (mocking) frameworks. You’ll see how to create simple dependency injection techniques. And, you’ll also find a chapter on refactoring legacy code.
6. Test-Driven Development: By Example, by Kent Beck
The author’s purpose is to increase a programmer’s work quality. TDD removes hesitant attitudes, improves communication throughout the team, and encourages everybody to seek criticism.
At its core, TDD promotes the practice of continuous testing and refactoring. Beck wants to help developers boost their confidence when it comes to starting out new projects, new features, new changes. As he mentioned from his notes, devs who implement TDD “are better equipped to tackle the difficult challenges that face them”.
7. Domain-Driven Design: Tackling Complexity in the Heart of Software, by Eric Evans
This book doesn’t focus on specific technologies, but on presenting a systematic approach to domain-driven design. Through putting together best practices, experience-based techniques, and fundamental principles that facilitate the development of software projects facing complex domains, Evans presents the steps towards making your software’s design match your mental model of the problem domain you’re addressing.
8. The Software Craftsman: Professionalism, Pragmatism, Pride, by Sandro Mancuso
Even though the industry keeps on growing and getting better and better, it’s still a complicated task for developers to make the perfect code that doesn’t fail. While there can be many reasons that explain a project’s failure, Mancuso tackles the importance of developing your soft skills. He encourages you to “love what you do and do it with excellence”.
In his book, you will learn everything about craftsmanship: why it’s crucial to make agile processes work, how it helps you build software right, and how it helps clients in ways that go beyond code. And much more than that – from how and when to say “No”, to how to be more pragmatic when it comes to your practices and tools, how to lead software craftsmen and attract them to your team, or overcome deep patterns of skepticism.
As a Junior Developer, it’s worth investing a little bit more of your time in reading. School prepares you from a technical perspective. But, to boost your growth in the industry, focus on learning the best practices and acquiring the soft skills and philosophies. And yes, some of the praised books can’t be called “new”. But the philosophies and best practices haven’t changed in programming for the past several years.
Are your favorite books on our top? Share your favorite reads with us!