Don't teach him one programming language, because if he wants to be a hacker, he'll need exposure to many.
Ruby or Python is good for a start, because it's easy to debug and you can do simple, cool things with them pretty quickly. Then introduce him to Lisp or Scheme, and finally OCaml or Haskell so he's exposed to good static typing. Save C for later (by the time he's ready for it, he'll be picking languages rather than asking you for advice).
Ruby or Python is good for a start, because it's easy to debug and you can do simple, cool things with them pretty quickly. Then introduce him to Lisp or Scheme, and finally OCaml or Haskell so he's exposed to good static typing. Save C for later (by the time he's ready for it, he'll be picking languages rather than asking you for advice).