It depends on what you mean by beginner, but I would say for someone who has been futzing with a couple of js boot camps or building some php websites, it’s what takes you from hacking to software development. Completely new to programming, maybe, if someone has a background in maths or physics and has a sense of “rigor” in thinking.
But, of all the books I worked through, this is the one I remember just having tons of fun because the examples are so cool and the code so… clear. I think norvigs programming course in python (which I only skimmed) could be a great modern equivalent.
I have done my bachelors and masters in electrical and communication engineering. I know calculus, matrix algebra and prob stats on a level of engineering. Not in much depth.
There are philosophy of math books like Joel David Hampkins. But given the breath of your question you might be better served by just a general philosophy text. Like something covering an introduction to metaphysics or even better 'philosophical logic'.
A more rigorous approach would be to study mathematics as mathematics (and not through traditional philosophy). In that case you would have to go down the path of mathematical logic, proof theory and model theory. Then after that fall into a pure theoretical CS / metamathematical rabbit hole.
A good intro to formal logic is "forallx". The key to truth in logic being the concept of tautology.
There is also the cognitive linguistics approach of focusing on the genesis of these abstractions from underlying metaphors. There is a famous book by George Lakoff on this subject.
More generally my favorite wider contextualization of the subject of reason, meaning and formalism (though it might seem distant and antiquated) is C S Peirce and his triadic approach to meaning and philosophy.
I thought William Dunham's Journey through Genius: The Great Theorems of Mathematics did a great job of presenting the very real people and world behind several of results from history, from 400 BC (Hippocrates' Quadrature of the Lune) to recent-ish times (Cantor's transfinites).
There's discussions of feuds between mathematicians, how they used to keep results secret and literally duel over ideas (e.g. Cardano's chapter), the historical context and lives of the people who brought theorems into being (like Newton tasting his own chemicals as part of his alchemical research!), etc.
I hope more and more instructors create such high quality content and put it online for the world to collectively learn and create a better place out there.
I find many instructors in upper level courses do this. But for introductory courses, most materials are locked in. I don't understand why? Only MIT seems to do this consistently (they have huge amounts of money, it seems).
A set of lower level core courses like intro to programming, intro to low level programming, discrete math, algorithm design, etc. will totally change the game. More and more people would be interested in upper level courses then and we would get more researchers and practitioners in the field to march forward.