The ability - which generally just takes a PC, a book and some time.
The desire. You've got to want to build something. You then get to add stuff to it. You then realize you don't know how to add something (this is where you go to the index of the book you abandoned days before, realize it's not in there, rush online, find the solution, realize you've done something else in a stupid way, decide you might want to fix that etc etc). Basically the hump is getting hello world up on the screen and then creating the very first bit of your 'thing'
I don't even think it has to be programming per se. Quite fun playing with APIs on sites that you're familiar with, with something friendly like PHP.
I wanted to look up the prices of my old DVDs I wanted to sell. Pain in the arse on Amazon... oh, hold on they have an API.
Oh, then how about using a CSV to load and dump results to?
Shit, I seem to be getting results back from the wrong bits of amazon, lets add some array sorting.
Would be nice to store lookups I've made - MySQL
Oooh, how about other sites... they don't have an API *googles*... "Oooh Curl" etc.
Basically, if you're interested in something and have time, it will all follow. You can later learn how to do it properly later, but it tends to flow. Nobody wants to sit down and read a chapter on exception handling - but once your program is mysteriously failing, you suddenly find you've become quite fascinated with the intricacies of exceptions. You'll just bolt them on until the problem is fixed, but on your next project you'll have that pain in your mind from the start, and may find yourself now dutifully adding them.
I'm meandering all over the place here now - I think you just need to ask your nephew what he wants to build, make sure it's realistic (or choose a functional subsection to start with). Also nice if it's something that could go online, be run on a smartphone or similar - once you've built this thing, you want to show it off.