Must-Read Books for (Junior) Developers

Adrian Celczyński
3 min readJun 29, 2021

The early stage of the Junior Developer journey is full of new technologies, best practices, and experience in general. But how to get on the best path that's possible? I believe that these books will help you choose the best angle of your career.

Photo by Witold Solecki on TDSOFT

I have picked 3 books that I’m familiar with and I can say that I recommend them.

Software Craftsman (Sandro Mancuso)

This book will convince you of TDD. The author focuses strongly on the developer’s work culture based on his own experience, which he has gained over many years of practice.

In the book you will learn:

  • how the craft approach increases the quality of the software created and customer service
  • how the craft approach increases the quality of the software created and customer service
  • when and how to tell the client no and how to propose replacement solutions
  • why good developers write bad code and how to prevent it
  • how to be a pragmatist — not a dogmatist — in terms of applying practices and tools
  • how to hire developers-craftsmen, how to manage them
  • how to instill a true cult of learning in the team
  • how to make technical changes

source Helion

The Pragmatic Programmer (Andrew Hunt, David Thomas)

I have barely started this book and I feel like it’s a great continuation of the Software Craftsman I have read before.

I believe this book is helping to develop a worldview of mine just like Software Craftsman did, but this book is more technical and detailed with plain code examples.

This book has been refreshed this year (2021) with the 20th Anniversary Edition which sums up the knowledge of David and Andrew over the years.

Head First Design Patterns: A Brain-Friendly Guide (Eric Freeman, Elisabeth Robson)

HFDP is the format is quite unique. It will lead you to a different problem-solving approach and bring up an original way of thinking as a programmer.

Design patterns are ready-made descriptions of solutions to the most common problems encountered in software development. In order to apply them correctly, you need to understand the assumptions on which they were created and learn to implement them in the right way.

source Helion

For more content, please check out — the page on which we at are posting our notes on tech/non-tech-related readings that drive us forward 🚀.