I feel that learning higher level topics in Mathematics doesn’t translate to helping one improve his/her problem-solving skill.
To better explain my point, I think it would be useful to explain my background of why I am asking this (feel free to skip it if you think it’s too long):
I am currently a second-year student majoring in mathematics. I noticed that (in my university at least), a second-year course is not necessarily more difficult than a first-year course. It is just that when one learns a new topic in mathematics, he/she is learning the “rules of the game” on how the system works in this new context. For example, when one learns multivariable calculus, one learns the new definitions such as what does it mean for a function to be continuous in two dimensions, what is the definition of curvature, etc., but one gets the hang of it, it is not more difficult than a single variable calculus.
Because of this, despite having pretty high grades in all my courses, I feel that I am not improving my problem-solving skill at all in university– it is just that I learned new tools along the way. But I think my ability to solve trickier problems has not improved since high school. I think that even an elementary student that is trained to do math Olympiads may be better in problem solving than me!
For example, I joined a mathematics competition where the topics only involve first-year lessons such as limits, single variable calculus, and basic number theory. But I really struggled to do some of the questions, because they require a higher problem-solving skill instead of a higher “background”. However, I believe that to be a good mathematician, one must cultivate this problem-solving skill instead of increasing the number of topics he/she understands. Applies to be how one can be a better coder or problem solver in general.
So my question is, how can one cultivate this problem solving skill in general (applies to algorithmic thinking such as in coding, mathematics, or solving tricky problems).To be more specific:
Starting from square one, what can I do step-by step to start cultivating this skill? Is there any path that one can follow for this?
Is repetition a key? I feel that when I practice some solving problems from several books, it is too hard for me to finish. And when I read the solutions, I was enlightened, but when I find another question, I can't do it again. Is this a regular process or am I doing it wrongly?
Is formal training/teacher required? I noticed that math Olympiad students are usually trained under good instructors. If not, what can be the alternative for this?
I really appreciate any thoughts and suggestions on this matter.