
ÍNDICE: Part I. Mathematical Statements and Proofs: 1. The language of mathematics; 2. Implications; 3. Proofs; 4. Proof by contradiction; 5. The induction principle; Part II. Sets and Functions: 6. The language of set theory; 7. Quantifiers; 8. Functions; 9. Injections, surjections and bijections; Part III. Numbers and Counting: 10. Counting; 11. Properties of finite sets; 12. Counting functions and subsets; 13. Number systems; 14. Counting infinite sets; Part IV. Arithmetic: 15. The division theorem; 16. The Euclidean algorithm; 17. Consequences of the Euclidean algorithm; 18. Linear diophantine equations; Part V. Modular Arithmetic: 19. Congruences of integers; 20. Linear congruences; 21. Congruence classes and the arithmetic of remainders; 22. Partitions and equivalence relations; Part VI. Prime Numbers: 23. The sequence of prime numbers; 24. Congruence modulo a prime; Solutions to exercises.
Sadly, this is not an easy thing to learn and requires a lot of work and most importantly discipline. You mustn't let yourself be at all complacent. It's very easy when doing exercises by yourself to believe that you've "got the idea" and you can "see how it works", but the key is to actually write _everything_ down, so that there is no room for handwaving at all. This is not easy to force yourself to do, but it is necessary.
the most complicated proofs i ever dabbled in were things like proofs of convergence for algorithms, but i encountered various types of proofs in several intro courses: computability and theory of computation, discrete math, introduction to higher math and then some upper div cs courses in ai/ml.
what you say here rings absolutely true to me. as someone coming in with a long time background in coding and computers, i always found myself wanting to apply the same unambiguousness and precision that one uses to express computations in a programming language in mathematical proofs. this was a huge stumbling block for me! proofs are written in shorthand (!) by humans for other humans who have the same base knowledge, obvious things are omitted. once you have that knowledge it makes sense, but before that it seems like giant leaps are being taken without a rigorous line of reasoning between them.
to answer op's question: "an introduction to mathematical reasoning" by peter eccles was helpful for me. it's basically an expanded version of what you'll find at the start of many intro cs/math courses. another option, if sets, number theory and such are confusing to you is the computability angle (cs theory, computation). personally i found this material a lot easier to reason about which then imputed confidence, which is really the magic ingredient for good proofs.
Another intro book I thought of was Peter Eccle's introduction to mathematical reasoning. Might be worth looking at.
If you want a nice leisurely introduction to groups Nathan Carter's Visual group theory is nice.
I got a lot of use out of the princeton encyclopedias of math. Dont expect for them to really teach you anything, but the articles are nice for seeing whats out there.
Definitely try to learn basic analysis and algebra. I dont think any book I know is amazing, but basically any will do the job.
Importantly, dont be afraid to try to learn something out of your depth. In fact I think its important to try! If something really grabs you, try to read more and backfill what you don't know.
Concepts of Modern Mathematics by Stewart
https://www.amazon.com/Concepts-Modern-Mathematics-Dover-Boo...
Dover Version with Google Preview Button
http://store.doverpublications.com/0486284247.html
Introduction to Mathematical Reasoning: Numbers, Sets, and Functions
https://www.amazon.com/Introduction-Mathematical-Reasoning-N...
How to Prove It by Velleman
https://www.amazon.com/How-Prove-Structured-Approach-2nd/dp/...
"Mathematics for the Nonmathematician" https://www.amazon.com/Mathematics-Nonmathematician-Morris-K...
or
"Mathematics for the Million" https://www.amazon.com/Mathematics-Million-Master-Magic-Numb...
Of the two I prefered Kline's book but they are both good, albeit a bit heavy on geometery as that was a big focus of early math research.
Another great starting point is "Book of Proofs" and "Introduction to Mathematical Reasoning" to give you a deeper sense of how to approach the subject.
https://www.amazon.com/Book-Proof-Richard-Hammack/dp/0989472...
https://www.amazon.com/Introduction-Mathematical-Reasoning-N...
From there I went down this path (the order of which is up to you, each has tons of good source material):
-> Proofs/Logic
-> Algebra
-> Linear Algebra
-> Calculus
-> Abstract Algebra
-> Set Theory
-> Group Theory
-> Category Theory
-> Statistics/Probability
-> Discrete Mathematics
I never did well with learning math in a classroom but I've grown to love math through this process. There are lots of applications in programming as well. It makes approaching the deeper parts of Haskell/FP, data science, and machine learning much more accessible. I particularly liked the higher level Abstract Algebra stuff over the more grinding equations of calculus/linear algebra as it was more similar to programming.