As usual, opinions vary, but many hams agree you should learn CW at a speed similar to what you’ll actually hear in practice. Ideally, the characters are perceived as a unit, a unique sound, not a series of dots and dashes you hear individually. Eventually, you can perceive whole words and phrases as a particular sound. However, as the letters and characters are formed with long and short sounds, you’ll learn those elements as part of the process.
Code training programs
The following list is a small sample of your options. The first few do not require typing what you hear; I prefer using pencil and paper. The programs generally teach a few characters at a time in order of increasing complexity, not alphabetically.
Ham Whisperer A series of videos that present the characters very slowly, contrary to most advice, but effective for some people. There are no settings for speed or other options. Most lessons are 3 letters and a number. It’s on his blog and on YouTube, so unless you download and save it, you’ll have to be online.
CW Player has many features and options, plus there is a game that gives you extra exposure to the characters. There are pre-set lessons and the option to paste in your own practice text. Offline/locally installed
Just Learn Morse Code Similar to CW Player, with many options.
Learn CW Online I did not use this popular option.
There are also mobile apps, but I don’t have one to recommend.
More training options:
Learning CW operation
One of many articles on operating, plus more resources
Straight Key Century Club Includes a list of Elmers – experienced operators willing to help beginners