
This book is primarily intended for an abstract algebra course whose main purpose is to enable students to do computations and write proofs. The text stresses the importance of obtaining a solid introduction to the traditional topics of abstract algebra, while at the same time presenting it as a contemporary and very much an active subject which is currently being used by working physicists, chemists, and computer scientists.
In general, I think self-studying proof-based math can certainly be done if someone's motivated enough, but it's pretty hard and takes a lot of work, especially if you're still getting used to the skill of reading and writing proofs. It's very valuable to be able to have a person available to evaluate the proofs you're writing, and I've definitely seen a few people who came to me thinking they'd mastered proof-writing on their own and were kind of mistaken about that. (I've definitely also seen people who really did learn this skill pretty well without help! It varies a lot.)
- Warner, Pure Mathematcis for Beginners
- Devlin, Introduction to Mathematical Thinking
- Stewart, Concepts of Modern Mathematics
- Herrmann, Sally, Number, Shape, and Symmetry
- Baylis, What is Mathematical Analysis?
- Feil, Krone, Essential Discrete Math for Computer Science
- Rotman, A First Course in Abstract Algebra with Applications
- Banjamin, Chartrand, Zhang, The Fascinating World of Graph Theory
- Zou, Mult-Variable Calculus: A First Step
- Hubbard, The World According to Wavelets
- Sayama, Introduction to the Modeling and Analysis of Complex Systems
- Darst, Introduction to Linear Programming: Applications and Extensions
- Sourin, Making Images with Mathematics
- Gallian, Contemporary Abstract Algebra
And many others. Of course, all such lists are completely arbitrary. Once I get familiar with a certain topic, elaborate explanations seem redundant and I feel like shouting, "Get to the point already!" - whereas the same explanations can be extremely helpful for a beginner.
That is an amazing book. I will also recommend "A walk through combinatorics" by Miklos Bona for simple explanations and well made exercises with solutions present in the book itself.
2) "The Book of Numbers", by John H. Conway and Richard Guy is a beautiful book which discusses about figurative numbers amoung several other beautiful topics.
3) "Stories About Maxima and Minima", V. M. Tikhomirov has some beautiful anecdotes and interesting applications of calculus.
4) "Contemporary Abstract Algebra", by Joseph Gallian is an algebra textbook that goes beyond just teaching material. It has quotations, biographies, puzzles and interesting applications of algebra.
1/ Geometry and the Imagination. Yes, it's geometry. Yes, it's written in a somewhat older style. No, it doesn't do a lot of hand-holding. But if you can spend the time to really understand the dazzling intellectual fireworks going on there it will reward you with a very strong intuitive understanding of a lot of practical mathematics. The key goal of this book was to teach insight and it totally hits the mark.
2/ Contemporary Abstract Algebra by Gallian. This helped me learn more of the language of modern mathematics, so I could be more comfortable approaching recent developments in my field. It is an approachable, not-excessively-rigorous text and again, emphasizes intuition over deep rigor. Even if you don't really need abstract algebra, I'd recommend this book.
3/ Proofs From The Book. This is a brief survey of a selection of especially elegant and beautiful proofs. This is partly valuable for the immediate facts you'll learn-- I have surprised coworkers with a solution to a seemingly difficult problem that closely mirrors something in here more than once-- but is mostly about understanding mathematical standards of beauty and why proofs might be structured the way they are.
4/ TEA's problem solvers for whatever you actually need (calculus, etc). These books are just piles of worked out problems. Personally I found it useful to study several of the hard problems, understand the mechanics of solving them, and then go back to the easy ones and make sure I could work all the way through them without error. In my opinion, combining this practical and detail-oriented legwork with the above theoretical material helps avoid fooling yourself into thinking you can solve problems you really can't.
I'll caution that in math there is no substitute for hard work. Where in programming being lazy is often a virtue, learning math was something that I really had to grind through even when I was enjoying it. It's just a guess, but I suspect the same might be true for you; best to expect it.