¿Cuál es la mejor manera de llevar a mi hijo de 8 años a la programación de software y hardware? Realmente le gustan las computadoras.

A esa edad, definitivamente recomendaría comenzar a programar con Scratch: http://scratch.mit.edu. Es la programación de arrastrar y soltar que le permitirá a su hijo ver los resultados rápidamente, en poco tiempo estará haciendo juegos interactivos que tomarían decenas de horas en un lenguaje más tradicional como Java o C ++. Estos rápidos resultados son importantes para mantenerlo interesado y continuar aprendiendo más.

Como lenguaje de programación, introducirá muchos conceptos importantes: bucles, condicionales, variables, eventos, entradas y más. Esto hará que la transición a la programación orientada a objetos sea mucho más fácil cuando sea el momento.

Pero quizás el mejor beneficio de usar Scratch es la excelente comunidad que sube sus programas al sitio web de Scratch. Parece que no tendrá un maestro o mentor para guiar su desarrollo, por lo tanto, su progreso será en gran medida impulsado por uno mismo o por los padres. En este caso, es extremadamente útil echar un vistazo a lo que otras personas están haciendo con Scratch. Puedes hacer que intente recrear esos juegos. Si se atasca o se pregunta cómo se hizo un aspecto del programa, ¡puede descargar el código de cualquier proyecto en el sitio web de Scratch!

Echa un vistazo a un recorrido más profundo de Scratch en el sitio web Breakout Mentors: http://breakoutmentors.com/learn…

Creo que la respuesta de Brian Skinner es la mejor. Voy a complementar su respuesta resaltando dónde termina y cuáles son las limitaciones de su enfoque.

Scratch parece un punto de partida razonable. Los resultados son rápidos, no requiere distracciones innecesarias, como conceptos de programación, y ¿qué es más genial que hacer juegos? El objetivo aquí es incitar su pasión, no que él sea coautor de un trabajo de investigación.

Pero cuando sepa que su hijo reconoce los límites de lo que Scratch puede hacer por él, pregúntele qué quiere hacer. Entonces hazlo con él . La razón de este enfoque es: debe mostrarle lo que la programación de software y la programación de hardware pueden hacer: casi cualquier cosa . Eso realmente lo llevará a eso.

Las ideas incluyen cualquier cosa para ayudar a resolver algunos de los problemas del mundo. Anímalo a soñar en grande: la verdadera diversión y experiencia radica en interactuar con múltiples disciplinas del conocimiento para encontrar soluciones. No tiene que entenderlo todo. Lo estás haciendo con él.

No lo inscriba en cursos de programación estándar . Lo que proporcionan es una forma de hacer un conjunto de tareas, con respuestas “correctas” e “incorrectas”. No hay mucha exploración. Secarán su pasión rápidamente.

** En un futuro lejano, por favor anímelo a que intente seguir otras materias también porque existen inconvenientes para tener una mentalidad en la que todos los problemas pueden tener una respuesta precisa.

Mi hijo de 9 años pudo aprender la programación de Python al seguir las conferencias en la excelente clase de Coursera Learn to Program: The Fundamentals [ https://www.coursera.org/course/ …] y completar las tareas.

Reforzó lo que aprendió al trabajar en otros ejercicios de programación en línea (por ejemplo, Asignaciones | Una introducción suave a la programación usando Python | Ingeniería eléctrica y ciencias de la computación | MIT OpenCourseWare).

Creo que le pediré que resuelva (algunos de los más fáciles) problemas en el Proyecto Euler [Proyecto Euler] a continuación.