FWIW, initially I learned by SWL-ing the commercial ship-shore "VVV beacons" or whatever they were called.
(Damn I'm OLD! WTF happened???) That led me to realize as others have written that the character speed should be high but the spacing slow, so you learn the
musical rhythm of each character. Don't learn dits and dahs because that limits you to two letters.
The repeating/looping beacons made it easy, so perhaps set up a loop of text in a CW practice app, like others have mentioned.
Another thing I initially used to remember the characters was "the tree of Morse" like this:
http://www.learnmorsecode.com/pix/learn.gifOnce you learn/remember each character it gets really easy. Also, learn is to skip characters you miss because if they're words you'll understand anyway. The next step is to learn the rhythm of common words. Eventually Morse will sound as if someone was speaking to you in letters instead of words... Aay, Bee, See, Dee, Eee, Eff, Gee, Aych, Eye, Jay, Kay, Ell, Emm, Enn, Ohh, Kyou, Are, Ess, Tee... Well, you get the idea.
(Watch out for that damned Pee, it tries to run down your leg!)Listen to pileups when there's a DXpedition on the air.
Then, when you're able to hold QSOs, go on a DXpedition yourself...
I only went to the Bahamas, twice, but by the time I returned from my second I was a fluent 45 WPM, both RX and TX.