I am a huge fan of Build Your Own Lisp in C. I knew how to program since I was a kid. It was all inelegant but working code. Using this website's walk through helped me to refine my understanding. Anecdotally, I suggested it to 2 beginners I knew, and they found it very intuitive.
http://www.buildyourownlisp.com/