(Because an ASCII picture is worth a thousand characters.)
An arrow may be a helpful mnemonic, especially since that's almost exactly how it looks in Emacs' dired.
And big picture so you don't get it confused with the Windows' version
ln -s target <- linkName
mklink linkName -> target
You could also look at these as
ln -s "to-here" <- "from-here" mklink "from-here" -> "to-here"
from-here should not exist yet, it is to be created, while the
to-here should already exist (IIRC).
(I always get mixed up on whether various commands and arguments should involve a pre-existing location, or one to be made.)
EDIT: It's still sinking in slowly for me; I have another way I've written in my notes.
ln -s (target exists) (link is made) mklink (link is made) (target exists)