Didáctica de la Informática

19 noviembre 2005

El mejor primer lenguaje

¿Cuál es el lenguaje de programación más adecuado para aprender a programar? Esa es una de las grandes preguntas que todo profesor de Programación se ha planteado, al menos, una vez durante su actividad laboral. Yo mismo me he hecho esa pregunta innumerables veces, y creo que aún no dispongo de la respuesta correcta. Todo lo más, me aproximo.

Empecemos por concretar el nivel educativo del que estamos hablando. No es lo mismo enseñar a programar a un alumno de ESO o de Bachillerato, que a uno del Ciclo Superior de Informática, o a un universitario. Los objetivos a plantear son distintos. Y, aunque en un principio pudiera parecer lo contrario, eso nos supone una limitación sobre todo en el caso de los Ciclos. Efectivamente, los objetivos de una asignatura de Programación en la Enseñanza Secundaria resultan ser más generales, nos ofrecen mayor flexibilidad y, sobre todo, nos da mayor capacidad de maniobra por cuanto en los Ciclos nos vemos en la «obligación» de tener en consideración al mercado laboral. A fin de cuentas, los Ciclos Formativos tienen como finalidad conseguir la incorporación de esos futuros profesionales en el mercado de trabajo, y las expectativas aumentan enormemente si su formación se basa en un lenguaje que el mercado demanda.

Ahora bien: ¿debemos basar la didáctica de la Programación exclusivamente en las demandas del mercado? ¿Debe la enseñanza de la Informática en general convertirse en una campaña de marketing al servicio de las grandes compañías de software? ¿O por el contrario debemos seleccionar en cada caso la opción más adecuada en base únicamente a criterios objetivos y pedagógicos?

Todos hemos oído más de una vez (sobre todo si nos dedicamos a ésto) aquello de «hay que enseñar Visual Basic, porque es lo que se pide», o algo como «¿Eiffel? ¡Pero si eso no sirve para nada!». Son claros ejemplos de selección artificial. Las opciones se evalúan no en base a su calidad intrínseca o a su aptitud pedagógica, sino a criterios externos a menudo desvinculados de su uso como herramienta de aprendizaje. A menudo, los que piensan así olvidan los tiempos en los que ellos mismos eran absolutos novatos en la materia, y en los que cualquier ayuda, por pequeña que fuese, era bien recibida. Olvidan que un buen lenguaje no tiene por qué ser un lenguaje didáctico, y que, a menudo, esos dos conceptos resultan antagónicos.

Hay un viejo refrán que dice: «cuando lo único que tienes es un martillo, todos los problemas te parecen clavos». No perdamos nuestro norte: no se trata de formar a profesionales que de la noche a la mañana sean capaces de construir complejas aplicaciones conociendo únicamente la herramienta que le enseñaron. No existe la solución perfecta, única y válida para todos los casos («no silver bullet», dicen los ingleses), así que no debemos esperar que con un sólo curso de Programación en un sólo lenguaje o método vamos a lograr una formación integral y completa de nuestros alumnos. Bajo esa perspectiva, escoger el primer lenguaje en base a su utilidad práctica o su penetración en el mercado resulta poco acertado.

Pero hay más: se conocen pocos mercados tan dinámicos, cambiantes e incluso «traicioneros» como el mercado informático. Lo que hoy es ampliamente utilizado, mañana puede quedar obsoleto por la aparición de otros productos. Existen innumerables ejemplos de soluciones, productos y herramientas que parecían enormemente prometedores al nacer, pero que resultaron rotundos fracasos. Aquellos profesionales que invirtieron tiempo, dinero y esfuerzo en aprender a usarlos no obtuvieron ninguna recompensa. Esa inversión no proporcionó ninguna rentabilidad. En cambio, otros métodos o tecnologías que en su momento no parecían tan prometedoras resultaron ser éxitos colosales.

La moraleja del cuento: «no debemos basarnos en lo que el mercado solicita, espera o desea». El mercado cambia, se equivoca, rectifica (a veces)... El mercado evoluciona con el tiempo, y su evolución es tan rápida y a veces tan sorprendente que resulta imposible predecir su tendencia.

Por todo ello, debemos elegir la tecnología, la herramienta o el producto que mejor se adapte a nuestro objetivo, y dejar a un lado los compromisos mercantilistas o las consideraciones de cualquier otra índole. Debemos enseñar a programar, y para ello debemos usar la mejor herramienta para aprender a programar. Punto.

Eso sí; no cabe duda de una cosa: si podemos usar una herramienta que, además de ser didáctica, resulta ser práctica (es decir, que no es un mero juguete educativo, sino que se puede usar para crear programas reales), entonces mejor que mejor. ¿Existe esa herramienta? Yo creo que sí, pero eso es algo que discutiremos en el siguiente envío.