To avoid calculation mistakes explicitly write down more steps instead of combining steps in your head. Also avoid in-line simplification (where you cross things out and overwrite an equation in place). Instead write an entirely new line. This will help with the last piece of advice which is to get in the habit of performing sanity-checks on each line of the calculation as you go.

For proofs, practice is really the most important thing. I personally try to avoid completely new ideas when designing proof-based questions for exams and mostly stick to four types of questions. In order of increasing difficulty these are:

* Validate that some definition does or does not hold

* Prove something using one or more of the major results we covered

* Explain why something isn't true by finding a counterexample

* Prove something using the same techniques used in one of the major results we covered.

That last one is usually something where you're given an object that doesn't quite fit the criteria of a major result but where you can modify the proof of that main result to prove a similar statement about the given object.

I don't of course tell the students which questions are of which type. Every problem is usually just: "Prove or find a counterexample to the assertion that ...".

So, to prepare for one of my exams you'd want to: Understand and be able to apply all the definitions. Be able to apply any major results covered. Be very familiar with every example and counterexample covered. Be able to explain why every hypothesis in every major result is needed for that result to hold. And understand the techniques in the proofs of every major result.