It's probably easiest to begin with a Lisp dialect, since a basic one needs only two data types (singly-linked lists and symbols) and its eval function is so simple. Peter Norvig has a great tutorial[2] on implementing a Lisp in Python.
Beyond that, it can be helpful to look at the source code for other languages similar to what you're looking to create, to get a sense of how they do things.
That's more or less what I found helpful, in any case. Good luck!
[1] http://patshaughnessy.net/ruby-under-a-microscope [2] http://norvig.com/lispy.html
Parser generators usually have a very limited number of target languages, so you might find yourself stuck into a language you do not want to code in.
I started out with Yacc, though, and that helped me out a lot more...