How can I improve my problem solving/critical thinking skills and learn higher math? I'm a rising sophomore in high school. So far, I've taken Algebra One, Two, and Geometry in school. I want to learn higher math such as precalculus/trigonometry, calculus, linear algebra, and more, so I can go into topics such as cryptography, advanced computer science, and possibly take the AMC and other olympiad tests (I'm not too interested in that).

The only problem, though, is that my abilities in problem solving and other stuff in math aren't that good. I do pretty well in my classes (high As) but that doesn't mean anything. The U.S. system doesn't seem too good in actually teaching math.

For example, I can do whatever is on my homework or tests. But, if I'm given a more difficult problem than usual concerning a topic I learned (say logarithms or something), I can't solve it.

I feel like this is going to be a hindrance to me learning higher math, doing well in more difficult subjects like calculus and linear algebra, doing well on olympiad tests, and going into math-heavy fields like computer science and cryptography.

So, how can I change all of this and improve my skills? Are there any books that teach problem-solving, mathematical thinking, and higher math (or something like precalculus)? Again, I want to better these skills so I can do well not only in math, but other fields.

Any help is really appreciated.
I'm going to take a different approach. Yes, you should buy the Polya books, I also recommend looking at learning how to learn on Edx for an interesting take on learning techniques. But do something else as well: watch the Khan academy videos on trig, then the first couple of MIT OCW calc videos. Then take Robert Ghrists Calculus course on Coursera and take the A.P. Calculus exam (I actually did this in one year, and  it wasn't very hard-not because I'm so smart, I know from experience that I am at best mediocre in a real math class. It's just A.P. Calculus doesn't take a ton of real math skill). Then, for the final step, see if you can take classes at a local Univ. in real math. Their is no way to learn math like learning from actual mathematicians, this will get you college credit, and it will look good applying to college.
Agreed on the US school system... the best way to fix it is to forget everything they're trying to teach you! Okay maybe don't forget everything, but in my experience US math classes often try to teach you how to solve problems the wrong way, which is why many students end up hating math. Math isn't about following a series of steps towards a defined problem, computers do that. It's about creatively finding those steps.

My best advice is to do your best to forget about memorizing methods, and focus on understanding why those methods work. I'll always remember my Calculus 1 final exam where I derived the equation for arc length in the margins because I forgot it. My professor thought I wanted extra credit.

It's all well and good to be able to spit out that the area of a triangle is (1/2)bh, but it is much, much more helpful to know that a triangle is just half of a rectangle.