Etiquetas

, , , , ,

Martín Varsavsky escribió El Paro, el problema número uno de España se agrava donde presenta algunas hipótesis o preguntas sobre las razones del aumento del paro. Se podrían discutir todas las razones, pero me centraré en una de las que creo puedo responder con más conocimientos de causa que otras:

1) Porque España, desde Cataluña a Andalucía, educa a los estudiantes de una manera que los hace poco atractivos para los empleadores. Hasta que no se sintonicen las carreras con lo que las empresas necesitan seguiremos con dificultades para emplear a jóvenes.

Historia de este apunte que casi queda en borrador

Quise responderle a Martín inmediatamente en un comentario, luego pensé que se merecía un poco más de información de contexto por lo que sería mejor en un apunte. Al final me quedó un apunte kilométrico y donde me metía en «meta temas» tan difíciles de explicar en un apunte que tuve que hacer dibujos para incluso aclararme yo mismo.

Cada vez que intentaba explicar uno de esos esquemas me daba cuenta que le faltaba algo, lo rehacía e introducía otros conceptos que debía explicar el porqué los introducía. Eso hacía que sea más largo y pesado. Lo iba a publicar el viernes pasado pero no estaba convencido. Aunque le prometí por email a Martín que lo haría lo dejé para pensármelo mejor. El sábado lo leí y no me gustaba nada, me parecía demasiado pretencioso y que me metía en camisas de once varas. Empecé a reducirlo y quitar aquello sobre lo que no estaba del todo seguro. Al quitar cosas me dí cuenta que hacían falta otras y que debería rehacer los esquemas, tanto mentales como los dibujos.

Al final terminé cambiando muchas cosas, pero el sábado a la noche me parecía que todavía no alcanzaba a explicar del todo bien la idea de fondo. Tampoco veía cómo poder llegar a dar las respuestas. Era como estar en un túnel muy largo sin ver la salida. Me puso nervioso, me cabreé y casi pensé en dejarlo, que no tenía sentido para un apunte. Lo dejé estar para mirarlo el domingo, después de ir a la playa y tomar un poco de sol.

En la tarde del domingo me convencí que no era adecuado para un apunte de un blog, que en todo caso estaba tomando cuerpo para presentarlo en una reunión o congreso sobre el tema. Pero luego pensé que al fin y al cabo el proceso de intentar elaborar una respuesta a una pregunta aparentemente simple y tonta me había hecho pensar y aclarar muchas cosas, me salió un ensayo perfecto, en el sentido estricto de la palabra: una reflexión personal no academicista con el objetivo de aclarar ideas.

Al final, domingo a las 20 horas, decidí que lo publicaría. Dado que me tomó trabajo y que publicar unas ideas en un blog y someterme al peer review de los lectores no es lo más adecuado pero es más simple y menos doloroso que hacerlo en un congreso especializado… y no se pierde nada. Sobre todo no perdería las horas dedicadas para que quede como un borrador nunca publicado.

Así que decidí publicarlo y tomé aliento para acabarlo, pero debía eliminar varias partes demasiado pesadas y acortar el túnel, sino no acabaría nunca, se nota como el final es casi apresurado.

Sabréis disculparme las simplificaciones y hacer un esfuerzo en captar las ideas de fondo. Tampoco creo que diga demasiadas burradas, y al fin y el cabo sólo son pensamientos parciales en forma de apunte. Para eso es un blog personal, ¿no? 😉

El conocimiento de los profesionales

Podríamos decir que un «profesional» –en el sentido laxo, no necesariamente con título profesional– o «ingeniero» tiene tres conocimientos o entrenamiento en tres áreas distintas:

  1. Ciencia
  2. Tecnología
  3. Herramientas

Así se pueden definir esos tres conceptos fundamentales, y qué es ingeniería.

Ciencia es por un lado, el proceso mediante el cual se adquiere conocimiento, y por el otro, el cuerpo organizado de conocimiento obtenido a través de este proceso.

Tecnología es el conjunto de saberes que permiten fabricar objetos y modificar el medio ambiente, incluyendo las plantas y animales, para satisfacer las necesidades y los deseos humanos. […] En la sociedad, la tecnología es consecuencia de la ciencia y la ingeniería…

Herramienta. Es frecuente usar el término herramienta, por extensión, para denominar dispositivos o procedimientos que aumentan la capacidad de hacer ciertas tareas. Tal es el caso de las herramientas de programación, herramientas matemáticas o herramientas de gestión.

Ingeniería. Conjunto de conocimientos y técnicas que permiten aplicar el saber científico a la utilización de la materia y de las fuentes de energía. O según la Wikipedia: Es la profesión que aplica conocimientos y experiencias para que mediante diseños, modelos y técnicas se resuelvan problemas que afectan a la humanidad. […] La ingeniería es la profesión en la que el conocimiento de las matemáticas y ciencias naturales, obtenido mediante estudio, experiencia y práctica, se aplica con juicio para desarrollar formas de utilizar, económicamente los materiales y las fuerzas de la naturaleza para beneficio de la humanidad y del ambiente. […] Otro concepto que define a la ingeniería es el arte de aplicar los conocimientos científicos a la invención, perfeccionamiento o utilización de la técnica en todas sus determinaciones.

Ciclos de vida

Podemos ampliar brevemente las definiciones con los «ciclos de vida» de los modelos científicos, las tecnologías y las herramientas.

Los modelos científicos pueden durar y ampliarse durante cientos de años, hasta que aparezcan modelos nuevos que «falsen» o simplifiquen radicalmente al anterior –llamada cambios de paradigmas por Kuhn–. Así por ejemplo el modelo de la gravitación universal de Newton duró doscientos de años hasta que aparecieron los modelos de la relatividad o le física cuantica. En la informática tal como la conocemos ahora quizás el modelo matemático fundamental es el modelo computacional de la máquina de Turing y arquitectura Von Newman.

Las ciencia de la computación es una ciencia formal que no está del todo madura –por lo que crece rápidamente–, aunque el cuerpo del conocimiento se incremente a gran velocidad, todavía no hemos tenido cambios de paradigmas fundamentales como en otras ciencias naturales (posiblemente la informática cuántica sea el orígen de un «cambio de paradigma»). Los conocimientos de la ciencia informática incluyen a muchos conceptos denominados comunmente como «principios fundamentales». En otro casos como las áreas consideradas para la definición del cuerpo de conocimiento de las ciencias de la computación (CC2001): estructuras discretas, fundamentos de programación, algortimos y complejidad, arquitectura y organización. sistemas operativos, lenguajes de programación, gráficos, interfaces, sistemas inteligentes, ciencia computacional y métodos numéricos, etc.

Aunque cada vez aparecen nuevas conocimientos derivados del avance tecnológico, el ciclo de vida de esos conocimientos es bastante largo, todavía no hemos visto que hayan sido superados por modelos diferentes.

The field, moreover, continues to evolve at an astonishing pace. New technologies are introduced continually, and existing ones become obsolete almost as soon as they appear. […] When CC1991 was published, for example, networking was not seen as a major topic area, accounting for only six hours in the common requirements. The lack of emphasis on networking is not particularly surprising. After all, networking was not yet a mass-market phenomenon, and the World Wide Web was little more than an idea in the minds of its creators.CC2001 de la ACM

Los ciclos de vida de las tecnologías son muchos más breves que los científicos, ya que sus mejoras son influidos por dos factores, por las mejoras científicas, de las técnicas y además de las «innovaciones» que supone la ingeniería al campo. Ejemplos de tecnologías y técnicas informáticas típicas son el desarrollo de los lenguajes de alto nivel (compilados, dinámicos), mecanismos y abstracciones de control de concurrencia (semáforos, tareas, hilos, monitores, etc.), protocolos, arquitecturas de software, etc. Mientras que el modelo fundamental no ha cambiado desde los inicios de la informática moderna (en la década de 1940-1950), las tecnologías sí que han cambiado mucho haciendo cada vez un mejor y mayor uso del conocimiento científico adquirido. El ciclo de vida las tecnologías es más breve, y muchas han caído en desuso se han vuelto obsoletas, pero aparecen nuevas.

Much of the change that affects computer science comes from advances in technology. Many of these advances are part of a ongoing evolutionary process that has continued for many years. Moore’s Law […] continues to hold true. As a result, we have seen exponential increases in available computing power that have made it possible to solve problems that would have been out of reach just a few short years ago. Other changes in the discipline, such as the rapid growth of networking after the appearance of the World Wide Web, are more dramatic, suggesting that change also occurs in revolutionary steps. Both evolutionary and revolutionary change affects the body of knowledge required for computer science and the educational process.CC2001 de la ACM

Los ciclos de vida de las herramientas son aún más breves. Un ejemplo simple. Desde la mejora de las tecnología de interfaz humana –sobre todo cuando se pasó de las tarjetas perforadas a los teletipos o pantallas con teclado– hizo falta una forma cómoda de introducir texto. Así nacieron los editores de texto –siendo emacs y ed/vi los históricos que aún perviven gracias a su evolución–. A medida que mejoró la tecnología, los editores de texto se hicieron más potentes hasta el punto que podía ser usado para tareas genéricas que no necesariamente estaban ligadas al desarrollo de programas, así evolucionaron a los «procesadores de texto». Los grandes avances científicos y tecnológicos (gráficos, interfaces, potencia de CPU, memoria) han provocado estos cambios, aunque sigan usando todavía las mismos «conocimientos científicos» y muchas de las técnicas que ya usaban en sus inicios. Otros ejemplos de herramientas son: lenguajes/compiladores, editores HTML, herramientas de administración, programas de CAD, ofimática, etc.

El ciclo de vida de las herramientas es muy breve, unos pocos años en el caso de aplicaciones informática o unas pocas décadas para las herramientas que forman parte de las infraestructura básica (lenguajes, compiladores, librerías).

Algunos se preguntarán dónde encajan las metodologías formales de ingeniería del software (como las funcionales o estructuradas tales como la de Gane y Sarson (STRADIS), Yourdon o DeMarco, las orientadas a objetos y las ágiles como XP o Scrum). Claramente no pertenecen al corpus del conocimiento científico (seguramente tanto Kuhn como Popper estarían de acuerdo), pero no se podría asegurar si pertenecen al campo de las «tecnologías» o de las «herramientas». Desde mi punto de vista y siguiendo la definición procedimientos que aumentan la capacidad de hacer ciertas tareas son una herramienta de la ingeniería, aunque quizás parte de los modelos de procesos desarrollados en algunas metodologías puedan ser considerados como parte de las tecnologías (de hecho hay muchísimas herramientas comerciales basados en Gane/Sarson y Yourdon, incluso algunos libros las recomiendan para la documentación de patentes).

No habrá un consenso definitivo. En todo caso sus ciclos de vida son relativamente cortos, a medio camino entre las tecnologías y las herramientas. Por ejemplo la metodología de Gane-Sarson [1977] dominaba en los 80, a mediados de los 90 lo hacía Yourdon [publicada en 1991-1993, aunque desarrollada en los 70 y 80] , hoy predominan las ágiles como RAD [1991], Scrum [1995], XP [1999] y en España la Métrica 3 [2003] (aunque Métrica [1989] estuvo basada en la británica SSADM [1981], basada a su vez en la de Gane-Sarson, Yourdon y Merise [1978]) [*].

[*] Algunos se preguntarán por qué no menciono al ISO 12207. Éste es un complemento a la gestión institucionalizada, no es ni sustituye a métodologías formales, sólo provee «framework» y un conjunto de bloques de construcción del ciclo de vida del software para su uso más conveniente y efectivo en las organizaciones [1, 2]

La ingeniería informática

Un ingeniero –titulado– en informática es bastante «especial» con respecto a otras ingenierías. El hecho que no tengamos una carrera «licenciatura en ciencias de la computación» —como propone la ACM— es una muestra muy evidente. Lo explico con un cisma bien conocido, el de los ingenieros eléctricos anglosajones de la física.

Hasta principios del siglo 20 no existía la carrera de ingeniería eléctrica, era un tecnología cuyo uso no estaba del todo extendida y que estaba evolucionando a pasos agigantados. Durante los primeras décadas de ese desarrollo eran los propios físicos lo que cumplian el papel de «ingenieros». A principios del siglo pasado se produce ese «cisma» que separó a la ingeniería de su origen científico. Así la licenciatura en física supo mantener su contenido altamente centrado en la ciencia mientras que la ingeniería se enfocó más a la parte tecnológica. Es claro que los ingenieros eléctricos siguen teniendo una formación y entrenamiento científico importante –aunque menor a los físicos– ya que esos conocimientos son indispensables para la cumplir con uno de sus objetivos: arte de aplicar los conocimientos científicos a la invención, perfeccionamiento o utilización de la técnica.

El ejemplo de la ingeniería eléctrica anglosajona es igualmente aplicable al caso español de las ingenierías industriales. Las escuelas de ingenierías industriales se crearon en 1850. Fue esta carrera el «cisma» de la física y la que luego absorbió a la ingeniería eléctrica (llamada en sus principio «electrotecnia», sus primeros trabajos se remontan a 1852).

En cambio en la informática no sufrimos todavía ese «cisma». Desde el principio las carreras tradicionales de informática fueron una mezcla de ciencias y de ingenieria, a la inversa de la física-ingeniería eléctrica/industrial. No estoy seguro sobre cuáles han sido las causas, pero sospecho que tiene mucho que ver con la «tipo de ciencia» y la transversalidad con otras ciencias e ingenierías.

A diferencia de la física que es una ciencia natural, la ciencia informática es una ciencia formal, más similar a las matemáticas que a la física. Pero las relaciones son más complejas. Los modelos informáticos son modelos matemáticos, pero cuya aplicación a la «naturaleza» o para resolver problemas –i.e. la ingeniería– depende de las tecnologías electrónicas, que a su vez dependen de las conocimientos y avances científicos de la física.

Computing is a broad field that extends well beyond the boundaries of computer science […] Computer science draws its foundations from a wide variety of disciplines. Undergraduate study of computer science requires students to utilize concepts from many different fields.CC2001 de la ACM.

Esa interdependencia es bastante evidente si se analiza la historia de la informática. Todavía hoy en los congresos y revistas actuales la participación de matemáticos y físicos –incluso ingenieros eléctricos/electrónicos– es bastante importante.

¿Qué se estudia en la educación formal?

El ideal de todos seguramente sea el modelo de renacentistas famosos como Leonardo Da Vici, o Galileo Galilei (figura 1).


Figura 1: El modelo renacentista

Desafortunadamente no vivimos en la Florencia del Renacimiento. Afortunadamente para la evolución de la especie, las ciencias y tecnologías han avanzado tanto que muy improbable que una persona pueda dominar y ser un experto en la ciencia, tecnología y herramientas disponibles, incluso para una «ciencia» individual.

A la hora de desarrollar los planes de estudios formales hay que encontrar el balance en el enfoque –científico, ingeniería, técnico, o «especialista»– y en el tiempo que se dedicarán a esos estudios. Dependiendo de ello se tienen que trazar los planes buscando el equilibrio.

El ciclo de conocimientos –ciencia, tecnología o herramientas– tienen una gran influencia. Así por ejemplo no tiene sentido hace 5 años para la enseñanza de herramientas si éstas ya serán obsoletas cuando los alumnos acaban la carrera.

Así el conocimiento que se enseñan en las carreras es aproximadamente como se muestra en la figura 2 –no intenté en ningún caso que haya «escala» precisa, por ejemplo el área total no tiene relación con el esfuerzo o tiempo necesario para el estudio–.


Figura 2: Conocimientos adquiridos durante educación formal

La superficie total coloreada indica más o menos la cantidad de conocimiento que se puede dar. El tipo de carrera determina cómo es la distribución del conocimiento. Así las carreras más científicas requieren de una mayor formación en conocimiento de ciencias y menos en tecnologías. Los ingenieros requieren mas formación en las tecnologías y de herramientas. Los tecnicos (FP o Ciclos formativos) prácticamente no estudian ciencia y dedican su tiempo a aprender más las herramientas (además son de duraciones más cortas que las dos anteriores). Por último existen cursos cortos, tanto de «academias» como de postgrados, cuyo objetivo es la de entrenar en determinadas herramientas.

La situación real no es tan uniforme como la ideal de la figura 1. En cualquier carrera, de cualquier universidad quedan agujeros del conocimiento (figura 3).


Figura 3: Hay pequeños agujeros de conocimientos

Estos agujeros se producen por razones diversas:

  • Culpa del profesor, por desconocimiento, no estar actualizado o no cumplir con los programas.
  • Culpa de los planes de estudio, por no estar actualizados o no ser completos para el cuerpo de conocimiento requerido para una carrera.
  • Culpa de los alumnos, que se han esforzado en saber sólo aquello que sabría iría al examen, o en no hacer –i.e. copiar y plagiar– o participar en las prácticas (en general es culpa de la falta de motivación).
  • Falta de tiempo, los imprevistos –enfermedad, conferencias, viajes– pueden provocar retrasos en las asignaturas que impidan enseñar o aprender adecuadamente todos los temas programa original.

Esos pequeños agujeros no son tan graves, con un poco de estudio, incluso una simple lectura de sitios especializados, ayudan a cerrarlos muy rápidamente: son pequeños y se tiene toda la información «contextual» que hacen de soporte.

Pero en informática el problema es un poco más marcado. Como la ciencia y la tecnología avanzan tan rápidamente, los planes de estudios quedan casi obsoletos –o mejor dicho, demasiado incompletos– a los pocos años de aprobarse, tal como explican en CC2001. Es decir que cumpliendo estrictamente los planes de la educación formal ya estamos dejando agujeros sin rellenar.

Esa distorsión de los planes de estudios se suele suplir con la buena voluntad de profesores, asignaturas optativas y cursos ad-hoc. Pero sobre todo se resuelve con alumnos muy motivados y una ambiente que permita el intercambio de conocimiento. El resultado: la formación continua y autodidacta no sólo es importante para los profesores, también es imprescindible para los alumnos incluso antes que acaben su carrera.

La formación de los profesionales no acaba al salir de la universidad. Así un científico tendrá que profundizar en ciertas áreas de su ciencia para ser capaz de comprender a fondo lo que se dice en los artículos especializados —papers y journals— y poder aportar nuevo conocimiento.

Los ingenieros informáticos tendrán que profundizar en áreas muy específicas de la ciencia, dominar determinadas tecnologías y aprender a fondo algunas herramientas (lenguajes, metodologías, etc.). Además de ello deberán mantenerse al día sobre lo nuevo que está ocurriendo en los tres campos.

Así un profesional experimentado y con la especialización, entrenamiento y formación continua adecuada mantiene las «zonas coloreadas» como cuando acabo su carrera, pero además es un experto en áreas específicas (figura 4).


Figura 4: Los conocimientos de «profesionales» con experiencia y formación continua

Por supuesto, la figura 4 muestra un caso ideal, al alcance de muy pocas personas, los agujeros en el conocimiento –como los de la figura 3– son difíciles de evitar. Aún así la tendencia y objetivo de los profesionales debería ser alcanzar un nivel de conocimiento como el de la figura 4.

Un profesional, aunque sea muy bueno y competente en su área específica, sin la formación continúa imprescindible –formal o informal– a los pocos años desconocerá los últimos avance y cambios del campo científico, tecnológico y hasta de las herramientas disponibles.

Para los informáticos la formación continúa requiere de más esfuerzos. Influye en ello los rápidos cambios que se producen en la ciencia y tecnología, lo que hasta los expertos de la ACM denominan «pasos revolucionarios». Pero también influye el «mercado», las empresas son naturalmente conservadoras. Empresas conservadoras e ingeniería mutante hacen una combinación nada agradable.

Así no es infrecuente encontrarnos con profesionales o ingenieros informáticos que no han tenido la oportunidad de recibir la formación continua adecuada. De hecho hasta tienen un nombre para tratarlos despectivamente, en castellano se les suele llamar casposos, en inglés algunas veces blue suits –si son comerciales o directivos–, o de una javaschool a los programadores (más sobre el tema en la siguiente sección).

El esquema conocimientos de estos profesionales es el que se muestra en la figura 5.


Figura 5: Conocimientos de un ingeniero informático que no recibe formación continua

Un buen ingeniero debería siempre intentar tener los conocimientos distribuidos como la figura 4, y huir como si fuese la peste de un esquema como la figura 5 (es muy perjudicial para la persona y la organización para la que trabaja), aunque muchas veces nuestra «natural» disfunción metacognitiva no nos permite evaluar nuestros propios conocimientos [*].

[*] Truco: discutir de temas técnicos en foros y listas técnicas, o en tu propio blog, es una muy buena manera de que te «evalúen». Otra forma, aunque más cruel sudorosa y sado-masoquista, es intentar explicar o enseñar a otros, no hay mejor forma de darte cuenta de tus agujeros de conocimiento.

Lo que piden las empresas

Al final, luego de una larga introducción, me centraré en la respuesta a Martín.

Recuerdo hace unos años tuvimos unos debates en la UIB sobre empresas y software privativo versus software libre. Participaban empresarios, profesores y alumnos. En una mesa redonda se discutió sobre este dilema. Uno de los empresarios de software más importante de Balears –además es licenciado en matemáticas, o sea de una formación científica— afirmó algo así (más o menos literal, pero de memoria y luego de varios años):

No sé para qué se enseña en la UIB cosas raras como sistemas operativos [nota: soy profesor de esas asignaturas] y motores de bases de datos, aquí nadie desarrollará un sistema operativo. Lo que tenéis que enseñar es SQL y Visual Basic. Eso es lo que necesita la empresa.

Quedé tan sorprendido y con tan mal sabor de boca que años después no lo olvido, incluso peor, casi se convirtió en un esterotipo personal de lo que pretenden muchos empresarios de la universidad: carne al kilogramo. Sí, está mal, y lo intento olvidar, pero es difícil, fueron palabras muy gruesas, falaces y demagógicas, pronunciadas en frente de más de un centenar de profesores y alumnos.

Aunque no se pueda generalizar, esas palabras sí que sirven para evidenciar un síntoma: las empresas miden la relevancia de las ingenierías desde un punto estrictamente económico y a corto plazo. Pretenden que un ingeniero que entra en su empresa sea productivo en el menor tiempo posible. Es decir que dominen las tecnologías y herramientas que su empresa usa o necesita.

Las necesidades de cada empresa son muy diversas. El tipo de ingeniero que necesita FON –conocimientos de software de sistemas operativos, específicamente GNU/Linux, empotrados, telecomunicaciones y cifrado– no es el mismo que puede necesitar una empresa que hace software de gestión de hoteles, la de los bancos, las que hacen sistemas webs o las que necesita Airbus para la aviónica.

Si hiciésemos caso de lo que piden las empresas, deberíamos redistribuir el conocimiento, y nos quedaría algo como la figura 6.


Figura 6: Lo que suelen pedir las empresas

Un técnico debería ser expertos en todas las herramientas que usan las empresas y conocer de las tecnologías. Un ingeniero debería dominar las mismas herramientas y además ser igual de experto en las tecnologías.

Hay una aberración importante e inaceptable: para poder hacer que los ingenieros sean expertos en las tecnologías y herramientas se debería ahorrar tiempo en «cosas que no necesitan», como el conocimiento científico. Pero aún hay otra, cuatro o cinco años no son suficientes para enseñar a fondo todas las tecnologías y herramientas, así que hay dos soluciones:

  • Formar ingenieros como la figura 5, o sea especialización de las carreras para «cubrir las necesidades de su región». Es una visión que casi pretende que los ingenieros sólo sean útiles en su región, o convertir a la universidad en una especia de «academia regional de ciclo largo». Pero tampoco tiene demasiado sentido, ¿qué debería enseñarse? Las empresas de la misma región no tienen necesidades tan uniformes. De todas formas no esta mal darle una «perspectiva» más regional, algo de esto se intenta en las asignaturas que no son troncales en los planes existentes y en los aproximadamente 40% de créditos de los «planes de Boloña».
  • Formar ingenieros como la figura 6.b, lo que significaría aumentar el número de años de carrera. Sólo serviría para maquillar el paro y que los alumnos hagan huelgas y manifestaciones frente al ministerio. No tiene otra utilidad, porque tal como están las cosas cuando hayan acabado la larga carrera la mitad de lo que han aprendido ya cambió demasiado, o ya es obsoleto. Las quejas de los empresarios segurían y a largo plazo será insostenible.

Este tipo de discusiones no son nuevas ni exclusivas de España o nuestro entorno. Ocurre con la misma virulencia también en Estados Unidos. Rescato una frase:

Ojalá no me hubiesen escuchado […] Allí reside el debate. Los años de lloriqueo de estudiantes de informática vagos como yo, combinado con las quejas de la industria sobre la formación de los graduados informáticos de las universidades norteamericanas hicieron mella, y en la última década un gran número de antes buenas facultados se han hecho 100% Java. Es la moda, parece gustar a los reclutadores que usan «grep» para evaluar los curriculums, y lo mejor de todo es que no hay nada especialmente malo en [el lenguaje] Java que obligue abandonar a los programadores que no tengan idea de punteros o recursión, así el abandono es más bajo, los departamentos de informática tienen más estudiantes y mayores presupuestos, todo va bien.

La frase anterior es de Joel Spolsky en El peligro de las Javaschools. Lo que describe son a ingenieros informáticos que acaban su universidad Javaschool con un esquema de conocimiento exactamente al de la figura 5.

Recomiendo la lectura de ese artículo. No es sencilla la respuesta adecuada, pero Joel da algunas de las pistas de por dónde debería ir el debate, da muchas pistas de por qué Estados Unidos necesita y abserve tantos programadores de otros países. Me deja la sensación que el los curriculums-neo-capitalistas han hecho más daño que aportado ventajas a la media de estudiantes.

El problema

Yo creo que el problema fundamental es que no es tal. O al menos no es lo que normalmente se cree, una «mala orientación» de lo que se estudia en las universidades españolas.

Tampoco creo que en haya excesivas diferencias en la formación y conocimientos adquiridos por los alumnos, no en lo que se refiere a la «media» y a la distribución del conocimiento. Afortunadamente la mayoría de las facultades informática han sabido resistir a la tentación de convertirse en Javaschools (aunque sé que es muy difícil y que a algunas les falta poco para terminar cediendo a la presión).

El problema de la aparente falta de sintonía no es un problema sólo español, los norteamericanos tienen el mismo debate. Sólo que como vivimos aquí y con el típico pensamiento español, parece un problema creado y exclusivamente padecido por españoles. Cualquiera que haya visitado otras universidades habrá visto que los temas son muy similares, incluso los libros de texto son los mismos en la mayoría de los casos.

Las universidades españolas, sobre todo las de «provincias» como la mía, tienen problemas estructurales importantes:

  • Problemas de mercado: la «industria del software» es relativamente muy pequeña, hay pocas empresas, pocas inversiones en este campo, I+D+i casi inexistente. Obviamente afecta a las universidades, su relación con empresas, falta de profesores con experiencias en grandes proyectos empresariales, y las aspiraciones y motivación de los alumnos.
  • Problemas geopolíticos: La «gran industria» informática está muy centralizada –sus índices de concentración son muy superiores a la de los fabricantes de coches, las segundas más elevadas según el censo norteamericano– no es lo mismo ser una universidad en Baleares o Murcia que una cuyo campus es o está pegado a Silicon Valley. La industria de su entorno son incomparables, la atención y fondos directos e indirectos son diferentes, lo que nos lleva al siguiente problema.
  • Problemas de recursos: mientras que una universidad norteamericana de primer orden –de la Ivy League— tiene un presupuesto por alumno ronda los 30.000 euros, una universidad española difícilmente supera los 6.000 euros. Afecta a los recursos disponibles y sobre todo a la masificación de clases. Afortunadamente el hardware bajó mucho de precio, también el software que hace falta –casi se puede enseñar toda una carrera sólo con software libre–, pero los recursos humanos son los más caros, deben consumir alrededor del 70% de los ya reducidos presupuestos. Además se suma otro problema, los salarios de profesores son muchos más bajos de lo que paga la industria con una formación similar a los «buenos», lo que hace que sea muy difícil mantener o conseguir profesores. Todo ello también afecta a la motivación, tanto de alumnos como profesores.

Creo que esos problemas no justifican por sí mismos una falta se sintonía con las empresas, o al menos no creo que la mejora de las situaciones mencionadas anteriormente solucionen el problema automágicamente. No podríamos intentar aumentar recursos sin mejorar el mercado que a su vez necesitará de ingenieros de primer orden. Y no podremos tener nuestros Silicon Valleys sin una buena dotación de empresas, científicos e ingenieros.

Yo creo que sí hay problemas, pero son de otra índole, más social, afecta a profesores y alumnos pero no es exclusivo de las universidades:

  1. Falta de motivación (o de pasión por la informática) de los alumnos, también de profesores, pero fundamentalmente de los alumnos, que son los al fin y al cabo los que saldrán al «mercado laboral».
  2. Falta de confianza –o coraje de joven– que nos dice «no hay misterios, son sólo bits y bytes, si otros lo pudieron hacer yo también puedo hacerlo». Este problema no sólo afecta a cómo se enfrentan y resuelven los problemas dentro de una empresa, sino en que hay muy pocos ingenieros que inicien proyectos innovadores por cuenta propia y con una visión «global», es decir de vender en todo el mundo. Creo que es la causa fundamental de la carencia de ingenieros informáticos emprendedores.
  3. Pretender que el estado se haga cargo del entrenamiento profesional. Es un problema empresarial, la competencia, el outsourcing, la falta de mercado hace que parezca muy caro o imposible que las empresas se hagan cargo del entrenamiento específico, y luego de la formación continua, que necesitan los nuevos ingenieros.

¿La solución?

No lo sé con certeza. El punto #2 es un problema más social que académico o económico. El punto #3 es un tema a discutir con empresarios y ver cómo se pueden solucionar, reducir o regular la formación de profesionales. Desde el punto de vista de la universidad creo que el camino a corto plazo es mejorar la motivación. Leí muchas y diferentes propuestas, pero hay dos fundamentales:

  • Hacer universidades de élite. La propuesta es sencilla, si de 100 alumnos dejamos entrar sólo a los 10 mejores en vez de a 80, nos aseguramos de entrada que cogemos a los mejores y más motivados. El problema de este modelo es el fuerte impacto social que tendría –lo sufre Estados Unidos– y que al fin y al cabo tampoco serviría para cubrir las necesidades de las empresas locales, luego deberíamos importar ingenieros informáticos de otros países… que seguramente tendrán una universidad de acceso universal.
  • Matrículas altas y más becas. Me agrada bastante, aunque llevaría bastante debate. La idea es mantener un «balance neutral» –como el de ahora– pero los estudiantes «regulares» deberían pagar de matrícula un porcentaje elevado de los costes, dinero que sería invertido en más becas y becas-salario a esos buenos alumnos, que en muchos casos empiezan a trabajar antes de acabar sus estudios –bien por necesidad o porque reciben muy buenas ofertas– que termina afectando muy negativamente a su rendimiento académico. El hecho de tener que dedicarse más para no tener que pagar, o pagar menos, o simplemente porque está pagando mucho, haría que tener un buen rendimiento tuviese consecuencias económicas inmediatas. Dicen que no hay mejor motivador que el peligro de una factura más elevada, tengo mis dudas, pero seguramente mejoraría la situación.

Hay otras

Hay una tercera solución intermedia, que está funcionando y además creo que re-impulsada durante la primera legislatura de Aznar, los ciclos formativos. No conozco demasiado cómo está funcionando el sistema, pero me parece una solución bastante adecuada para cubrir las necesidades específicas de muchas empresas. Quizás haga falta que empresarios importantes empiecen a verlo como una alternativa y negocien y apoyen la creación de nuevos ciclos. Como son cortos –además hay opciones de uno o dos años– son más fáciles de adaptar y actualizar.

La otra solución, pero vendrá a largo plazo si es que puede ocurrir alguna vez, es que finalmente podamos separar las carrera de ciencias de computación de las dos o tres ingenierías derivadas de ella. Creo que nos hará tan bien a todos como lo hizo el «cisma» de las ingenierías de la física. Eso sí, si ocurre el cisma, las universidades pequeñas como la mía tendrán que olvidarse del lujo de tener carreras de ciencias de la computación. Una alternativa bastante triste para la mayoría 😦

Posdata: Tengo otra teoría que creo afecta negativamente a nuestros ingenieros. La suelo explicar con una improbable pero no imposible «universidad del fútbol», pero como este apunte ya se hizo demasiado largo –y algunos profesores se mosquerán bastante si la explico– lo dejaré para otro cuando tenga tiempo y ganas que me digan de todo.