Reading not just to read, but to analyse, understand, reflect, and even challenge the writer’s narrative, is something worth doing. Moreover, read to learn and apply wisely. Every engineer has their way of learning; however, nothing can beat reading and brainstorming.
Software engineers are good readers and writers, as they read and write as part of their day-to-day work. That means we are habituated to reading. But the big question is, are we?
My personal opinion is to let’s break it free and choose as you need. I will list a few books that every software engineer should read at least once or more than once.
High School Mathematics
Grab your high school mathematics book and give it a read by reflation of the real world and the world of computer science. I am thinking about my example of thinking of books from my school days and section 5.1 (if I can still recall). I have learned function, domain and range those days. I have understood the power of that after having a course named Principles of Computer Programming. Therefore, any high school mathematics book will work in this case. My intent with this is just to recap the fundamentals.
Schaum’s outline of theory and problems of data structures. by Lipschutz, Seymour

I came across this particular book back in 2003 while I was a student of computer science. You can get any other similar book; however, I have listed this book as I liked the structure and exercise of this book a lot. I think this book is well organised and the content is well articulated for a learner. For modern students, you can check any other book or online material, but I will still recommend checking books like it.
Introduction to Algorithms by Clifford Stein

https://en.wikipedia.org/wiki/Introduction_to_Algorithms
The book I hate and I love, this book is advanced and written a bit academic way. I would rate this as an advanced stage book; however, I should not judge, rather take your pick.
A few other books I have read myself are :
- The Algorithm Design Manual by Steven S. Skiena
- Grokking Algorithms: An Illustrated Guide for Programmers and Other Curious People
The Mythical Man-Month: Essays on Software Engineering
Highly recommended and in my opinion, everyone should read this particular book in the field of engineering. I have read it a few times, it seems like I am going to read this book again shortly.
The work was first published in 1975 (ISBN 0-201-00650-2), reprinted with corrections in 1982, and republished in an anniversary edition with four extra chapters in 1995 (ISBN 0-201-83595-9), including a reprint of the essay “No Silver Bullet” with commentary by the author.
The Art of Computer Programming (TAOCP ) by Donald Knuth

https://en.wikipedia.org/wiki/The_Art_of_Computer_Programming
I find this book hard for me , however, i am listing this for you all to try. I have read it as needed. I wish I can complete this book at some point in life as my fun assignment.
Oh! it is not a single book rather collection of books. As of 2025 it consists of published volumes 1, 2, 3, 4A, and 4B, with more expected to be released in the future.
The Pragmatic Programmer by David Thomas & Andrew Hunt

Fortunately, a new edition of this book is also available: The Pragmatic Programmer: 20th Anniversary Edition, 2nd Edition: Your Journey to Mastery
I would say, just grab it and give it a deep dive.
Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin

The idea and philosophy of this book are relatable to the KISS (keep it simple and stupid) principle. A bit of understanding of the complexity of software development and transforming business problems to solutions, and impacting the positive growth of business is complex. Yet, we have to be pragmatic as programmers.
I have read this book at least three times, yet I think I should read and reflect on it more. I am taking responsibility and saying your time is valuable, and it will not be wasted by reading and learning from this book.
Concrete Mathematics A Foundation for Computer Science By Ronald L. Graham, Donald E. Knuth, Donald Knuth, Oren Patashnik

I can recall my first encounter with this book. I was practicing for competitive programming, and one of our mentors introduced it to our team. Since then, I believe this book has become one of the fundamental resources for us. I wonder why schools do not encourage us to read this book and engage in group or solo tasks based on its content.
Introduction to Automata Theory, Languages, and Computation by John Hopcroft

You may wonder why I have included this theoretical book in a discussion about practical books for engineering practitioners. However, I believe that without understanding theory, it is challenging to become a well-rounded engineer who can drive innovation and think critically to solve problems. This is my opinion, and I encourage anyone to share their perspective if they disagree, as I would love to learn from those differences.
Concluding remarks
I was considering which books to include and which ones to leave out. I’m not a fan of listing top N books; instead, I believe you should choose based on your specific needs and reflect on what you truly require. I have included a few books that have helped me as an engineer.