I receive a lot of e-mail from both hams and future hams that are struggling with CW. It seems there are a lot of hams that don't operate any CW simply because of their code skills. For myself, learning CW as a pre-teen, was a bit of a struggle, as I learned CW from flash cards ... definitely the wrong way. In my case, the code was learned in order to operate an Aldis lamp signalling system for my scouting activities. When eventually switching to a hand key and buzzer, I had to make the mental switch between the picture of the flash card and the sound of the code, taking me much longer to reach my goals than if I had learned just by sound.
If I were learning the code today, or if advising anyone struggling with CW, I would suggest several ways of making it easier.
1. Too many newcomers want to learn CW using a keyer. Put the keyer away and get yourself a hand key. It need not be fancy or expensive.
2. Use the hand key to practice sending similar-sounding letters (E, I, S, H etc) slowly and correctly. Don't be concerned about sending them fast but concentrate on getting a uniform spacing between each element of the letter. As you slowly learn the letters and how they sound, you will find your sending speeding-up, unconsciously, as you progress.
3. Combine your sending practice with receiving practice and try to do 10 minutes of each during each practice session. One session per day will guarantee success, if you stick with it. If you can't do it every day then try and commit to every other day.
4. For receiving practice, use a much higher speed than what you are sending at. Once again, in sets of similar-sounding letters, try and learn the letters when sent at a speed of at least 15WPM, but with wide spaces between each letter ... so they aren't coming at you as fast. This is the Farnsworth method of learning code. Learning what the letters sound like when sent at a fast speed will eliminate the dreaded 'learning plateaus' associated with learning at slower speeds, when you can get stuck at a lower speed for some length of time. I only wish that I had known of this method when I was a kid, but I don't think it had been thought of back then.
5. There are lots of websites that will help you in Step 4 and one that I have played with seems to work very well. You can set up a slow-speed spacing but have characters sent at 15WPM or faster (start with 15WPM). You can pick only the letters that you wish to practice (T,M,O,A,N etc) and then get a printout of what was actually sent to check your accuracy. The one I tested is by AA9PW and can be found here.
In addition, the ARRL's W1AW, provides nightly code practice on various frequencies and also provides archived CW practice sessions at various speeds via their website here.
Once you become somewhat competent in both sending and receiving, don't be afraid to get on the air and use your new skills. Don't be concerned about sending fast and be careful about sending faster than you can receive, an easy trap to fall into.
There are always several stations around 7.110-7.125 every afternoon and evening that seem very happy to communicate at comfortable speeds. If you don't get on-the-air, then make sure that you still do your daily 20 minutes of practice. You will be amazed at how quickly you can learn the code or increase your speed, with this daily routine. This short daily commitment to practice (on the air or otherwise) is the key to success.
If you aren't using CW, you are missing out on a lot of fun. To this day, CW is still my favorite mode and almost 100% of my on-air operating is on CW ... it's just plain fun! Knowing how to use CW will open up a lot of opportunities to enjoy it ... CW contesting, chasing DX, CW nets, staying in touch with friends etc ... CW will always get through better than phone under most conditions.
So ... if you have been struggling with the code, or putting it off, there's no time like the present to join the fun. Hopefully you will find these suggestions helpful.