Since he doesn't even know the basic stuff, how to I tackle this? If I'm jumping right into teaching him about variables, functions, classes, etc then I'm afraid that he'll get scared, overwhelmed and frustrated because he, like any other absolute beginner, lacks the "programming vision" (something that I like to call the "I know kung fu" Matrix moment).
So I suppose my plan must start with teaching him the why's and then the how's of programming, right? I must first give him some lecture about general programming knowledge?
I remember when I was a kid, even though I knew the syntax perfectly, I couldn't understand why do I need a function or why do I need to use a for-loop or when do I need to use X instead of Y, because the teacher didn't bothered to explain me these concepts. So that's what I'm afraid it'll happen to my buddy if I don't come up with a more down to earth way of teaching.
That being said, how do I do it? What books can I recommend him? How do I schedule his learning path? Any help is welcomed and appreciated.