¿Qué tan temprano se debe enseñar a los niños a codificar?

¿A qué edad debo exponer a mi hijo a la codificación para ver si le gusta?

Algunos argumentan que 5-6 años es una buena edad para comenzar a codificar ( 1 , 2 , 3 , 4 , 5 , 6 ). Busco respuestas basadas en la experiencia personal o en la investigación, en lugar de respuestas basadas en opiniones .

RELACIONADO:
¿Cuáles son algunos hitos que un niño debe alcanzar antes de aprender a programar? (Tenga en cuenta que esta pregunta dice explícitamente: "No estoy preguntando qué edad debe tener un niño para comenzar a aprender a programar". )
Alice y Scratch mayores de 8 años, ¿qué tal si tienen menos de 8 años?
Sugerencias para iniciar la programación de un niño
¿Cuál es un buen lenguaje de programación para iniciar el aprendizaje de mi hijo de primer grado?


EDITAR:
solo para los fines de esta pregunta, siéntase libre de abordar tanto la codificación como la programación, aunque estos términos no son equivalentes en general. Por ejemplo, usar Scratch y lenguajes similares basados ​​en bloques, o jugar con Big Trak son relevantes. También siéntase libre de abordar actividades que se parezcan a la programación. Por ejemplo, jugar un juego en el que el niño da instrucciones a otro jugador que finge ser un "robot" o jugar con Turing Tumble son relevantes.

@ user130558 Gracias, actualicé la pregunta. Tenga en cuenta que la pregunta a la que se refiere dice explícitamente "No estoy preguntando qué edad debe tener un niño para comenzar a aprender a programar".
Timur: votaré para cerrar esto como una opinión, porque no hay una buena respuesta a "cuándo deben los niños aprender a programar". Cada niño es diferente, y para algunos la respuesta es "nunca" y para otros la respuesta es "hoy". ¿Está preguntando "¿A qué edad puede aprender a programar un niño que está expresando interés?" ¿O está preguntando más en la línea de "¿a qué edad debo exponer a mi hijo a la codificación para ver si le gusta?" O incluso "para darles algún beneficio concreto" similar a las personas que fuerzan el piano/violín/etc. en sus hijos?
@Joe, pregunto: "¿A qué edad debo exponer a mi hijo a la codificación para ver si les gusta?". Gracias por el comentario. Se actualizó la pregunta para aclarar esto y también se agregó la solicitud de respuestas no basadas en opiniones.
Gracias por la aclaración. Sin embargo, todavía está un poco en desacuerdo consigo mismo: pregunta 'a qué edad debo enseñar', pero luego dice 'Me preguntaba sobre los pros y los contras de enseñar a los niños a programar tan temprano. ' ¿Quieres saber a qué edad se debe exponer a un hijo a la programación, o quieres saber qué sucede si se expone a un hijo a la programación a cierta edad?
@Joe, ¡Gracias de nuevo por la sugerencia! Eliminé la pregunta implícita adicional para acotar estas preguntas y respuestas: me preguntaba acerca de los pros y los contras de enseñar a los niños a programar tan temprano.
Recuerdo uno de los primeros microcontroladores de juguete llamado "Big Track".
En mi humilde opinión, la pregunta todavía está mal definida. En particular, ¿qué significa "código" aquí? Un niño de 3 años no puede escribir programas novedosos y útiles; no tienen suficiente competencia en el pensamiento abstracto. Pero uno de mis hijos empezó a usar Scratch a los 3 años; incluso les sirvió de motivación para aprender a leer, porque nos negamos a leerles los bloques y otros elementos de la pantalla. Su habilidad para usar Scratch de alguna manera se desarrolló rápidamente, mucho antes de su cuarto cumpleaños, pero no llamaría codificación a lo que estaban haciendo . Pero tal vez lo harías. ...
... Francamente, no hay "demasiado temprano"... siempre y cuando no los obligues a hacer lo que sea que creas que es "codificación", pueden estar expuestos a ello a cualquier edad.
Esta pregunta está definitivamente mal definida. En el transcurso de la edición, ha habido (al menos) dos preguntas diferentes en el cuerpo de la pregunta, y el título tiene otra pregunta más .
No te preocupes tanto por el código. Enseñe el pensamiento crítico y el código tendrá sentido cuando lo encuentren.

Respuestas (10)

A los 4 años me regalaron una computadora ZX Spectrum 48k y un libro publicado por Usborne llamado BASIC for Beginners.

A partir de ese momento me enganché.

Al año siguiente me dieron Practice Your BASIC.

A los 8 años teníamos una PC en la casa y comencé a tratar de aprender C usando el libro The C Primer. Los punteros realmente me confundieron en ese entonces, y me di por vencido después de un tiempo y no volví a C durante al menos diez años. Me entretenía escribiendo secuencias de comandos por lotes de DOS, y ocasionalmente incursionaba con código de máquina de bits muy cortos extraído de revistas de informática.

Mi hermano, sin embargo, no tenía interés alguno en la programación.

Le recomendaría que proporcione a su hijo las herramientas (una computadora y materiales de referencia) y vea si es algo que le interese o no.

Tenga en cuenta que nunca me empujaron a hacerlo, ni siquiera me supervisaron mientras lo hacía; fue completamente autodirigido, lo que creo que lo hizo más interesante y emocionante para mí. Si tuviera que sentarme y mostrarme, se habría sentido más como una tarea, y tal vez entonces no sería el programador que soy hoy.

(Los libros de programación de Usborne de la década de 1980 ahora están disponibles gratis en línea, por cierto: https://usborne.com/books/computer-and-coding-books )

¿Cuánta instrucción (si la hubo) de los padres recibió? ¿Te ayudaron al menos a escribir y ejecutar algo como el programa Hello World (por ejemplo, la primera pieza de código)?
¡Ninguno! :-) Creo recordar que me configuraron la computadora la primera vez, y me enseñaron cómo conectar el reproductor de casetes a la computadora, y luego cómo cargar un programa desde la cinta ( ), pero de ahí en LOAD ""adelante estaba por mi cuenta
@TimurShtatland otro gran libro que me encantaba cuando era niño era Supercharging MS-DOS de Van Wolverton. Lo estudiaba detenidamente durante horas, ansiosa por que fuera mi turno en la computadora para poder probar algo nuevo que había leído:- )
@TimurShtatland Creo que el equivalente actual probablemente sería una Raspberry Pi con un kit electrónico (una placa de prueba, varios sensores, LED, interruptores, resistencias, etc.) y un libro con algunos proyectos interesantes.
@TimurShtatland Hace unos quince años, recuerdo que el kit de robótica LEGO Mindstorms era otra buena manera de despertar el interés de los niños en el uso de la tecnología y la programación para hacer cosas divertidas. Una búsqueda rápida me muestra que todavía están haciendo Mindstorms, pero la última versión dice "Se retira pronto" en su sitio web; así que tal vez una nueva versión está a la vuelta de la esquina?
Al elegir qué presentarles a los niños, entre (a) una computadora + libros, (b) Raspberry Pi + kit de electrónica y (c) kit de robótica LEGO Mindstorms (y posiblemente otras cosas), ¿qué consideraciones debo tener en cuenta?
@TimurShtatland buena pregunta... ¡y complicada! Tanto el Raspberry Pi como el LEGO Mindstorms están dirigidos a niños un poco mayores: a partir de los 10 años se recomienda, aunque creo que un niño brillante de 8 años no tendría demasiados problemas. Sin embargo, la depuración de problemas con la electrónica puede resultar frustrante. El LEGO tiene la ventaja de ser físico: cuando algo no funciona del todo bien, a menudo se puede ver dónde se ha hecho mal, y el circuito de retroalimentación para identificar y luego solucionar un problema es más corto, lo que reduce la frustración. [1/2]
[2/2] La computadora tiene la ventaja de ser multifuncional: si no se familiarizan con la programación, ¿quizás les guste usar un programa de dibujo, por ejemplo, o un programa de creación de música? ¿O tal vez querrán construir cosas en Minecraft? (además, Minecraft puede introducir la programación a escondidas; es bastante fácil hacer modificaciones simples y scripts para ello)
Puedo relacionarme totalmente. Tuve un Dragon 32 cuando tenía 6 años, luego un Amstrad CPC 6128 cuando tenía 8. Empecé a escribir programas de revistas y luego a jugar con el texto y los números y ver qué pasaba. Así es como aprendí programación básica y usé este conocimiento para escribir mis propios programas. Tenía la aptitud y el deseo de aprender a hacer mis propios juegos porque mi dinero de bolsillo no llegaba a más de 1 juego de precio completo al mes. Mi interés nunca disminuyó y ahora me gano la vida programando después de obtener un título en Ingeniería de Software.

Esto depende mucho del niño, como todas las preguntas de este tipo, pero 5-6 es ciertamente posible .

Mis hijos, que ahora tienen ocho y nueve años, fueron expuestos por primera vez a la programación de manera significativa alrededor de los 4 o 5 años. Comenzamos con juegos simples que son "programación ligera", que básicamente implican que el niño cree un "programa" para llevar una pieza de un lugar a otro con instrucciones o, en un caso, "programar" al padre para que haga lo que el niño quiera. a ellos. Eso enseña el concepto de instrucciones paso a paso, lógica booleana e incluso funciones (puede hacer una "función" de varias instrucciones, luego llamar a esa función en lugar de repetir las líneas). También tenían robots programables (robots reales con aplicaciones para iPad que les permitían darles instrucciones repetibles con un lenguaje basado en bloques, incluidas puertas lógicas, bucles y funciones). Esos son muy divertidos a esa edad.

Esto nos llevó a reconocer que a ellos -y en particular a los más jóvenes- les interesaba la programación, por lo que continuamos en esa línea. Alrededor de las seis, Scratch o lenguajes basados ​​en bloques similares son muy accesibles. Los usaron tanto para crear programas simples como para ver en acción los programas mucho más complejos de otros. En su mayoría, no presionamos nada aquí: tenían algunos libros que los guiaron a través de los pasos iniciales, pero en su mayor parte se trataba de aprender a divertirse con la programación y hacer cualquier cosa tonta que quisieran hacer, incluso si era llena la pantalla con gatos maullando, o haz una pelota que rebote indefinidamente.

Alrededor de las siete, ambos niños comenzaron a aprender Python. El mayor se aburrió hasta cierto punto, pero el más joven realmente lo tomó y programó por su cuenta para divertirse o para resolver problemas (como elegir aleatoriamente para lecciones de música). Aunque todavía no pueden programar nada complejo, entienden los conceptos básicos y tienen el deseo de aprender más, ¡lo cual sin duda habilitaremos tanto como sea posible!

Empujar, sin embargo, realmente no funciona a esta edad, y no lo recomiendo. Expóngalos a la programación y vea si les gusta; esto es muy posible a los cinco o seis años, ya sea a través de juegos o iniciando experiencias de programación con lenguajes basados ​​en bloques; y luego preste atención para cuando estén listos para ir al siguiente paso. Mis hijos son lectores relativamente tempranos, lo que significa que podría enseñarles Python a los siete años, pero sospecho que muchos niños deben esperar unos años más antes de que su fluidez sea suficiente. Rasguño/etc. son geniales ya que no requieren tanta lectura; puedes aprender qué son los bloques mediante el reconocimiento de formas.

Scratch también usa un lenguaje bastante simple, pero parte de él se usa en formas específicas de programación. También he hecho algo de Scratch en los últimos años con mi hijo de 7 años (más recientemente, una máquina de efectos de sonido que funciona en una tableta: haga clic en el ícono, obtenga el sonido apropiado, con algunos elementos aleatorios, que se usa cuando su gente de Lego tener aventuras). Usé BASIC por primera vez cuando tenía 8 años y, aunque no soy un buen programador, puedo hacer que la mayoría de las cosas funcionen y aprender nuevos lenguajes bien. Eso fue para extender una tarea de matemáticas a números mucho más grandes, es decir, con una meta en mente; eso siempre ayuda
5-6 es ciertamente posible : le enseñé a mi hija (rudimentaria) C a los 6 años. Ciertamente es posible.

Soy fanático de desarrollar una mentalidad de programación sin siquiera tener que usar una computadora. Un buen ejemplo es el juego del sándwich de mantequilla de maní. Pretendes ser un robot, mientras el niño te da instrucciones que ejecutas con minuciosa precisión literal.

  • Niño: Ponga la mantequilla de maní en el pan.
  • Padre: [pone el frasco de mantequilla de maní sin abrir sobre el pan (todavía en la bolsa)]
  • Niño: Está bien, saca el pan de la bolsa.
  • Padre: [saca el pan de la bolsa]
  • Niño: Ahora abre el frasco.
  • Padre: [voz robótica] SE REQUIEREN MÁS INSTRUCCIONES
  • Niño: Ponle la tapa al frasco.
  • Padre: [gira la tapa, pero todo el frasco gira]
  • Niño: Está bien, sostenga el frasco con una mano y gire la tapa con la otra.
  • Padre: [gira la tapa, pero en la dirección equivocada, por lo que se aprieta]
  • Niño: No, no. ¡Gire la tapa hacia el otro lado!

etc.

Esto hace que el niño piense en la mentalidad de un programador sin tener que dejarse arrastrar por la sintaxis esencial de ningún lenguaje de programación específico. Y puede comenzar a una edad muy temprana, básicamente tan pronto como tengan la edad suficiente para saber cómo realizar tareas básicas como hacer el sándwich en este caso. Y están motivados porque cuando la tarea está completa, obtienen un sabroso sándwich al final. (También es muy divertido meterse con los niños de esta manera).

Buena idea, gracias! Ojalá hubiera también un juego mecánico equivalente a un lenguaje de programación, completo con condicionales, bucles, funciones, etc... Algo así como Scratch , pero basado en objetos físicos (y que no requiere que otra persona lo juegue)...
@TimurShtatland Para un bucle, podría agregar el siguiente paso: Padre: [gira la tapa solo un poco, no lo suficiente para abrirla]. Niño: Gíralo un poco más. Padre: [gira un poco más pero aún no lo suficiente]. Niño: Continúe girándolo hasta que se desprenda la tapa.
Un maestro mío de escuela primaria hizo exactamente este ejercicio con nuestra clase (creo que fue en quinto grado), y fue una muy buena manera de hacer que los niños pensaran de manera algorítmica. Incluso fuera de la enseñanza de habilidades de programación, esto también les enseña a los niños cómo expresarse claramente y cómo dividir los problemas en partes más pequeñas, lo cual es una habilidad útil para cualquiera que tenga
@DarrelHoffman: Padre : [sigue girando la tapa incluso después de que se puede quitar, ya que la tapa en realidad no salió].
@TimurShtatland ¿Quieres decir, como un Big Trak?
@TimurShtatland Turing Tumble es un "juego de mesa" de venta comercial en el que los jugadores construyen una computadora mecánica con piezas de plástico. Realmente no hay bucles o funciones, pero jugar el juego es definitivamente un tipo de programación de computadora.
@TannerSwett De hecho, hay muchos de esos. Aquí hay un hilo que enumera algunos de ellos. Actualmente tiene más de 100 entradas. Solo he oído hablar de algunos de estos, aunque es posible que no todos sean adecuados para niños muy pequeños; muchos de ellos son bastante complejos.
@DarrelHoffman Bueno, creo que hay dos cosas que parecen distinguir a Turing Tumble de la mayoría de los juegos de esa lista. Una es que en TT, la computadora que has construido funciona sola (todo lo que necesitas hacer es poner canicas), mientras que con los juegos en esa lista, los jugadores tienen que ejecutar sus programas manualmente. La otra es que TT es lo suficientemente flexible como para construir máquinas de estados finitos razonablemente complicadas, mientras que con la mayoría de los juegos en esa lista, los programas parecen estar limitados a cosas muy simples como "avanzar, luego girar a la derecha, luego avanzar". ."
Un juego dirigido específicamente a niños pequeños que no vi en el hilo mencionado anteriormente es Robot Turtles. Es lindo, es tonto, involucra a los padres con los niños y enseña la creación de instrucciones lineales. A mi hijo le encantó a los 4 años y todavía se siente atraído por él, a pesar de que ahora está aprendiendo un poco de Javascript en Khan Academy a los 9 años.
Esta es una excelente idea. Mi hijo ha decidido recientemente que quiere programar un juego. Tal vez podríamos realizar algunos ejercicios como este antes de comenzar.

Cuanta más gente sabe acerca de las computadoras, más tarde parecen dejar que sus hijos se acerquen a ellas. Este artículo de Business Insider tiene algunas observaciones y citas:

Gates, por ejemplo, no permitió que sus hijos usaran teléfonos celulares hasta que cumplieron 14 años. Jobs, el inventor del iPad, prohibió a sus propios hijos usar la tecnología.

Para proteger a sus hijos, los padres que trabajan en tecnología a menudo envían a sus hijos a escuelas Montessori, escuelas de élite que se enfocan menos en la tecnología y más en desarrollar el bienestar emocional, social e intelectual de un niño, todo al mismo tiempo.
Otros envían a sus hijos a las escuelas Waldorf, que adoptan una filosofía antitecnológica similar. En Los Altos, California, Waldorf of the Peninsula todavía usa lápiz y papel y, a veces, incluso barro para moldear las mentes jóvenes.

"Aquí estoy en el MIT, rodeado de súper técnicos, y la misma historia aquí", dijo [el psicólogo del MIT] Turkle [...]. "Todo el mundo está en una escuela Montessori y tiene reglas sobre no tener computadoras en la mesa, no tener computadoras en el desayuno, no tener computadoras aquí, no tener computadoras allá, no tener computadoras en el salón de clases".

Por supuesto, la programación puede verse como una forma de convertirme en un usuario competente de la computadora, pero al ver mi autodisciplina en la oficina en casa como programador, dudo mucho que los niños en edad preescolar lidien mejor con la tentación que yo.

Mi experiencia personal con mi hijo fue que las charlas profundas en persona (y cada charla puede volverse profunda si no evades y das lo mejor que tienes para responder preguntas) eran las más productivas para su mente joven. Es su entusiasmo y emoción junto con su conocimiento lo que cuenta. El tiempo juntos cuenta. La tecnología es bastante poco importante.

Desalentar o prohibir las computadoras en ciertas situaciones es muy diferente (incluso se podría argumentar exactamente lo contrario) de enseñar a los niños sobre programación. El último es enseñar a los niños cómo dominar las máquinas, mientras que el primero les enseña a los niños cómo no ser gobernados por ellas. Uno de mis mejores profesores universitarios nunca tuvo una computadora en el escritorio de su oficina principal, pero la usaba mucho y era muy hábil para decirle qué hacer y cómo hacerlo.
@Pavel Cierto. Abordé eso en el penúltimo párrafo mencionando la autodisciplina. Sin embargo, la tendencia general de los digerati es claramente no abrazar la computadora y, en cambio, centrarse en experiencias "reales". Si hacen una excepción a esa tendencia y dejan que sus hijos aprendan a programar es una incógnita.
Agradezco esta respuesta, pero no tengo claro dos puntos. Primero: ¿sabemos por qué Jobs no permitió el acceso a teléfonos celulares? Hay innumerables razones para restringir eso, pero aún así fomentar el acceso a una PC doméstica fuera de línea para aprender BASIC o lo que sea. En segundo lugar, mi comprensión limitada de las escuelas Montessori es que fomentan el aprendizaje en lo que el estudiante quiera. Si un niño quisiera aprender a codificar, se lo animaría a hacerlo. No estoy seguro de si estas cosas son evidencia en contra de enseñar a los niños a codificar o simplemente algunos padres evitan cierta tecnología y escuelas públicas.
Darles consumo de medios portátiles y dispositivos de chat (en sus citas, los ejemplos dados son "teléfonos celulares" y "iPad") no es lo mismo que enseñarles a codificar en una computadora portátil o de escritorio.
@RobP. Solo puedo responder la pregunta Montessori (y Waldorf). Ambos tienen ideas bastante claras sobre el desarrollo de los niños, la gente Waldorf quizás de una manera más dogmática. La página de wikipedia de Montessori dice "Libertad dentro de los límites " y "Naturaleza en el aula y fuera del aula". Eso es establecer un tono. Pero parecen abiertos a integrar computadoras de manera limitada (por ejemplo, pebblecreekmontessori.org/… ). Creo que la clave es "limitada". (cont.)
(cont.) Wikipedia cita uno de los principios de Montessori como "El niño del primer plano [0-6 años] es visto como un explorador sensorial concreto", y los materiales con los que trabajar lo reflejarían.
@Luc Cierto. Pero como dije, la actitud parece reflejar un escepticismo general acerca de exponer a los niños a las computadoras en general. Un ordenador hoy en día es siempre también un dispositivo de comunicación, distracción y juego, como puedo atestiguar de primera mano. Sabes, ¡debería estar trabajando ahora mismo!
"Mirando la autodisciplina de mi oficina en casa como programador, dudo mucho que los niños en edad preescolar lidien mejor con la tentación que yo" - Esto parece manzanas y naranjas. Supongo que esto es más codificación por obligación (es decir, su trabajo) que puramente por diversión, la mayoría de los niños están bastante acostumbrados a realizar una variedad de actividades a diario, no son tan insistentes en hacer principalmente las cosas que más disfrutan. (excepto tal vez cuando se porta mal) y dejar que codifiquen no significa exponerlos a Internet, redes sociales, juegos adictivos y otras cosas que puede hacer en una computadora.
No entiendo cómo responde esto a la pregunta o cómo está remotamente relacionado con ella.
@ Clay07g Eso es triste.
@Peter-ReinstateMonica De acuerdo, reformularé eso. Esto no es, objetivamente, una respuesta a la pregunta. Las opiniones de los ejecutivos de tecnología corporativa sobre los teléfonos celulares son irrelevantes para casi cualquier conversación, y mucho menos para las preguntas sobre programación. Y los consejos sobre tener conversaciones profundas están fuera de tema porque esta pregunta no es "¿cuál, en tu opinión, es la mejor manera de mantener productiva la mente de un niño?".
Todo se reduce al hecho de que esta pregunta no solo no pide opiniones sobre las computadoras, sino que te pide explícitamente que no las compartas.
Entiendo que esta es una respuesta de desafío de marco, pero si el consejo es básicamente 'lo más tarde posible (o nunca)', en mi humilde opinión requiere mejores fuentes. Por otro lado, Waldorf se basa en la ideología de la antroposofía esotérica y, al menos parcialmente, está ligado al nacionalismo völkisch, por lo que puede que no sea la mejor alternativa a la educación clásica.
@Peter-ReinstateMonica, tim, Clay07g: ¡Gracias, Peter, por una respuesta muy inteligente! En mi opinión, no es un desafío de marco (por cierto, los desafíos de marco están bien en Parenting. SE). Entendí que esta respuesta no abogaba por la introducción temprana a la codificación, debido a los conocidos efectos secundarios negativos de la tecnología. Véase también la película The Social Dilemma ( Wikipedia , sitio de la película , Netflix ). Vale la pena considerar los problemas descritos en la respuesta de Peter y en esta película.
@ Clay07g Re "el consejo sobre tener conversaciones profundas está fuera de tema": parecería así a primera vista. Pero en el contexto dado lo consideré importante. Porque, ¿qué es lo que los magnates de la tecnología creen que beneficia el desarrollo de sus hijos? No computadoras, sino experiencia práctica con objetos físicos, en la tradición de Montessori. ¿Y qué creo que benefició más a mi hijo? Lo que se destaca no son las computadoras (con las que pasa mucho tiempo), sino la comunicación directa cara a cara que fue emocionalmente envolvente e intelectualmente estimulante. Es una yuxtaposición.
Jobs no estaba solo: ¡he estado prohibiendo a todos los que conozco usar la tecnología de Apple durante décadas! :D

"Código" no es lo mismo que "programación". Por ejemplo, mi hija jugó una aplicación llamada Coding Safari ( https://www.hopster.tv/coding-safari/ ) cuando tenía entre 3 y 4 años. Esa aplicación se basa en arrastrar y soltar instrucciones que un "robot" puede seguir. Hizo cosas similares en la guardería y en la escuela primaria a la misma edad con robots físicos: Bee Bots, creo que se llaman.

Así que ya tiene los conceptos básicos de algoritmos, como seguir una secuencia de instrucciones, incluidos bucles y condicionales. Pero fue mucho antes de que se sintiera cómoda leyendo y escribiendo (y mecanografiando) cantidades significativas de texto y otros símbolos (por ejemplo, corchetes).

¿Esto me dice si le gusta o no? Eso es difícil de determinar: los niños pequeños son muy flexibles en sus preferencias y los cosméticos tienen un gran impacto. Particularmente con la programación, el resultado final puede ser bastante abstracto (especialmente para lo que puede lograr un principiante o un individuo), lo que hace que sea más difícil para los jóvenes razonar si es algo que les gusta o no. Continuaremos explorando conceptos informáticos (p. ej., actualmente estamos jugando https://shapez.io juntos), aunque ella no estará "programando" por un tiempo todavía. Ciertamente, ella no ha desarrollado ese reflejo de "miedo" / "intimidación" que muchas personas mayores tienen con la tecnología, y si eso es todo, ¡estaré feliz con eso!

Buen punto. Personalmente, comencé a "programar" cuando tenía 7 u 8 años en el Lego Mindstorms RCX que tenía esta interfaz de programación gráfica donde podías construir programas con bloques. Desafortunadamente, era bastante limitado y no tenía a nadie que me enseñara un lenguaje de programación real.
Sí, estoy de acuerdo en que definitivamente existe el peligro de una "brecha" entre ese tipo de recursos introductorios y saltar a un lenguaje de programación "adecuado" como Python, y en particular los conceptos que lo acompañan (por ejemplo, orientación a objetos, depuración, etc. ). Afortunadamente, creo que otras personas también han visto ese vacío, y hay recursos como eraseallkittens.com y hacakthons para niños que están comenzando a existir para llenarlo.
Si tuviera que hacer una distinción entre "codificación" y "programación", lo haría al revés, es decir, "codificación" es escribir texto en un lenguaje de programación, mientras que "programar" es dar una computadora paso a paso. instrucciones paso a paso por cualquier medio posible.
@Brilliand No podría estar más de acuerdo. Codificar es hablar con la máquina; programar es pensar en qué decirle a la máquina. Me estremezco cada vez que veo personas animando a los niños a "programar": para mí es una herramienta casi acrítica que tarde o temprano se usará mal.

Esta respuesta no tiene mucho que ver con la programación, pero...

Cuando mi hija comenzó a aprender problemas verbales no triviales en aritmética (alrededor de segundo grado (en los EE. UU.)), comencé a alentarla a que los hiciera simbólicamente. Ella inicialmente empujó hacia atrás. Pero, al final de ese año escolar, tenía una comprensión razonable del álgebra elemental (y un maestro confundido). Ese paso hacia la resolución simbólica de problemas es un primer paso crítico no solo para las matemáticas, sino también para cosas como la programación.

A partir de ahí, tomé el tacto de la respuesta de programación del sándwich de mantequilla de maní de @DarrelHoffman, pero muy discreta, no tan explícitamente como su respuesta. Creo que es posible que incluso hayamos tenido un juego de fiesta de cumpleaños para niños de la escuela primaria que era un cruce entre sus esfuerzos de sándwich de mantequilla de maní, ponle la cola al burro y un Roomba (un niño se pone una venda en los ojos mientras que otro (o más) escriba y diga un "programa" para que el niño con los ojos vendados sortee algunos obstáculos hasta el lugar elegido).

A ella nunca le gustó la programación. Quizás seguir a mamá y papá en la escuela de ingeniería fue suficiente, pero seguir a papá en el negocio de desarrollo de software fue un puente demasiado lejos. Ella, por supuesto, tomó cursos de programación, tanto en la escuela secundaria como en la universidad (y supongo que crea algunas hojas de cálculo de Excel útiles/complicadas como parte de su trabajo). Si no crees que crear una hoja de cálculo compleja es programación, busca "autómata celular".

Hagas lo que hagas, no empujes a tus hijos a hacerlo. El desarrollo de software es algo que algunas personas aman y otras odian. No aprender a "codificar" a los 8 años no va a impedir que haga lo que quiera cuando llegue el momento de decidir qué quiere hacer.

Me enseñaron a programar desde los 4 años, en el regazo de mi madre. Aprendí en GW-BASIC. Lo hizo por su trabajo y trabajaba desde su casa, por lo que inicialmente implicaba principalmente que pensara y escribiera en voz alta mientras hacía su trabajo.

Aparentemente, tomó cerca de cuatro meses hasta que tuve mi primer momento de "¿Pero por qué no?", después de lo cual ella me dio la guía de idiomas (extremadamente grande) y me dio acceso a una computadora vieja para comenzar a hacer cosas por mí mismo. A menudo me ayudaba cuando se lo pedía, pero la mayoría de las veces descubría por mi cuenta y aprendí las cosas que quería aprender en ese momento.

Inicialmente, principalmente escribía pequeños juegos de laberintos basados ​​en ASCII. Y, por supuesto, hice una versión horrible de pong.

Y ahora, casi 30 años después, sigo siendo fuerte.

Cuando muestran un claro interés por profundizar en el conocimiento de los ordenadores.

Y sí, eso puede suceder muy fácilmente a casi cualquier edad. Para algunos, puede tomar 3 años. Para algunos, puede tomar 6 años. Para muchos, lleva 12 años. Para la mayoría, nunca sucede. Y deberías ser capaz de aceptar eso. Las computadoras realmente no son muy interesantes para cualquiera que no esté interesado en las computadoras.

No entiendo qué pasa con la gente en estos días pensando que la programación es una habilidad esencial para la vida que se debe imponer a todos los niños. No lo es. Nunca proyectes tus pasiones en los niños. Es la receta para un desastre. Si se vuelven curiosos de forma natural, entonces ciertamente no hay nada de malo en alentarlos, pero empujar a un niño a algo que no le interesa, simplemente lo desanimará más adelante.

A diferencia de la mayoría de las habilidades artísticas y lingüísticas, la programación se vuelve más fácil de aprender a medida que obtienes otras habilidades relevantes y no es algo en lo que tardes 20 años en dominarlo, por lo que no hay mucha motivación para exponer a los niños desinteresados ​​en el campo a la dolor y sufrimiento de la creación de software, además de los deseos egoístas, por supuesto.

Es cierto que es un poco difícil, pero he visto este tipo de preguntas demasiadas veces y siempre me irrita lo ansiosos que están los padres por decidir las carreras de sus hijos. Hay habilidades mucho más universalmente útiles que la programación.

Me refiero a exponer a los niños a la programación para ver si les gusta, en lugar de decidir sobre su carrera. Tenía la intención de "exponerme" a este campo en el mismo sentido en que los niños están expuestos (a veces a una edad temprana) a las manualidades, dibujar, pintar, cantar, tocar instrumentos musicales, cultivar plantas, desarmar electrodomésticos. Es decir, sin decidir sobre su carrera, solo para exponerlos a una variedad saludable de habilidades y actividades, para ver si les gustan. En la larga lista de cosas que los niños aprenden en el preescolar y la escuela, la programación también podría encajar. Mi pregunta es a qué edad, en todo caso.
@TimurShtatland Si ese es el caso, entonces no tiene nada de malo, por supuesto. Supongo que estos niños en cuestión usan todo tipo de dispositivos electrónicos, por lo que no debería ser un gran problema preguntarles si les gustaría aprender cómo funcionan y cómo controlarlos de una manera más baja. No hay edad en la que esto sea posible o deseable. Los niños se desarrollan de manera muy diferente. Conozco a muchas personas de veinte años que aún son incapaces de comprender las técnicas de ingeniería de software. Todos los programadores decentes que he conocido aprendieron prácticamente por su cuenta.

En primer lugar y lo más importante, debo estar de acuerdo con algunas de las publicaciones a continuación en que cuándo comenzar depende del niño. Investigué un poco sobre "Technische Frühförderung", que de alguna manera se traduce de manera insuficiente como apoyo o intervención temprana en tecnología, y di una charla al respecto en un jardín de infancia. También hice una clase de Informática para niños de 7, 8 años. (Pero soy un programador, más que un maestro) Creo que desde el principio puedes y necesitas ayudar a los niños a mejorar un talento técnico/programador. Cosas como dejar que los niños experimenten con cosas, aprender causa y efecto, proporcionarles juguetes para construir cosas como bloques de construcción y herramientas. Incluso antes de cumplir un año, un niño que juega con diferentes recipientes de plástico pequeños, como vasos de diferentes tamaños y agua, puede aprender mucho y divertirse mucho. (Juegos de Montesori con diferentes recipientes y agua) Acostúmbrese a dejar que empiecen a tomar decisiones por sí mismos (sobre cosas apropiadas para su edad, como a qué parque infantil quieres ir, qué fruta, juguete, jersey quieres,... ) ¿Cómo puede un niño al que siempre se le dice exactamente lo que tiene que hacer, ser capaz de encontrar soluciones a los problemas por su cuenta más adelante? Es importante aprender a seguir un procedimiento, y lo más fácil es seguir una receta de cocina fácil. Trabajar con otros es importante, dividir las tareas en partes también; todo eso se puede hacer abordando alguna tarea doméstica o de construcción juntos en su familia. Explique a los niños desde el comienzo de su comprensión del lenguaje por qué y cómo funcionan las cosas, incluso si esto lleva a un sinfín de preguntas al borde de 'torturar a sus padres'. s juegos con diferentes recipientes y agua) Acostúmbrate a dejar que empiecen a tomar decisiones por sí mismos (sobre cosas apropiadas para su edad, como a qué parque infantil quieres ir, qué fruta, juguete, jersey quieres, ..) ¿Cómo podría un niño al que siempre se le dice exactamente qué hacer, ser capaz de encontrar soluciones a los problemas por su cuenta más adelante? Es importante aprender a seguir un procedimiento, y lo más fácil es seguir una receta de cocina fácil. Trabajar con otros es importante, dividir las tareas en partes también; todo eso se puede hacer abordando alguna tarea doméstica o de construcción juntos en su familia. Explique a los niños desde el principio de su comprensión del lenguaje por qué y cómo funcionan las cosas, incluso si esto lleva a un sinfín de preguntas al borde de 'torturar a sus padres'. s juegos con diferentes recipientes y agua) Acostúmbrate a dejar que empiecen a tomar decisiones por sí mismos (sobre cosas apropiadas para su edad, como a qué parque infantil quieres ir, qué fruta, juguete, jersey quieres, ..) ¿Cómo podría un niño al que siempre se le dice exactamente qué hacer, ser capaz de encontrar soluciones a los problemas por su cuenta más adelante? Es importante aprender a seguir un procedimiento, y lo más fácil es seguir una receta de cocina fácil. Trabajar con otros es importante, dividir las tareas en partes también; todo eso se puede hacer abordando alguna tarea doméstica o de construcción juntos en su familia. Explique a los niños desde el comienzo de su comprensión del lenguaje por qué y cómo funcionan las cosas, incluso si esto lleva a un sinfín de preguntas al borde de 'torturar a sus padres'.

Por supuesto que hay talento. Si bien las anteriores son buenas tácticas para todos los niños, hay quienes tienen otros talentos, no los empuje en otra dirección si no quieren ir allí. Como dice Knuth, “tienes talento para programar, o no lo tienes”. Para terminar, la codificación real con un lenguaje de programación puede tomarse para la edad en que su hijo pueda leer y escribir de forma básica. Algunos pueden hacerlo a las 5, otros más tarde. Pero codificar cosas con apoyo visual puede comenzar mucho antes con niños que tienen talento técnico, seguramente entre 3 y 4 años. Puede ofrecerles programación mostrándoles cómo usar una herramienta de programación adecuada, enseñándoles estructuras de codificación como repetición, condición, objetos. Hay herramientas para eso con "personajes" relacionados como abejas, tortugas, robots. Pero déjelos elegir por sí mismos cuándo empezar a usarlo. Puedes ofrecerles ir a una clase de programación lúdica con otros niños, si les gusta. En cualquier caso, es maravilloso verlos desarrollar ese talento, ¿no es así? PD: Puede ver el trabajo de Linda Liukas para obtener algunas ideas para comenzar a programar, por ejemplo.

El "código" o el software de "programación" debe verse, en lo que se refiere al desarrollo intelectual y conceptual, como no diferente del "código" que es el alfabeto, o incluso un libro ilustrado que cuenta una historia a través del comportamiento de los objetos en dibujos secuenciales.

Todas estas cosas indican la capacidad del cerebro para convertir símbolos en conceptos y acciones. La historia de un libro ilustrado es esencialmente lo mismo que un lenguaje de programación basado en íconos como Simulink o LabView.

Dado todo eso, mi recomendación personal es presentarles a los niños el software de programación compatible con niños y dejar que decidan si es divertido aprender a crear cosas en la pantalla.

No estoy necesariamente en desacuerdo con nada de esto, pero la otra cara de la moneda es que las habilidades necesarias para escribir código suelen estar más relacionadas con la planificación y el tratamiento gradual de un problema (o al menos esas son las habilidades de las que carecen nuestros estudiantes universitarios). La parte de símbolos->acciones es relativamente simple
@ChrisH Sin argumentos. Aprender a planificar y diseñar es una especie de habilidad separada que los niños deben aprender para todo tipo de cosas, como "¿cuántos Legos necesitaré para construir mi modelo de casa en el árbol?"