I grew up in PR.China, and was quite disappointing with the pre-university education in mathematics. I am very happy to see one educator like you posting such a question here.
Combinatorics, graph theory and number theory, in my opinion, are proper fields you can choose materials from. By choosing some topics relating to "big theorems" such as Fermat's last theorem (of course in relatively naive ways) can surly attract young students.
I think this could be done topic by topic, instead of stucking in only one small field. I believe one major problem in mathematical education in China is that there are too many restrictions on different branches. There are too many questions such as "what field does this problem belongs to?"
A book to recommend is "proofs from the book" written by Martin Aigner and Günter M. Ziegler (with illustrations by Karl H. Hofmann). Although this is wriiten as a graduate level book. One can find materials suiatble for high school students. More importanly, it can greatly enhance the students' taste in modern mathematics.
I have read through the first few chapters of Spivak, however my personal preference is for Apostol's Calculus. It's also a very rigorous approach, and a very well respected book, however it starts more gently than Spivak's. With Spivak's book, the problems start out extremely hard, and get easier as the book goes on (mostly by getting used to his style, not objectively). With Apostol I was able to understand and answer all the questions in the first few chapters much more easily, and then I saw the difficulty increase a bit; however it increases progressively throughout the book. Many of the problems in the introduction of Apostol are exactly the same as those in Spivak, however the order and context that they are presented in leads you to the correct method for proving them, whereas Spivak's are more isolated.
There are many great discussions about calculus books on other forums, such as The Should I Become a Mathematician? Thread on Physics Forums.
I agree wholeheartedly with mathwonk's statement that, although the books are difficult, reading different approaches and going over them multiple times is really what gives you a deeper understanding of calculus. Mathwonk also mentions that most students find Apostol very dry and scholarly, where Spivak is more fun; however, I have not found this to be the case. I have worked through every problem in Apostol's Calculus through chapter 10 so far, and it has been a joy (most times). As an added bonus, Apostol's Calculus covers linear algebra as well, and the second volume covers multivariable calculus. Spivak's analogous book, "Calculus on Manifolds", is known as an extremely difficult text, and is commonly used as an introduction to differential geometry (indeed, his comprehensive volumes on differential geometry mention Calculus on Manifolds as a prerequisite).
The choice of book should also reflect your future interests. I am a computer programmer currently, and am looking to go into mathematics exclusively. It sounds like you are still melding the two. I would say that Apostol's book might serve you a little better in this respect as well, as it is slightly tilted towards analysis, whereas Spivak's is tilted towards differential geometry. For instance, Apostol introduces "little-o" notation, a cousin of "big-O" notation which is used extensively in computer science. That being said, Spivak has been described by some as a deep real-analysis text more than a calculus book, so you would still deeply cover all the fundamentals.
Another set of calculus books which I own and are held in high regard are Courant's. My brief skim of them, as well as other's comments, suggest that they are more focused on applications perhaps than some of the other books. Apostol's is still, in my opinion, very well peppered throughout with applications; many chapters contain a specific "applications of ..." section which links the theoretical concepts you just learned with the applied use of those concepts.
My only exposure to Courant's expository style comes from his excellent book What is Mathematics. This is a book I would strongly recommend reading regardless of what calculus book you choose. I cannot praise Courant's lucid writing highly enough, and look forward to working though his Calculus texts in the future.
I think that you would find Apostol's book sufficiently rigorous, as well as extremely intuitive. I also am a musician, and coupled with my computer programming experience it seems that perhaps we think alike. Whatever book you choose, recognize before you start it that you are running a marathon, not a sprint.
Best Answer
I will not explain calculus. There are many websites that do it very well, probably much better than I can, so I'll leave it to them. I will address prerequisites for calculus with an emphasis on procedure rather than deep understanding. At some point, you would do well to revisit these concepts in a slow, measured pace, being very careful and filling in all the details. However, your position seems more of an "in over my head" thing so I'll try to address it from that perspective.
There are only two big concepts in calculus, the derivitive (verb: to differentiate) and the integral (verb: to integrate). Both of these are special uses of the extremely broad concept of a limit, but many introductory calculus classes only touch on limits in a very superficial way. Certainly to do a first physics course with calculus you will not need a deep understanding of limits, only an appreciation for why they let us get the results we want.
If you do not have a good grasp on trigonometry, you can still do/understand calculus but it will seem rather artificial. You should know the sine and cosine functions and it will help to know the other four that usually accompany them. You should know the unit circle and the special values on it. Some basic identities will make your life easier.
For limits, you can get by with an intuitive understanding of functions, and of real numbers. It is more helpful to have a good intuition for rational numbers, for example you should know that there are infinitely many rationals in between any two real numbers. You must understand the notion of the domain of a function. Experience with rational functions is extremely valuable. To do calculations with limits, you should be very comfortable with simplifying rational expressions, including domain issues and extraneous solutions. Again, you can do without rational functions, but you are much better equipped to understand the significance of limits if you can manipulate them without much trouble.
For derivatives, you will need to be familiar with operations of functions: addition, subtraction, multiplication, division. A special emphasis on composition of functions: for you this will probably be the most important prerequisite for solving physics problems. You should be familiar with but do not need to be extremely comfortable with implicitly defined curves: for example, the circle is not given in $y=f(x)$ form, but it is still well-defined. You should understand the domain issues that can arise when converting implicitly defined curves into function form.
For integrals, there are a lot of skills you could need, but I will try and keep it to a bare minimum. I would not try to understand the real definition of an integral (your resources may call it a Riemann integral), but it is absolutely essential that you understand the intuition behind it, and its link to limits.
Of course you must be familiar with finding area of basic shapes. You must be extremely comfortable with reading $\Sigma$ notation; if not in reading it directly, then at least to translating it into $+$ notation (you do not need to be able to write $\Sigma$ notation well). However, the most useful skills for cracking integrals are pattern-recognition and persistence; they can sometimes require quite a bit of creativity to solve.
There is another (shorter) list which I think is equally important for your situation: things which you are not expected to know, but are expected to pick up during a calculus class. These include deeply understanding inverse functions, familiarity with theorems of the form "If … then there exists …", high comfort with implicit curves, high comfort with recognizing compositions of functions [you will need to pick this one up], the significance of variables as distinct from numbers, skill at visualizing 3D space, distinction between functions and their values at points.
At some point while learning derivatives, you will come across the notion of related rates. Please learn this very carefully. Many students struggle a lot with this section — including me — but it is a very important use of calculus for physics. Perhaps it will not come up directly in your class, but if you know it well you will see it hiding just behind the things you discuss.