I find it very useful to have an environment/toolchain that allows for quick validation of assumptions. Just something where I can quickly drop some code to see if it does what I think it does. If I get more comfortable, I start to write tests. For some stuff it helps me to put the hight level concept on paper in a flowchart or diagram.
Run some code formatter over the source if you get angry about indentation or other stuff that works you up.
Don't underestimate the human behind the old code. It might look wild to you, but the other coder had probably something in mind. :)
EDIT: about the fighting: Make peace with the code. You can't time travel away the problems. For me, I need to constantly adjust my mental attitude towards unfamiliar code. Sometimes that even helps a bit.