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 el [lenguaje de programación](http://bitelia.com/2010/07/lenguajes-de-programacion-emergentes-1a-parte) 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](http://www.alice.org/)

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](http://code.google.com/p/swfk-es/)

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](http://kidsruby.com/)

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](http://www.kodugamelab.com/)

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](http://mindstorms.lego.com)

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](http://hackety.com/)

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](http://www.petitcomputer.com/)

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](http://alt1040.com/2012/03/raspberry-pi-otro-triunfo-de-la-cultura-libre)

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](http://www.robomind.net)

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](http://scratch.mit.edu/)

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.

Fotografía: [mytoenailcameoff](http://www.flickr.com/photos/damianathegirl/5102903812/)