I found the CW learning/practice website http://aa9pw.com/morsecode/ to be invaluable. For learning, it offers both the Koch and Farnsworth methods. For practice, it offers a variety of real-world news headlines or simulated QSOs that you can set the character speed and spacing separately. This is a very well thought out website and it, and the mobile device app, are particularly beneficial for anytime practice.
~~~~~~~~~~~~~~~~~~~~~ If you want to learn any language, go to the country and surround yourself with native who DON'T speak any English at all. That way, you'll pick it up very quickly! de NK2U