Todo depende de cómo quieras orientarlo.
Puedes, por ejemplo, usar un lenguaje digamos "real", como Pascal (o Ruby, o C, o ...). Esto tiene la ventaja de que realmente es un lenguaje que se usa en el mundo "real" (se encuentran más ejemplos, tiene mejor soporte, etc). Pero la desventaja de que no están pensados específicamente para aprender.
O puedes buscar algún lenguaje que esté hecho específicamente para aprender. Hay varios. No son lenguajes que se usen fuera de su entorno de aprendizaje, lo cual es una desventaja, pero como ventaja están hechos para aprender.
Como lenguajes hechos específicamente para aprender, los más interesantes, emmo, son:
Alice,
Scratch y
Phrogram. Personalmente me gusta más Scratch, pero Alice también está muy bien. De Phrogram no puedo opinar porque no lo he probado. Pero mira sus páginas, bájatelos, échales un vistazo y decide por ti mismo.
Si te inclinas más por un lenguaje "real"... la elección es más difícil porque hay muchos. Pascal es un lenguaje clásico para aprender, aunque ahora en la mayoría de ocasiones en que usaban Pascal para enseñar lo han sustituido por Java. Python es un lenguaje relativamente amigable y bastante gente lo recomienda para aprender. Particularmente me gusta Lua, que es un lenguaje sencillo y cuenta con una ventaja importante para un adolescente: Todos o por lo menos muchísimos de los juegos que tenga tu hijo usan Lua para programar algunas partes. No sólo eso, sino que usan Lua para que la gente haga sus propias modificaciones. Así que, si le gusta jugar, es una buena forma de encontrar algo que le interesa a la vez que puede aprender.
En caso de que elijas un lenguaje "real", lo que sí te recomendaría es que busques alguna herramienta o entorno que tenga al menos cierta orientación al aprendizaje y al entretenimiento. Por ejemplo, Python mucha gente lo recomienda con la librería Pygame, que es para crear juegos fácilmente. Para Java existen un par de herramientas muy interesantes:
Greenfoot es un entorno para aprender a hacer juegos sencillos y como lenguaje utiliza Java.
CodeRally no es tan amigable, pero es entretenido! Es un entorno para programar coches que compiten en una carrera. También usa como lenguaje Java. Una buena herramienta amistosa pero no necesariamente orientada a juegos es
BlueJ (de los mismos que Greenfoot).
También tienes
Karel J Robot que usa Java o Python. Por último... este enlace lo pongo quizá más como curiosidad que otra cosa, pero... bueno, ahí va:
c-jump.
...
He vuelto a releer tu mensaje y, fijándome ahora más en algunas cosas que comentas, creo que de todo lo que he dicho, las cosas que mejor os podrían ir para empezar serían o bien algo como Scratch o Alice, o bien Greenfoot. Échales un vistazo a ver qué te parecen.
Ah, y en cuanto a manuales o tutoriales... Estos tienen bastante documentación y ejemplos. Mira en sus páginas web
Ah, ah, otra cosa:No sé si el inglés será un problema. Espero que no, pero en caso de que lo sea, Scratch tiene traducción al español (así como algo de documentación en español). De Alice es posible que encuentres algún tutorial o libro por ahí, pero que yo sepa no hay nada "oficial".