I first learned to send code and I would just tap out words, phrases, sentences, , names, etc. with my fingers or feet. I could send fast but I couldn't receive for nothing and thus could not get a license. Finally I decided to get the receiving down. I had an Atari 800 computer and I wrote a program to send code. It could be set to either generate random charachters and send them as code or, to read text from a file and send it as code. I could also set the speed, spacing, tone, timing, etc. That program helped me quite a bit and basically got me up to speed on the receiving. Then I just started listening to people sending on the air.

Another thing that helped was to listen to code being sent faster than I was capable of receiving comfortably. I could do this by setting the program to send very fast or by listening to a fast CW op. on the air. Even if I could only pick out a letter here and there I would force myself to keep on listening. Then, when I would finally drop down to a slower speed it seemed easier each time.

Now, I don;t know what happened to that program I wrote. It may be sitting on an old 5.25 inch floppy diskette somewhere in the back of a deep dark closet. But I am sure there are plenty of modern day resources available that work even better than my crude 1980's cw program..

In any event those resources and techniques worked very well for me. Mileage may vary.