I respectfully disagree a little. I recently went through the process of learning morse code. Most successful systems have some points in common:
- do not start writing or reading dashes and dots, that prevents you from learning the actual signals
- signals are visual or acoustic so learn to see or hear them from the start
- decide how fast you want to be and learn the characters at that speed (adjust spacing for total speed)
- do not start transmitting before you can reliably read the signals; transmitting is about automation once accomplished itīs hard to correct mistakes; you should be able to identify mistakes when you start transmitting (better yet get someone verify correct forming of the signals)
- practice daily; 10 minutes per day will take more time than 1 h per day but will still do the trick

There are lots of free PC-programs to help you learn morse code. I transferred practice lessons to a MP3 player and practiced in my lunch breaks. I can read about at about 16 WPM and transmit at about 22 WPM (on the HAM-bands you donīt send faster than you can read though).
_________________________
If it isnīt broken, it doesnīt have enough features yet.