Top 5 books EVERY programmer MUST read! 📚- Kamaldeen Sulaiman

Share This Post

We all want to become better programmers, and there is 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 from 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.

5 — The Clean Coder

Author: Robert C. Martin

This book is full of pragmatic advice for a programmer. From how to estimate, how to refactor, how to test, and 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

4 — The Complete Software Developer’s Career Guide

Author: John Sonmez

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

3 — Cracking the Coding Interview

Author: Gayle Laakmann McDowell

This book is an anomaly on my list. All other books on 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 at 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

2 — Head First Design Patterns

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

As a software engineer, there are certain reoccurring software problems that have well-defined 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

1 — Clean Code

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 of 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.

More To Explore

general tech

An Overview of Node.js Package Managers (npm and yarn)

Node.js is a powerful platform for building server-side applications, but one of the most important aspects of Node.js development is managing dependencies. Fortunately, Node.js has