Aprender a programar requiere entender la lógica de las computadoras, de lo que pueden hacer los lenguajes de programación, de las estructuras que proveen los mismos, y de —finalmente— hacer suyos (de quien aprende), conceptos ligados a qué hacer y cómo decirle a la máquina que lo haga. Por ello, es evidente que no es fácil aprender a programar. Se requiere esfuerzo (¿pero qué cosa interesante no?), por ello, cuando uno ve programas que enseñan los conceptos de programación a manera de juego, nos queda claro que este enfoque puede ser útil para quitarle algo de la aridez del asunto a estudiar. En el iPad ya llegó un juego que enseña los principios de programación, se llama Cargo-Bot.
Cargo-Bot es una app para el iPad que obliga a pensar como computadora, convirtiendo al juego en algo sumamente adictivo, es algo así como Angry Birds cruzado con Codecademy. Es curioso que esta app haya tenido más comentarios de los medios porque se escribió totalmente en el iPad (y no usando Objective-C en una Mac), a través de una especie de lenguaje llamado Codea. Sin embargo, se está perdiendo el punto importante aquí, que es el convertir la programación en una especie de juego. De hecho, ni Codecademy logra este propósito.
Cargo-Bot es una especie de tetris. La meta es decirle a un brazo robótico cómo mover cajas de colores alrededor de una plataforma para crear diferentes patrones. Hay un par de términos técnicos en todo esto (program y loop, por ejemplo), pero lo importante es cómo se esconde el asunto de la programación para convertirlo en un juego.
Cuando se juega Cargo-Bot por primera vez se puede uno pasar horas con el juego, pero no porque lo convierta a uno en un gran programador, sino porque nos obligamos a depurar las funciones que no parecen trabajar correctamente en nuestro código. Este fenómeno de depuración es típico en la programación y en muchas ocasiones es bastante enojoso tener que buscar por qué las cosas no salen como deberían de salir supuestamente, pero en Cargo-Bot esto de depurar (debugging) es divertido.
Al ver cómo se mueve el robot y ejecuta las instrucciones, uno puede literalmente ver el código en acción y ver cuándo falla. Además, nos obliga a hacer los cambios necesarios, que se reflejan inmediatamente en el programa corriendo. Aparte de ello, Cargo-Bot da recompensas por hacer que el código que se pide funcione correctamente y más si se logra hacer más eficiente o corto. Le da más puntos al jugador.
Quien no programe en el siglo 21 probablemente va a estar en desventaja frente a los que sí saben programar. Desde luego, no se busca que todos sean unos magos de la programación de computadoras, sino que tengan una idea mucho más certera de estos asunto, que nunca está de más, sobre todo para muchas tareas que bien podrían resolverse con un par de horas programando.
Referencias: 9to5Mac y FastcodeDesign