I have a background in philosophy and I am currently enrolled in a Master's degree in logic.
I prepared as best as I could before I enrolled (read How to Prove It by Daniel Velleman and chapters on propositional logic by Derek Goldrei), but despite the lecturers and my best effort, I am still struggling to catch up, here are the biggest hurdles I encounter.
If anyone can offer me any advise, I will be very grateful.
Textbooks rarely spell out the details of proofs: Most textbooks we use are aiming at a mathematical audience who are very comfortable with filling in the 'trivial' details of proofs; but coming from a non-maths background, it often feels like reading an alien language.
For example, in inductive proofs, the inductive hypothesis is usually left out, so it is very confusing when all of a sudden it is invoked to prove something. I understand the concept of inductive proofs, but that is not to say I can fill in the gaps of a proof easily.
And this difficulty is not confined to inductive proofs only: a lot of the time I find proofs inferring a conclusion from something seemingly self-evident - except to me.
Exercises without solution: I am very reliant on doing exercises to understand a concept, yet most textbooks simply do not offer any solution to the exercise. I can still try them, but it seems pointless if I will not be able to check my work.
I can check my answers with the lecturer, but there are only so many I can check without taking too much time of the lecturer.
- Getting stuck at unimportant topic for too long: because of how much I struggle with reading proofs, I find myself stuck at proofs often for hours or even days/weeks. It maybe sensible to skip some of the non-essential proofs, but I can't really tell which ones are essential. (And of course even if I do I will still struggle to understand them)
Indeed when you have a maths education, there are certain tricks/methods that you see all the time, so you know how to use them, and when you see a proof you immediately know that this is how you should fill the gap; also with a maths background you have a way of thinking that is perhaps closer to the author's, and so you can see "what they mean" even when the details aren't fully written down : you know how to write them down.
It must be remembered, though, that even with a maths background, there are sometimes proofs that just aren't clear, or just this time you can't seem to be able to fill the gaps; and so you have to think about them : that's why even to mathematicians, reading a proof is not necessarily linear, or in linear time.
What I sometimes do when this happens (i.e. when I spend too much time thinking about a detail that I don't understand) is just say to myself : let's leave that part of the proof on the side for a moment, accept the intermediary result that it's trying to prove, and move on : I'll get back to it at the end of the proof.
This way you can read the proof, understand the basic structure, hopefully most of the arguments; and then with this picture in mind you can come back to the details you missed, and then try to understand them: sometimes (very often for me) the reason you don't understand a part of the proof is because you don't understand the point of this part - with the global structure you can understand this better, and even sometimes manage to replace this part with another proof you came up with.
And if, even then, you still don't understand, you can go to your lecturer or to some maths website (like this one) to ask for some help !
But your math skills can't improve if you only read solutions to exercises.
Some textbooks do have the solutions of their exercises, often at the end of the textbook, or at least in a different section; some others have online documents dedicated to these solutions.
I agree that you can't go see your lecturer about every exercise you solve; but most of the time if you have a correct solution, you know it is correct; though of course there can be some false positives. An important thing to remember is that if you're not fully confident, then you have to check it again; and if you're fully confident, well you can only hope to be right.
If you can't just leave an exercise you solved and have to have someone's opinion on your solution; perhaps a good thing to do is to (at least at the beginning) explicit every single step of your reasoning, not like the textbooks or teachers do. Maybe get to a different line when there's a different argument, and write the reason why the argument is valid, and then it'll be easier to check, and you will be more confident.
Again : if there is a single step in your argument that you can't quite justify, that's an issue; and expliciting every step can help make sure this does not happen.
At the beginning you'll be writing looong solutions (e.g. "so we proved that $A$; but we proved earlier that $A\implies B$, so now we can conclude that $B$ [modus ponens]") and as time moves forward you'll leave more and more details "to the reader", but as you'll be more experienced, you'll each time know exactly how to fill the gaps; and doing this yourself will probably help with point 1. too
People with a maths background don't get stuck less because they're smarter or god-knows-what, they get stuck less because they've been stuck so many times that they now know how to get around the thing that's keeping them stuck.
It's like this quote (by Niels Bohr, according to Google) : "An expert is a person who has made all the mistakes which can be made" [I've taken the liberty of changing "man" to "person"] : to know how not to get stuck on proofs, you have to get stuck on many of them, and there isn't really a better way. For some people it will be quicker, and getting stuck once will be enough, for some it will take longer; but you have to go through the process at some point.