I learned from the pages at cubefreak.net. The general concept is simple. First learn how to swap or flip or twist a minimal number of pieces without affecting other pieces. If you can keep doing this, you have total control over how you are changing pieces. For example, with 3OP, you can cycle 3 edges with M U2 M' U2. Another example is the H perm that affects only 4 edges. Another example is the A perm that affects just 3 corners. If pieces are not in your favorite positions, perform a setup before your operation then undo the setup afterward.
Classic Pochmann and M2 are elegant, but it takes 2 iterations for the T-perm or M2 to restore extraneous pieces back. You need to track whether you have done an odd or even number of iterations.
My choice was the 3OP method. I first learned how to distinguish which edges are or are not flipped. Then I learned a simple sequence to flip 2 edges; using that, and by doing setup moves (and undoing them after) I knew I could handle any cube with flipped edges. Next I learned how to twist corners, and how I could do setup/undo to twist any corners I wanted. Next I learned how long edge cycles could be by done by 3-cycling, with the buffer holding the piece for the next part of the cycle. Lastly, I learned that something like a T-perm or J-perm might be required to swap 2 edges and 2 corners, after the 3-cycling had done all it could do.
Give it time, and it will sink in. It took me a few days to get it.