Tres prejuicios que conspiran contra la programación
Tal vez por mi insistencia al respecto, me preguntan a menudo por qué creo que los chicos tienen que aprender a programar desde la escuela primaria (ni hablar de la secundaria) y por qué sostengo que esa disciplina tiene que ser una materia por sí misma.
Ahora, por la Resolución 343/18 del Consejo Federal de Educación, a la programación se ha sumado oficialmente la robótica. Es un avance enorme que, personalmente, aplaudo. Los esfuerzos de la Fundación Sadosky van desde hace unos 8 años en la misma dirección. Son signos de que por fin está empezando a cambiar el viento.
Es decir, que de a poco va calando el concepto de que es fundamental que los chicos tengan idea de cómo funciona la mente de las máquinas. Pero es raro que estas disciplinas todavía no sean aceptadas como una materia autárquica (aunque de ninguna manera un silo estanco; nada en el conocimiento humano es estanco). Dentro de 100 años van a preguntarse cómo fue posible que la programación, la robótica y la informática no fueran una asignatura como cualquier otra.
Mi sensación es que existe un prejuicio contra la programación. Ese prejuicio dice que escribir código es extremadamente difícil y demasiado específico; algo así como manejar una grúa torre, una nave espacial o un tomógrafo. Por supuesto, si alguien proclamara que los chicos deben aprender diagnóstico por imágenes, tendría algún sentido preguntarse si es indispensable. Porque nadie tiene un equipo de resonancia magnética en su casa.
Esto era igualmente cierto, medio siglo atrás, con las computadoras. Nadie tenía una. Del todo. Hoy, en cambio, llevamos una computadora en el bolsillo. Como mínimo, una. Te subís a un auto que utiliza media docena de cerebros electrónicos. Y en el hogar, bueno, casi no existen dispositivos que no tengan alguna clase de computadora en su interior. En casa ya trabaja un robot, vaya.
Además, se cree que escribir código es algo aburrido, especialmente para un niño.
Las tres patas de este prejuicio no siempre van juntas. He oído gente que afirma las tres cosas a la vez y otras que creen que, simplemente, enseñar programación en la escuela es inútil o innecesario. En el fondo, como espero demostrar en los siguientes párrafos, creo que estos prejuicios se originan en una cuestión de poder; como suele ocurrir con los prejuicios.
Programar es difícil
Bueno, definamos difícil, para empezar. La RAE dice que es algo "que presenta obstáculos". Aprender a leer, hacer cuentas, acordarse los nombres de los ríos de Europa, bailar, jugar bien a la pelota o tocar el piano, todo esto presenta obstáculos. Aprender, diría, es superar obstáculos. Así que no nos sirve predicar tal cosa de la programación, porque sería redundante.
Ahora, ¿cuán difícil es aprender a escribir código? Como ya conté en más de una ocasión, hice mis primeros palotes con el lenguaje Basic de una calculadora HP-65, hace más de cuatro décadas. Tenía 15 años y aprendí a escribir código solo. Sin Internet ni nada. Con lápiz, papel y el manual de la calculadora. Muy pronto estaba desarrollando mis propios programas (y cumplían tareas bien definidas y pragmáticas que me ayudaban en el mundo real; no eran meros ejercicios teóricos).
En el colegio nos enseñaban latín (al griego clásico los prejuicios ya habían logrado desterrarlo, por desgracia). El latín sí que era difícil. Mortalmente aburrido y más complicado de lo que a veces podía comprender. Programar, por contraste, me resultó fácil y entretenido.
Agradezco haber cursado la lengua de Virgilio, sin embargo, porque me serviría como base para aprender idiomas modernos rápidamente, porque me permitió leer al increíble Catulo y porque volvería a encontrármela en la facultad de Filosofía y Letras. Además, mi choque contra el griego clásico, en la universidad, fue mucho menos duro que para los que no sabían latín. Porque no, ningún conocimiento es en vano y todo se conecta con todo. Los silos estancos son siempre ilusorios.
En todo caso, el latín me costó muchísimo más que programar en Basic. A la misma edad.
Es cierto que aquellos primeros lenguajes eran muy elementales, pero nadie está hablando de enseñarles a los chicos cosas esotéricas. Incluso C o C++ serían inviables en el nivel primario. Pero existen muchos lenguajes diseñados para chicos. Pueden verse ejemplos (en inglés) aquí y aquí.
Por supuesto, programar profesionalmente es muy arduo, lo mismo que escribir profesionalmente. Sin embargo, a nadie se le ocurriría dejar de impartir la lectoescritura porque el porcentaje de alumnos que se convertirán en grandes plumas es muy pequeño. No es raro, se me ocurre, que los prejuicios que hay contra la programación sean casi un calco de los que había contra la alfabetización, cuatro o cinco siglos atrás.
De hecho, hay mucha similitud (incluso en lo que difieren) entre escribir español (o cualquier otro idioma) y escribir código con los más altos estándares de calidad. Saldrá columna en algún momento sobre esto.
¿Aburrido?
Escribir código es tomar el control, es una forma de poder. Eso nunca resulta aburrido. No te olvidás nunca del día en que tus primeras cuatro o cinco líneas de código instruyeron a una máquina o a un robot para que hiciera lo que vos querías que hiciera. Obviamente, fue alguna tarea sencilla ("Hola, mundo", digamos), pero ese momento no se borra nunca más de tu memoria.
Ahora, si tus primeras líneas de código no hacen lo que pretendías, ahí no podés dejar de pensar. Cualquier programador se los dirá: tu cabeza no para hasta que le encontrás la vuelta, hasta que descubrís por qué esa variable estaba cambiando de valor cuando no debía o hasta que te das cuenta de que a esa función le faltaba un signo o un paréntesis. Se llama depurar.
Poder, de nuevo. Es como decir: "Esto no me va a ganar". Es mucho más adictivo que cualquier otra disciplina de la que tenga memoria. Se parece, me atrevo a decir, a los videojuegos.
Como adelanté, creo que el hecho de que programar te otorgue un poder que (por ahora) no tiene la mayoría de las personas está en la base de los prejuicios que existen en su contra. Estábamos tan tranquilos y, ¡paf!, casi de un día para el otro el mundo se dio vuelta y quedó en manos de algo llamado "código".
Inútil e innecesario
Cuando hablamos de programación tratamos de tecnologías que avanzan muy rápidamente –al revés que, digamos, los idiomas o la geografía–, así que anticipar si la programación será un conocimiento innecesario y gratuito me parece temerario. Es altamente probable que buena parte del código en el futuro mediato sea producido por la inteligencia artificial (de hecho, esto ya es posible). Podría deducirse entonces que es inútil crear una materia de programación y robótica. Todo lo contrario, porque la inteligencia artificial también es código.
En mi opinión, en un mundo donde los algoritmos ocuparán una parte sustancial de los empleos, un chico que entiende qué es el código va a tener muchas más posibilidades de prosperar. O, al menos, de evitar los empleos que podrían conducirlo a un callejón sin salida.
Estamos viviendo una época única que requiere soluciones muy creativas. Hay una sola cosa que no podemos darnos el lujo de hacer: esperar. Como dije, hay avances loables y tengo la impresión de que empieza a aceptarse la idea de que la programación (y todo lo demás) no es algo estratosférico, sino un conocimiento esencial para comprender el mundo. Pero si el ejercicio de darle órdenes a las máquinas no se convierte en una materia independiente, estaremos siempre corriendo detrás de los hechos. Es fácil demostrar esto, observen.
"Creo que lo más importante no es que se consuman computadoras, que nos convirtamos en importadores, armadores y usuarios de computadoras, aunque esto representa o puede representar un avance, sino desarrollar una cultura algorítmica. El juego puede ayudar a la familiarización del niño con la computadora; lo importante es que sea un primer paso y que el chico desarrolle su capacidad de programar." Esto lo dijo Rodolfo Terragno hace casi 33 años. Los chicos que empezaban la primaria en esa época hoy tienen alrededor de 40. Y, salvo los que se hicieron ingenieros en sistemas o los que fueron alumnos de algunas secundarias pioneras, no tienen ni idea de qué es programar. En pleno siglo 21.