No sure where to start ? You should start from the beginning ! I think this list of books probably will be exhaustive who want to start thinking like a programmer. Not all of them targeted to the absolute beginners of course. But we should bear in mind the initial level of knowledge differs from one person to another: bachelor degree in math and in comparison-bachelor degree in linguistics.
1) Inside The Machine: An Illustrated Introduction to Microprocessors and Computer Architecture-Author: Jon Stokes.
This top programming book will help you understand the basics of modern computing by learning the different parts of computer architecture and what goes on behind the scenes of programming. It starts with fundamental concepts and covers all the way up to advanced.
2) Structure and Interpretation of Computer Programs-Authors: Harold Abelson, Gerald Jay Sussman, Julie Sussman
It contains fairly dense content from prestigious academic authors, it means that you will need to dedicate some brainpower. If you do, you will gain deep and valuable knowledge of programming systems and procedures.
3) Design Patterns: Elements of Reusable Object-Oriented Software-Authors: Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, John Vlissides
This book will teach you how to create more flexible, elegant, and reusable programs. While the actual code written in the book might be outdated, it is still one of the best coding books on object-oriented programming, as the concepts and approaches remain highly relevant even in 2022.
4) Code: The Hidden Language of Computer Hardware and Software-Author: Charles Petzold
You might know how to code and still struggle to explain what exactly code is. That is what Petzold is demystifying in this programming book for beginners ro advanced. He uses familiar examples to pull you in and write a narrative that is both educational and pleasant to read.
5) Cracking the Coding Interview: 189 Programming Questions and Solutions-Author: Gayle LaakmannMcDowell
Although it s popularity known as the ultimate tech interview prepguide, Cracking the Coding interview is also an excellent code book for learning core computer science concepts and understanding how to break down problems into manageable chunks.
6) Code Complete: A Practical Handbook of Software Construction-Author: Steve McConnell
This coding book is a highly popular guide to programming and software thanks to its clear, pragmatic writing style. It covers coding, debugging, design, testing, and more.
7) Programming Pearls-Author: Jon Bentley
Similar to an algorithm and data structures textbook, this book offers ideas for solving coding problems, including how to choose the right algorithm, how to solve problems effectively and how to think like a software engineer. This is a bit of an advanced algorithms programming book, so it may not be the right choice for absolute beginners.
8) The Pragmatic Programmer: Your Journey to Mastery-Authors: Andrew Hunt, David Thomas
This programming book combines useful information with entertaining anecdotes and examples, divided into easy-to-follow self-contained sections. You will learn core processes that enable you to be a better programmer and produce flexible, efficient code. And you will get tips for honing your career skills in other ways, from work ethic to common pitfalls to avoid.
9) Code Simplicity: The Fundamentals of Software-Author: Max Kanat-Alexander
This programming book for beginners of coding-going through principles you can follow to make your code simple and efficient no matter what language you are using.
10) Algorithms to Live By: The computer Science of Human Decisions-Author: Jon Bentley
One of the best algorithms books for those also interested in psychology, this computer coding book offers a unique look at how computer algorithms can be applied to our everyday lives. Read this if you want to learn about the history and evolution of algorithms or want to understand what algorithmic thinking is all about.
I think for the first time it will be enough to get acquainted with this vast sphere. Of course everybody can put remarks and advances. Programming is like a journey once you start it is difficult to stop.