Antes de nada, pido disculpas por el título del post, pero es que me lo han puesto en bandeja. Entre el tema que traemos hoy al blog, y aquella lamentable traducción del título de cierta película (de hecho esto pretendía ser una sátira), vi la conexión inmediatamente. Es lo que hay.
Vamos al turrón. Hoy de lo que venimos a hablar, por un lado, es de la creciente opinión de que eso de la programación informática tiene que acabar dominándolo, si no todo el mundo, al menos buena parte de la población. No es que yo me vaya a poner a favor ni en contra, ojo, simplemente traslado algo que defiende cada vez más gente.
Entre esa gente no está precisamente un programador que yo me sé, que sostiene que como todo el mundo sepa programar le van a quitar a él el trabajo. Pero el caso es que cunde en el ambiente la idea de que si estamos en un mundo cada vez más digital, entonces tenemos que controlar hasta sus entrañas. Puede ser, pero (y no es por defender al programador que conozco) ¿y si estamos confundiendo “nivel usuario” con “nivel experto”? Quiero decir, cuando llegó al mundo la posibilidad de tener automóviles, llegó la necesidad de sus propietarios de aprender a conducirlos, pero no la de aprender a diseñarlos o construirlos, ¿no? A nivel usuario, lo que necesita saber la gente es usar programas informáticos y apps, ¿pero programarlos…? Sin embargo, alguien dirá que el conductor que sabe mecánica puede reparar su coche por sí mismo. Y tal vez la persona que tenga un negocio y necesite un programa informático para gestionarlo lo hará mejor si sabe programar. Pues también podría ser.
La otra cuestión que vamos a tratar es cómo puede la gente aprender a programar sin que eso suponga algo así como que todo el mundo sea programador a nivel profesional (que igual así inquietamos un poco menos al programador del que os he hablado). Aquí la metáfora que se me ocurre es la siguiente: Una cosa es que todo el mundo deba saber leer y escribir, y otra que todo el mundo sea filólogo o lingüista. O saber sumar, restar, multiplicar y dividir sin que eso nos convierta en matemáticos. Igual por ahí van los tiros.
Lo que viene ahora le va a gustar más a nuestro programador, que es bastante jugón (lo cual suele ser un doble interés que habitualmente va unido). Obviamente, la edad en la cual nos entran mejor los conocimientos es la infancia, y es ahí donde, al igual que nos enseñan a hablar, leer, etc., nos tocaría (a nosotros ya no tanto, claro) aprender a manejarnos con el código, que no deja de ser también otro lenguaje, o de hecho varios. Pero parece ser que una buena forma de aprender a desarrollar software es jugando a ciertos videojuegos, cosa que lo normal es que haga las delicias de los chavales… Y no tan chavales, visto lo visto hoy en día… Así que igual no sólo les toca aprender (y jugar) a los más pequeños.
Para explicar mejor toda esta idea, os dejamos a continuación con un artículo que trata el asunto con más detalle. Así pues, primero a leer, luego a jugar, y luego ya ¡a programar! (lo de triunfar no os lo garantizamos, que si al final realmente acaba programando todo quisqui esto va a ser una jungla, al menos si todos pretendéis llegar a ser como Bill Gates…)
Consejos y juegos para aprender a programar desde casa
"La programación es el superpoder del siglo xxi, ya que permite a las personas pasar de ser consumidoras de tecnología a ser parte activa en su construcción". Así lo cree Elena Planas, directora del grado de Ingeniería Informática y profesora de los Estudios de Informática, Multimedia y Telecomunicación de la Universitat Oberta de Catalunya (UOC). Pero ¿está al alcance de todos? ¿Qué hace falta para aprenderla? ¿Cualquiera puede convertirse en programador, aunque sea a pequeña escala?
Según los expertos, en principio no hay requisitos imprescindibles. Como explica Joan Arnedo, profesor de los Estudios de Informática, Multimedia y Telecomunicación y director del máster universitario de Diseño y Programación de Videojuegos de la UOC, no es una habilidad compleja al alcance de solo unos pocos. "Es como ir a correr, escribir o dibujar; es cuestión de ponerse, poco a poco, y de ganas. La prueba está en el énfasis que en los últimos años se está dando a esta disciplina en los colegios, desde primaria".
Todo dependerá del nivel de complejidad de los programas que se quieran desarrollar, donde ya sí juega como factor el talento de cado uno y el nivel de práctica: no es lo mismo programar un pequeño robot que un sistema industrial a gran escala. Pero en ambos casos se necesita empezar por el primer paso, que es formarse en el pensamiento computacional, lo que el profesor de la UOC define como "aprender a estructurar cualquier problema que queramos resolver en pequeños pasos, así como algunos aspectos básicos de matemáticas y lógica, pero bastante sencillos".
Los propios juegos pueden ser la respuesta para ayudarnos a aprender a programar. Aunque con mecánicas y objetivos muy diversos, como explica Elena Planas, los juegos de programación tienen en común que permiten desarrollar, entre otras, capacidades como la resolución de problemas; el pensamiento lógico, estructurado y crítico; la creatividad, la imaginación y la capacidad de concentración. "Detrás de estos juegos se esconden muchos de los conceptos fundamentales de la programación —las instrucciones, los algoritmos, las variables, los bucles, la recursividad, los patrones, la abstracción y la generalización, la reutilización, la depuración y un largo etcétera—, pero todos estos conceptos se aprenden de manera natural a lo largo del juego, sin necesidad de conocer ni siquiera su nomenclatura técnica", resume Planas.
De hecho, uno de los puntos clave de este tipo de juegos es que el objetivo no es jugar para aprender a programar, sino aprender a programar jugando. Por esa razón, no hay un número de horas semanales, ni máximo ni mínimo, recomendable para aprender. Y tampoco la edad está acotada. "Aunque hay juegos con un aspecto más infantil, todas las personas, independientemente de su género y su edad, pueden jugar a este tipo de juegos. No hay requisitos para empezar, simplemente se necesita curiosidad y motivación", afirma la directora del grado de Ingeniería Informática de la UOC.
Juegos y apps
El mercado está lleno de opciones para aprender a practicar el pensamiento computacional, del que se habla en un reciente podcast de Despacho 42, el espacio de los Estudios de Informática, Multimedia y Telecomunicación de la UOC sobre cómo las personas nos relacionamos con la tecnología. Desde el caso más replicado en videojuegos, que es el de dar órdenes a un robot para que llegue a una destinación concreta evitando obstáculos, como Algo bot, hasta juegos de mesa perfectos para jugar en familia, como Quirky circuits o Robot turtles, pasando por juegos de lógica, como Turing tumble, indica Joan Arnedo.
En cuanto a los que quieran ir subiendo un poco más el nivel, el profesor de la UOC recomienda los juegos de la compañía Tomorrow Corporation: Human resource machine y 7 billion humans. Otra opción muy popular es el desarrollador Zachtronics, que incluso tiene un programa de licencias educativas. Su máximo exponente se encuentra en el videojuego Shenzhen I/O, en el que se debe crear "microcódigo eficiente en ensamblador para controlar placas de circuitos con memoria limitada (y consultando un manual impreso). Y sí, en este se pica código "de verdad", si bien el lenguaje es inventado", advierte el director del máster universitario de Diseño y Programación de Videojuegos de la UOC.
Y es que, según el profesor de la UOC, estos juegos son muy útiles "siempre y cuando se tenga presente que alguien que los practique va a desarrollar su capacidad de pensamiento computacional, pero no va a saber escribir código en un ordenador inmediatamente. Las excepciones son los juegos que realmente son "de programación", pues se basan exactamente en que el jugador resuelva problemas escribiendo código literal, sin metáforas gráficas, y de acuerdo con una sintaxis".
Una muestra de que estos últimos también están despertando cada vez más interés es que actualmente hay casi trescientos juegos catalogados como de "programación", según datos actualizados de la investigación Programming is Fun! A Survey of the STEAM Digital Distribution Platform, lo que en opinión de Arnedo indica que "es un género que, aun siendo nicho (no será como los juegos de rol de mundo abierto), ha encontrado su público y ha tomado tracción".
En cualquier caso, los juegos y las aplicaciones móviles no son la única manera de aprender a programar desde casa. Como recuerda Elena Planas, "también puedes comenzar el aprendizaje leyendo tutoriales, viendo videotutoriales, asistiendo a un club de programación de tu ciudad como Code Club o combinando varias opciones. Además, puedes encontrar múltiples recursos en internet, como code.org, una plataforma destinada exclusivamente a aprender a programar dirigida a niñas y niños y adultos".