Debemos distinguir dos respuestas.
(1) La primera respuesta es que la informática se trata de algunas ideas de alto nivel, y que los detalles no importan, ya que se pueden aprender “en el trabajo”. Es una racionalización. Citar a Knuth como ejemplo de este pensamiento realmente está pervirtiendo el trabajo de Knuth. Esto es lo que Knuth dijo sobre la educación en informática:
“Las personas que descubren el poder y la belleza de las ideas abstractas de alto nivel a menudo cometen el error de creer que las ideas concretas en los niveles inferiores son relativamente inútiles y podrían ser olvidadas. (…) por el contrario, los mejores informáticos son completamente basado en conceptos básicos de cómo funcionan realmente las computadoras, y de hecho que la esencia de la informática es la capacidad de comprender muchos niveles de abstracción simultáneamente “.
- ¿Qué es un índice agrupado?
- ¿Por qué se considera que los campeones de las hojas de cálculo son analistas de datos expertos mientras que los estudiantes de ciencias de la computación quedan en segundo plano?
- ¿En qué áreas podemos aprovechar los proyectos IOT con minería de datos?
- ¿Por qué se trata de "informáticos" y no de "nerds informáticos"? ¿De dónde viene la palabra 'científicos'?
- ¿Por qué Wikipedia no tiene una función de texto a voz?
De hecho, Knuth pasó mucho tiempo en detalles concretos, implementando TeX, por ejemplo. Por supuesto, que yo sepa, Knuth no pasó mucho tiempo jugando con Visual Basic. Pero diría que si hubiera estado interesado en diseñar interfaces de usuario, debería haber aprendido Visual Basic.
Es una excusa o una racionalización demasiado común decir que debemos centrarnos en las grandes ideas y que los detalles como el hardware o el lenguaje de programación son irrelevantes. No son.
La física es la misma en todas partes, sin embargo, los físicos insisten en hacer experimentos costosos en entornos difíciles. Del mismo modo, resolver problemas de juguetes utilizando software de juguetes no es lo mismo que resolver problemas reales (similares a la industria) con herramientas reales.
(2) La segunda respuesta es que seguir las últimas tendencias es una pérdida de tiempo. Eso está muy bien fundado.
Pero eso es completamente cierto donde quiera que vaya. No solo es cierto para las universidades, sino también para los profesionales. Muchas personas crean excelentes aplicaciones web con una arquitectura de software basada en LAMP que tiene al menos más de diez años.
La gente, en la industria, todavía usa el motor TeX de Knuth. Porque aún no está obsoleto. Y, francamente, Knuth es muy sabio para diseñar software que pueda resistir el paso del tiempo. Pero todos los programadores deberían apuntar a construir dicho software. Y de hecho, muchos lo hacen. Gran parte del software que usamos hoy fue escrito hace décadas.
El iPad podría ser el último juguete, pero las personas crean sus aplicaciones utilizando un lenguaje antiguo (Objetivo C) que ejecuta un compilador bastante convencional (clang).
Conclusiones:
(1) Los informáticos, y especialmente los que enseñan informática, deben preocuparse por las ideas concretas de bajo nivel. Y estas ideas requieren que nos ensuciemos las manos. Aprender el modelo relacional no es lo mismo que aprender SQL. Y aprender SQL es útil por derecho propio (y no solo para aplicaciones).
Entonces, si las computadoras funcionan con tarjetas perforadas, debe aprender sobre las tarjetas perforadas. Si están programados en C, debe aprender sobre C. Si están programados en algún lenguaje revolucionario nuevo, entonces necesita aprender sobre este nuevo lenguaje revolucionario.
Los profesores y profesores que no se adaptan son simplemente vagos o incompetentes.
(2) Nadie debería preocuparse indebidamente por las últimas tendencias. No sienta que tiene que adquirir la última tecnología que Microsoft está impulsando. Puede experimentar por diversión, pero antes de invertir un tiempo considerable en una nueva tecnología, asegúrese de que haya demostrado su eficacia. Y no necesita aprender sobre cada variación de una idea.