Hi Jim,
Just my two cents:
Fabian, DJ1YFK has a very good CW course on line called
http://lcwo.net It's multi-lingual and I hear very good things about it.
Most important thing is: practice on a regular basis, 15 to 30 minutes a day will do the trick. Just don't give up, how hard it may be, you'll get rewarded in the end.
Just remember: thousands before you have learned the code, so can you!
Btw, Fabian now is one of the fastest. Search for video's at Youtube with keyword DJ1YFK.
Not meant to disencourage you, but just to show what's possible ;-)
Good luck and season's greetings!
Kees, PA3DEB