"Classroom" math?
This is a well-known problem. I don't know if it's an option for you but sometimes math departments offer a course which is called something along the lines of "problem solving" (in my home university it was called "Workshop in Mathematics"). In such a course, you are given each week a list of problems to work out on without any context, present your solutions and learn from the solution of other students. This isn't like regular homework where you need to solve all the problems - you need to try and solve some of the problems that interest you and hopefully succeed in solving at least one problem. Some problems might be easy, some will become easy once you'll identify which techniques should be used to attack the problems (so the difficult thing will be to put the problem in the appropriate context) and some will be hard no matter what you try. To toughen you up, sometimes an open problem might "slip in".
The point is that none of the problems are "routine application" of the concepts learned two days ago (for one, because you don't learn any systematic theory which builds up as weeks pass by). There is no time pressure (it is definitely possible to spend the whole week thinking on one problem) nor too much pressure to solve everything (you discover quickly that it is almost impossible). If the problems are chosen well and the atmosphere in the class is good, this kind of class really develops the skills that are often neglected in regular courses. You get to "play with the problem", identify various possible approaches, try and fail a lot, look for unexpected connections, etc. And naturally, those kind of skills are much more relevant later (whether you go into research or apply your knowledge to real world problems).
It's why I practice solving problems on MSE. You practically never know how you should approach any particular problem, so you simply get good at figuring the first step out through practice, careful reading of the first problem, and reading other answers. – Simply Beautiful Art 7 hours ago
Indeed, you will find many quick-witted and possibly inspiring answers here on MSE. Try to answer questions yourself, and you will find that there are usually five scenarios:
You've seen the particular problem or something close, and you're going to use past knowledge to solve it. After that, I recommend watching the question or checking it again in a few hours to see how other people solved the same problem.
You haven't seen this particular problem, but you can still solve it. This is a good opportunity to test how well you can adapt from one problem to the next. Some simple problems that you haven't yet tackled before can really trip you up the first time around, and often when I post answers, it may actually have been my third or fourth attempt after failing multiple times. Such answers can take me hours to come up with, and are often weaved with different concepts, an ability you'll want to develop.
You are in unknown territory and honestly have no idea, but can still understand the problem and can likely understand the solution, once someone comes up with it. These are great questions to favorite (hit the star below the voting area) and check back later. Pretty good way to, if not build technique for hard problems you can't seem to solve (yet!), then it is a good way to get more comfortable with material you don't fully understand at the moment (I often have moments where I'm like "Oh! Now it all makes sense!" and I'm actually referring to old things I've seen that I didn't fully understand before)
These are the questions you avoid because you honestly can't understand anything, and it's just beyond your mathematical knowledge. No idea what to tell you about these questions. You can't learn everything I suppose :-/
-
This is when you are (gosh darn!) late to the problem, and all the answers you could think of in 5 minutes are already taken. For these scenarios, I find it a great challenge to try the following:
See if you can answer it anyways! Being able to come up with more and more ways to answer a single problem is always a good thing, and it'll help you spot ways to answer questions by relating them to more things.
See if you can produce... a better answer. This is always very difficult, especially if you enter a question that already has an accepted answer, but, remember! It's not impossible to come from behind! I find that by posting significantly different answers, it has a few affects, 1) it adds not only to your experience (its seriously not easy), but 2) to the community, and 3) it, in the long run, will allow you to answer more questions... questions you may have glossed over due to already having answers. More questions to answer means more practice, right?
Of course, this is simply a good way to learn and practice techniques and problem solving, but it does not replace learning from a book or class, which are much better ways to learn new material.