Programar es, según la RAE, elaborar programas para la resolución de problemas mediante ordenadores. Donde programas son una serie de instrucciones debidamente elaboradas para dicho ordenador. Visto de otra manera, el programador escribe un mensaje, el código fuente, que el ordenador recibe, entiende y ejecuta luego de una serie de traducciones. Así se establece un tipo muy especial de interacción hombre-máquina, que comienza en la mente del programador y termina en los registros del CPU.
La programación es ciencia y arte. Por un lado, como programadores, tenemos que hacernos de una buena colección de algoritmos y estructuras de datos para resolver problemas con cierta eficiencia. Aquí está la ciencia. Por el otro lado, debemos adquirir el oficio de programar con alguna herramienta, que va desde ellenguaje de programación hasta el entorno de desarrollo, sin mencionar técnicas de ingeniería de software para gestionar proyectos complejos y donde las preferencias-obsesiones personales entran en juego, incluso podemos hablar de estilos de programación. Aquí está el arte. Un programador experimentado sabe equilibrar esas dos fuerzas.
¿Cómo enseñar programación a un niño? Digamos a alguien entre 8 y 15 años de edad. No creo tener la mejor respuesta en términos pedagógicos, sin embargo, sí puedo recomendar alguna de las siguientes herramientas diseñadas especialmente para que los niños aprendan a programar, sin las complejidades teórico-prácticas de la programación profesional, con diferentes paradigmas a escoger.
No soy padre, pero si lo fuera creo que la experiencia de enseñarle a tu hijo a programar será la próxima versión de enseñarle a andar en bicicleta. Si tú lo has hecho, por favor cuentanos tu experiencia en los comentarios.
1. Alice
Código abierto. Inglés.
Ambiente de programación creado en Carnegie Mellon University, donde los niños pueden contar historias animadas con bloques 3D: "para la próxima generación de científicos de la programación.
2. Doma de Serpientes para Niños
Código abierto. Inglés y español.
Basado en el famoso "Snake Wrangling for Kids", es un libro electrónico para enseñar programación a niños mayores de 8 años mediante el lenguaje de programación Python, disponible en cualquier sistemas operativo. Éste lenguaje, cabe mencionar, es sencillo, flexible y poderoso: soy un acérrimo fan.
3. Kids with Ruby
Código abierto. Inglés.
Es un software interactivo para aprender programación con el lenguaje Ruby: unos de los más bellos lenguajes, si me permiten decirlo, que podrán encontrar. Como dijo Yukihiro Matsumoto, creador de Ruby, "espero ayudar a que cada programador en el mundo sea productivo, disfrute y sea feliz programando. Este es el principal propósito del lenguaje Ruby".
4. Kodu
Comercial. Inglés.
Con Kodu lo niños pueden crear juegos de manera visual desde la PC y XBox. Fue diseñado para enseñar a programar con tres conceptos eje: creatividad, resolución de problemas y narrativa.
5. LEGO MindStorms NXT
Comercial. Inglés, español.
Son robots programables, ya sea con el NXT Intelligent Brick para programas relativamente sencillos, o con alguno de entre cincuenta lenguajes de programación disponibles.
6. Hackety Hack
Código abierto. Inglés.
Sin experiencia previa en programación, por supuesto, Hackety Hack es un software ya clásico para enseñar a programar con Ruby, una lección a la vez. Creado por el no menos famoso hacker _why, Hackety Hack incluso obedece a un manifesto que en una de sus últimas líneas dice que "es libre y se mantendrá así en adelante".
7. Petit Computer
Comercial. Inglés.
Si sentarse a programar no es opción, tal vez sí lo sea usar un Nintendo 3DS o DSi con Petit Computer, que permite crear programas en BASIC. No es que BASIC sea la mejor opción, sin embargo puede ser atractivo hacerlo desde la consola portátil.
8. Raspberry Pi
Comercial/Código abierto. Inglés.
Este ha sido uno de los mayores éxitos de la comunidad del software y hardware libres en los últimos años. Se trata de una pequeña placa que puede costar entre 25 y 35 dólares, donde cabe Linux, y está diseñado expresamente para la enseñanza de programación básica. Además de ser un gadget fabuloso para un hacker, su portabilidad y precio permiten montar talleres móviles de programación para niños con poco acceso a la tecnología.
9. RoboMind
Gratuito. Inglés.
Tenemos ante nosotros un proyecto similar a LEGO Mindstorms, pero en software: un ambiente de programación básica aplicada a un robot virtual, con la posibilidad de profundizar en temas de robótica e inteligencia artificial. Utiliza su propio lenguaje, ROBO, diseñado con una sintaxis simple.
10. Scratch
Código abierto (salvo algunas partes). Inglés.
Este proyecto ya es un clásico. Comenzó en el MIT en 2006 y hoy en día tiene una comunidad vibrante de usuarios que comparten proyectos y experiencias. Scratch se conforma de un entorno de programación visual orientada a la creación de juegos y animaciones para iniciar a los niños en los bloques básicos de la programación.