Learning CW is like learning a language. It takes time, and practice. Once becoming partially proficient, immersion can really help you get to the next level, very much like learning a new spoken language.
- Learn morse code using lcwo.net. Keep your character speed at 20wpm, and adjust the spacing as necessary to be able to make progress. Go through all the lessons to learn the characters of morse code.
This is hard and grueling work but it ill pay off. This step is basically like learning the alphabet, it is a core skill, but there is more work to be done after.
- Start listening to on air QSO's. You will find that even though you know morse code, you probably have no idea what people are saying to each other. Again, CW is very much like a language with its own vernacular, structure, abbreviations, and dialect. Listening to real on air QSO's will help you get the feel for these nuances of the language. This step is getting you ready for being "on air capable".
During this process you will likely be tempted to write things down. Do everything in your power to NOT write things down. If you have trouble copying a specific word, or cant make sense of what is being said - you can write it down to help "figure out" what it might be. The reason for not starting this "bad habit" is that you will quickly learn that you can not write that fast, and this will be a limitation on your ability to increase your speed.
- Get on the air. You should be able to copy at an effective speed of 10-15 words per minute. Some really great people to QSO with are the SKCC. They operate within the 050-060 range (on 14 and 40 meters). They also have a "sked" chat room, SKCC SKED, that you can chat with others and schedule on air QSO's. They often send quite slowly, and use straight keys or bugs - which can be a bit of a challenge to copy, but it should be good practice to learn your "on air" skills. Again you should be "head copying" or working towards 100% head copy at this speed. Once you learn this skill you will be able to continually increase your speed over time. If however you are writing things down, you will likely plateau around this speed.
- Improve your speed. Start working on copying higher speed calls, operating CWT contests is a great way to do this. Besides improving your callsign copy, you should start working on improving your "vocabulary" - by that I mean getting high speed recognition of very common words. Listen to "top 100 english words" lists at high speed to help build this vocabulary.
- Practice, practice, practice! The more you can operate on air CW the better you will get at it.
There are a couple extra tools which you can use that are mostly geared towards contest copy and simulation: QRQ, Morse Runner, RufzXP
CW Academy is a good set of courses that more or less follow a similar method as described here, and provides "guided instruction".