How to succeed in upper-level math This question will essentially be more of a how-to plea or general help request. 
I'm currently studying math and I'm at the point where I've transitioned into upper-division classes, most if not all of which are proof based. 
To be blunt, I currently feel discouraged at the prospect of being able to succeed in "upper-level" classes. Last quarter I was able to get decent grades in my classes, but nothing like the success I enjoyed in lower-level math. My discouragement stems from the fact that in the past if I studied I did well. Now I feel as if I'm studying and not doing well at all. 
Obviously this is a reflection of either my study methods or frequency with which I review the required material, but either way, I'm starting to become disillusioned with the good ol' saying that if you "practice, practice, practice" then you'll get better. 
My question to whoever cares to comment, and believe me I greatly and truly appreciate all advice, is how did you transition into proof based classes and succeed in them? Obviously the material is different for each course, but in general how did you approach absorbing the material? While everyone is different, what are review methods that you found helped you to best understand the material and also retain your understanding? 
I don't know if others have this same issue but I find that for proof based classes, since problems tend to all be different, I don't quite retain a sense of how to tackle problems even after completing an assignment whereas for classes such as calculus in which e.g. I had to learn integration, after so many integrals I had a general sense of how to solve them. Any advice on how to remedy this deficiency?
I apologize if this question is inappropriate in any way, but I'd love some perspective from those that have gone through a similar process.
 A: This is a tough question with no easy answer, so I'll just write down some tips which may be helpful for proof-oriented courses.


*

*Read the proofs in your textbook (and maybe other sources), to the point where you can understand why each proof proves what it claims to prove.  This means you understand why each sentence in the proof is correct, and how the paragraph(s) of the proof as a whole proves the claimed statement.  When doing this, don't yet think about "How could I possibly come up with this proof?" (although eventually you will need to address this question).  The first step to being able to write correct proofs of your own, is to be able to read other people's proofs and determine why they are correct (or incorrect!).  

*Study basic logic. Concepts like indirect proofs, the meaning of "if and only if", use of quantifiers, etc., should become second nature, so that you immediately recognize them when they are used in a proof.  This is independent of whatever the actual content of the class is (linear algebra, group theory,...) Some logic textbooks use non-mathematical examples on familiar subjects for illustration ("If it's raining, then the ground is wet, but not conversely"), which might be helpful for separating logic from the new mathematical concepts in a class.  Once you don't have to think about basic logic any more, you can concentrate more on the actual concepts in a class.

*You say that in a proof-oriented class, "the problems tend to be all different".  If this is the case, you need to be grouping the problems at a higher level. One possible approach is to group together proofs with a common goal.  For example, in a linear algebra class, there may be many problems that ask you to prove that something is a subspace.  The details of the "something" may look very different from one problem to the next, but there will be common steps in the proofs.  (Some textbooks may explicitly point out these common steps.)  These common steps will help you get started the next time you are asked to prove that something is a subspace.

*When you're doing integration in a calculus class, you can compare your answer against someone else's pretty easily to determine whether they are the same. (Maybe you need to do a little algebra or use some trig identities, to put your answer in the same form.)  This is not the case with proofs. It's possible for two different people to come up with quite different proofs, both of which are correct.  That's why point 1 above is important. You need to be able to read a proof you wrote and determine whether it's correct.  
I hope this is helpful in some way.
