Enseñar a programar
--
Últimamente, son muchas las voces que dicen que se debería enseñar a programar en la escuela. Incluso Obama lo ha propuesto. Es un tema que me interesa bastante sobre el que llevo tiempo queriendo escribir — además de que me viene de perlas para aprovechar y probar Medium — . Uno de los puntos a favor que se plantea es que aporta muchas cualidades muy valiosas.
No negaré que saber programar aporte cosas. Enseña a pensar, a atacar los problemas poco a poco y por partes, a mantener tu cabeza organizada y los pensamientos en orden y te proporciona bastante más agilidad mental para aproximar nuevos problemas. Sin embargo, el fallo está en asignarle estas cualidades únicamente a la programación
Ahora mismo, hay un fallo en la educación, al menos en la española, y es que no se enseñan capacidades analíticas sino que se enseña a memorizar. Y eso, en un mundo en el que tenemos casi todo el conocimiento mundial en la palma de la mano, es cada vez más inútil.
Corregir ese fallo pasa por entrenar a los alumnos a cuestionarse las cosas y a abrirse sus propios caminos mentales. Enseñar programación es la opción más sencilla, pero también la más difícil.
Lo barato acaba saliendo caro
Se puede considerar que programar es una actividad que requiere mucho razonamiento y poca memoria. No se puede ser un buen programador sin entender qué estás haciendo y por qué. Es la actividad analítica por antonomasia. Así que si queremos enseñar a ser analíticos, lo fácil, lo barato, es enseñar a programar.
Sin embargo, puede que esa opción cause bastantes más problemas. El primero es que no puedes enseñar a programar a secas. Tienes que enseñar a programar algo. Es imposible decirle a un alumno “esto es un bucle, esto una función” y pretender que de ahí saque algo en claro. Hay que enseñar algo que se pueda hacer con esas herramientas.
Bien, ¿qué hacemos? Obviamente, no podemos seguir el mismo enfoque que se sigue en la Universidad. No podemos plantear una asignatura de programación en la ESO en la que los contenidos sean “programación de estructuras de datos comunes” o “programación orientada a objetos”. No podemos enseñar a programar desde las bases por dos razones.
La primera es que estamos dando un conocimiento muy específico y poco aplicable para cualquiera que no se vaya a dedicar profesionalmente a la informática. La segunda es que, desde mi punto de vista, resulta muy difícil enseñar esas bases en formación secundaria manteniendo la atención de los alumnos.
Entonces habría que saltarse las bases y simplemente crear algo. Aquí tenemos una balanza a equilibrar: cuanto más simple sea lo que queramos crear, menos interés tendrán los alumnos; y cuanto más complejo sea más se notará la falta de conocimiento de las bases, del “qué está pasando por debajo” y deterioraremos la formación. Además, el hecho de crear algo más simple implicará que enseñaremos menos a pensar y programar.
Alternativas
Como ya he dicho, lo fácil, el parche, es enseñar a programar. Sin embargo, dar una buena formación en este sentido es complicado y podemos estar perdiendo el tiempo. Lo difícil, pero lo que merece la pena, es tener menos mentalidad de programador y dejar de pensar que haciendo algo desde cero todo será bonito: hay que arreglar las asignaturas actuales y reenfocarlas.
Matemáticas es un buen ejemplo. Ahora mismo, los libros de Matemáticas tienen muchísimos ejercicios que consisten en aplicar literalmente la fórmula que viene en el libro. Los ejercicios que requieren salirse de los carriles marcados son los difíciles, y muchas veces quedan ignorados. No se fuerza a pensar, no se vinculan conocimientos e ideas entre sí. Hay que enseñar a razonar, que las soluciones no tienen por qué estar en el libro, forzar a buscar nuevos caminos para afrontar problemas. De la misma forma, la Historia también se puede plantear de otra manera. No como memorizar qué pasó, sino entender por qué pasó.
También es muy necesario dar la relevancia que merecen a los aspectos analíticos que ya se imparten. El ejemplo más claro de esto es el análisis sintáctico de oraciones. Requiere interiorizar (no memorizar) todos los conceptos, entender bien la oración que se plantea y después ir uniendo las piezas. Es una tarea muy interesante, pero no se le da importancia cuando se enseña. Poca gente sabe decirte para qué sirve el análisis sintáctico cuando es extremadamente importante para expresarte bien y, sobre todo, para entender cómo expresarte bien. Nos enseñan una habilidad útil, que requiere usar nuestra cabeza, pero no nos hacen valorarla como lo que realmente es.
Desde mi punto de vista, dar programación para enseñar a pensar es un parche que no acabaría funcionando bien. Ya tenemos las herramientas para enseñar a pensar y a resolver problemas. Lo que hace falta es usarlas bien, no añadir otra más.
Programación como habilidad en sí misma
El otro punto de vista para decidir enseñar programación en el colegio es verlo como un fin en sí mismo y no como un medio para obtener una mente más analítica. Programar porque será una habilidad útil dado el mundo cada vez más informatizado en el que vivimos.
Es cierto que no estaría mal. Todo el mundo se beneficiaría de saber mejor cómo funciona un ordenador, o cómo hacer un script para ahorrarse tareas repetitivas. Ahora bien, ¿merece la pena?
Además, hay que tener en cuenta que, por suerte o por desgracia, la informática se está enfocando cada vez más en abstraer al usuario de los detalles del ordenador. En muchos casos esto repercute en un uso más sencillo. En otros, en menos capacidad de control. ¿O cuándo fue la última vez que pudistéis ejecutar un pequeño script en Python para hacer una tarea repetitiva en vuestro teléfono, por ejemplo? Por poco que nos guste, cada vez vamos a tener menos posibilidades de tomar el control de los dispositivos informáticos que usemos. En el futuro, a poca gente le servirán esas habilidades para programar.
Me gustaría pensar que, por otra parte, enseñar a los alumnos a programar cambiaría esa tendencia, pero creo que ya es demasiado tarde para lograrlo.
Por último, el tiempo es limitado, y programar no es la única habilidad interesante de la que carece la educación. Diría que es especialmente sangrante la falta de formación económica (en España, si haces el bachillerato de ciencias no recibes nociones sobre economía). Hay que elegir qué podemos añadir al currículo actual, y puestos a hacerlo yo me quedaría precisamente con Economía.
Con todo esto no quiero decir que aprender a programar sea malo. Todo lo contrario, es muy interesante y te abre muchísimas puertas. Sin embargo, no considero que sea la solución que necesita la educación.