Top 5 books EVERY programmer MUST read! 📚

Top 5 books EVERY programmer MUST read!

We all want to become a better programmer, and there are a tonne of books that’ll help you along your journey. In this blog, I’m going to list my 5 favourite programming books that have had the biggest impact on my thought process, problem-solving and coding ability. All the books chosen are language agnostic, so irrespective of what language you code in, you will gain value out of these books.

I have also ordered the books based on their importance to me, and by importance I mean: how often I regularly pick the book back up to reread something.

Author: Robert C. Martin

This book is full of pragmatic advice for a programmer. From how to estimate, how to refactor, how to test, how to be a professional. Uncle Bob outlies his expectations for a professional programmer when it comes to time management, collaboration, management interactions and much more. The book details what you need to know and rules to follow to make the young profession of software development grow.

What you’ll learn:

  • You’ll learn what it means to behave as a true software craftsman
  • How to deal with conflicts, tight schedules
  • How to get into the flow of coding
  • How to handle unrelenting pressure and avoid burnout
  • How to manage time
  • how to create an environment where programmers and teams can thrive
  • When to say “no” – and how to say it
  • When to say “yes” – and how to say it

Author: John Sonmez

r. As the title says, this book is “complete”, with 798 pages filled to the brim with advice on how to succeed in your programming journey. Although I have read every page, you would do well to read the chapters that are most relevant to you in your current career phase.

What you’ll learn:

  • What technical skills you’ll need to become a successful software developer
  • Which programming languages to learn
  • How to land a job, how to negotiate, how to leave a job and how the recruiting industry works
  • Everything you’ll need to know about software development, from TDD, source control, maintaining old code, etc
  • How to advance your career, creating a reputation, generalist vs specialist, speaking conferences, keeping your skills up to date
  • And so much more

Author: Gayle Laakmann McDowell

This book is an anomaly in my list. All other books in the list I’d recommend to any engineer at any level, but this one is probably more suited to programmers trying to land their first gig or to programmers trying to land a job a big tech company with a rigorous technical interview.

What you’ll learn:

  • All about the programming interview process and what goes on behind the scenes
  • Big O notation, time complexity, space complexity, etc
  • How to prepare for technical questions and more importantly, how to solve them
  • How to handle offers and rejections and negotiations
  • A tonne of interview questions and how to solve them
  • Knowledge based questions too, so questions about specific languages

Authors: Eric Freeman, Bert Bates, Kathy Sierra, Elisabeth Robson

As a software engineer there are certain reoccurring software problems that have well-define solutions, for these problems we use design patterns. Design patterns are important to learn, even if you don’t fully know how to implement a certain design pattern it will do you well just to know its purpose.

This book was a close second with The Gang of Four design patterns books. I have chosen Head First Design Patterns purely for its accessibility, it’s a very easy and even fun read. Anyone can jump in and start writing their own design patterns in minutes.

*What you’ll learn*:

  • The Observer pattern
  • The Decorator pattern
  • The Factory pattern
  • The Singleton pattern
  • The Command pattern
  • The Adapter and Façade patterns
  • The Template Method pattern
  • The Iterator and Composite patterns
  • The State pattern
  • The Proxy pattern
  • Compound patterns
  • Application of patterns in the real world

Author: Robert C. Martin

Clean code is the most important book on this list, I’ve even dedicated an entire blog to it. This book gave me a whole new perspective, it has restructured the way I think about each line of code. It made me realise that there is an art to being a software engineer.

Whenever I’m programming I have Clean Code an arms-reach away as a reference. The book has tonnes of examples of transforming bad code to clean code and the step by step process on how to get there. You’ll actually begin to understand when you’re writing bad code. You’ll look at your old code and wince at its structure, the vertical spacing, the complexity, the out of sync abstractions, the useless comments, and the spaghetti nature.

What you’ll learn:

  • What it really means to write clean code and some principles to follow
  • How to choose meaningful variable/method/class names
  • How to write a beautiful function
  • When to comment and how to comment
  • How to format your code, position of methods, the newspaper metaphor
  • Objects and data structures and data abstraction
  • Appropriate error handling
  • How to write brilliant unit tests
  • How to perform successive refinement
  • And a whole list of code smells

Conclusion

I hope you’ve found this list of my favourite programming books
useful, they’ve certainly had the biggest impact on my career so far. Let me know if you’d recommend any books that aren’t listed here.

Check out my previous blog The Game Of Life – that was a really fun one.

I hope you've enjoyed this blog, if you do by some miracle enjoy my blabbering then head over to my blogging site at codeheir.com where I write weekly blogs about whatever in the world of programming has my attention!

16