You won't retain anything if you just memorize commands. Start by learning the basics, and use it for a while. Eventually, you will get to a point where you're working as fast as you possibly can with that knowledge... Once it becomes second nature, look through that command list, and you will pick out things that you think are useful ("wow, I didn't know i can go ':s/blah/cleh/g', that would come in so handy!"), and you kinda soak it in as you go. Usually, everyone knows a different set of commands, and when you're pair programming, and your friend sees you scroll needlessly, he'll say "you know, 'w' gets you to the next word".... that's just my experience though.
As for which to choose... blah, I'm a vim person myself. This is an age old debate, and I don't think anyone can decide but yourself.