La Coctelera

¿Qué echas(te) en falta en la Universidad?

8 mar 07

La pregunta

Estudio informática (que sorpresa, eh? ;) y estoy acostumbrado a ver cómo a gente se queja de lo que se enseña y de cómo se enseña. En realidad yo soy de la opinión de que un estudiante de informática puede aprovechar la carrera bastante más de lo que se suele hacer, pero siempre hay cosas que faltan ^_^

Este post es para lanzar una pregunta (probablemente retórica, porque dudo que a estas alturas me lea alguien xD):

¿Qué crees que deberían haberte enseñado en la Universidad y no lo hicieron?

Mi respuesta

Yo estudio en la UPV, y lo que echo en falta son dos palabras: Testing y Refactoring. Además, me parece que son dos cosas que se podrían (y deberían) inculcar desde el primer curso de programación de la Universidad.

En lo que al testing se refiere, me parece que igual que los alumnos tienen que hacer mains para ir probando sus programas, se les podría enseñar a usar assert y hacer mains cargaditos con llamadas a assert. No es necesario meterles con frameworks de testing completos desde el primer día, pero es de vergüenza que los alumnos salgan sin saber para qué sirve la función assert cuando deberían saberlo desde primero de carrera.

El aspecto del refactoring me parece mucho más serio. Es lamentable ver ingenieros que no saben escribir código inteligible. En mi opinión debería ser obligatorio escribir código limpio, y debería ser requisito indispensable para aprobar una asignatura de programación. A mí me gusta el código bonito.

Quizá con esto tendríamos más ingenieros (técnicos y superiores) que saben programar como toca y menos que no tienen ni idea

Nota: Si al final respondes no estaría mal decir en qué Universidad estudias(te) ^_^

8 comentarios

8 comentarios

  1. 8 mar 2007 | 08:45 PM # Rawsock dice:

    Ufff, yo estudio en la Universidad de Alicante y veo que faltan :

    a) Una asignatura de Programación Orientada a Objetos de verdad. Y no el megaseminario de C++ que imparten todos los años.

    b) Más programación funcional y paradigmas alternativos. Se me vé la vena [Scheme/Lisp]era por aquí. El OO funciona de puta madre para X cosas, sobre todo cuando la correspondencia clase/tipo es físicamente visible (juegos,GUI's). Cuando las cosas se vuelven abstractas, el OO falla miserablemente, o es tan complejo que se te quitan las ganas de diseñar por los restos.

    c) Separar los aspectos de paralelismo y concurrencia de las asignaturas de Sistemas Operativos pero ya. Programación Concurrente/Paralela de calidad y obligatoria. Existen estructuras de datos que incrementan el paralelismo, pero vivimos abocados al "pon otro mutex más por si acaso", y a hacer llorar a Amhdal en su puta tumba.

    d) Asignaturas de diseño y análisis software desde primero,
    junto con las de programación y mates. Un programador que no sabe diseñar es poco más que un sobateclas. Un diseñador que no sabe programar es un minglanillas que cuesta a la sociedad dinero y disgustos.

  2. 9 mar 2007 | 12:29 PM # blat dice:

    SQL.

    Es increíble el batacazo que te pegas cuando te das cuenta que tus conocimientos a nivel de motores de bases de datos, de optimización, y de técnicas y buenas maneras para plantear un buen entorno de bases de datos son prácticamente nulos.

  3. 9 mar 2007 | 02:25 PM # Ernesto Jiménez dice:

    Rawsock: La verdad es que es bastante triste que los universitarios (y luego ingenieros) sólo sepan resolver cierto tipo de problemas. Eso sí, aun más triste es que aun lo poco que se les enseña muchos ni lo asimilan.

    Blat: Eso creo que va según la universidad, la verdad es que la asignatura que tuve yo de bases de datos en la UPV daba pena. A la profesora se le veía que tenía nivel y le gustaba todo el tema, pero luego el nivel de la asignatura era bastante bajo, y además parecía que todo lo que no fuera Oracle era poca cosa.

    El principal problema creo que es que no hay ningún tipo de especialización, tú tienes "ingeniero informático", pero ingeniero de qué? No es lo mismo dedicarse a temas mutlimedia, que la ingeniería del software, la informática teórica, etc...

    En medicina (hasta donde yo se) tienes la carrera general y luego te especializas (de verdad) en algo. ¿Por qué en informática no?

  4. 9 mar 2007 | 07:57 PM # Luismi Cavallé dice:

    Yo estudié la técnica de sistemas en la UPSAM y sigo intentando acabar la superior en la UNED. Aunque puedo estar más o menos de acuerdo con lo que comentáis, realmente yo no tengo gran queja. Es cierto que la mayor parte del conocimiento que me resulta más útil hoy por hoy (OO, patrones, desarrollo ágil, TDD, etc.) no lo vi ni de lejos mientras estudiaba. Pero el caso es que tengo la sensación de que la utilidad de la universidad tiene más que ver con desarrollar capacidades que con adquirir conocimientos. Me refiero a capacidades de abstracción, de resolución de problemas lógicos complejos, etc... [Aunque bien es cierto que se podría argumentar que también en ese sentido la universidad también fracasa, pues no todo el mundo consigue desarrollar adecuadamente estas capacidades.]

    Por cierto, Ernesto, los links a mi blog son todo un halago por tu parte. Me alegro mucho de que por fin te hayas animado con el blog!

  5. 12 mar 2007 | 09:00 AM # Moises dice:

    A todo lo que ya habeis dicho, añadir clases obligatorias en inglés a la voy de ya.

  6. 12 mar 2007 | 10:04 AM # Ernesto Jiménez dice:

    Luismi: Siempre hemos dicho que las carreras de informática están enfocadas en desarrollar aptitudes en los alumnos que les permitan más adelante buscarse la vida (aprender lenguajes, metodologías, etc...) para solucionar problemas. Sin embargo yo cada vez veo más ingenieros sin esas aptitudes. El adquirir esas capacidades parece que sea algo opcional, si te interesa las adquieres, si no acabarás siendo ingeniero igualmente. La cuestión es: si no te enseñan "nada" a fondo y no adquieres las capacidades de las que hablamos ¿De qué te ha valido la Universidad? (en lo que a formación se refiere).

    Lo peor es que al salir tanta gente sin preparar con un título lo único que consigues es desvirtuarlo.

    Como decía en el post, creo que la carrera de informática se puede aprovechar mucho más de lo que la gente lo hace para adquirir esas capacidades, el problema es que eso no debería ser opcional, un ingeniero en informática debería tener esas capacidades sí o sí.

    Moises: El problema del inglés no es de la Universidad sino pre-Universidad. Si a un chaval no le has enseñado nada de inglés en 10 años, ¿Cuántas horas de inglés tendrás que poner obligatorias en la Universidad?

    Además hemos de tener en cuenta que más horas == más créditos == más dinero. En mi Universidad yo tenía una asignatura cuatrimestral de inglés obligatoria en primero de carrera y aun no se de nadie que haya salido aprendiendo más inglés.

    Deberíamos exigir un nivel de inglés en condiciones de forma obligatoria, pero no en la Universidad sino en la educación primaria y secundaria.

  7. 21 mar 2007 | 06:20 PM # Betisman dice:

    Hola, buscando por la red me he encontrado este comentario. Yo estoy terminando informático en la Universidad San Pablo CEU. La verdad es que durante la carrera he encontrado numerosísimos fallos en cuanto al plan de estudios. La disculpa se la hago en cuanto a que la carrera es nueva en la universidad (somos la segunda promoción tan solo) y sé que pondrán los moldes para corregirse año a año. Yo considero que no estoy bien formado en cuanto a lo que me han enseñado, pero me veo capaz de aprender por mí mismo, ya que en muchas asignaturas es lo que llevo haciendo durante los últimos 5 años.
    De todos modos, quería comentaros que tienes razón, Ernesto, en cuanto a lo que dices que deberíamos aprender desde primero. Este año, en quinto, tenemos un profesor "de los que valen" y estamos viendo patrones de diseño, refactoring, tdd... pero claro, en quinto. Deberíamos haberlo visto muchísimo antes.
    Sobre el resto de fallos en la universidad... no sé, quizá es que la informática avanza muy deprisa y no le da tiempo a profesores y planes de estudios a adecuarse... no sé
    Un saludo.

  8. 21 mar 2007 | 07:29 PM # Ernesto Jiménez dice:

    Betisman, yo creo que la velocidad a la que va la informática no es excusa, hay muchas cosas que llevan mucho tiempo y no se enseñan.

    Sé que es posible ir a buen ritmo porque aquí, en Helsinki (llevo todo el curso de Erasmus aquí), cambian los temarios y los enfoques de las asignaturas de un año para otro. Si tienes un sistema dinámico y profesores capacitados, motivados y con recursos puedes tener temarios actualizados y alumnos mucho más formados.

    Pero claro, aquí en Helsinki las carreras universitarias y los masters son gratuitos, y los estudiantes cobran del estado mientras estudian. Además el profesorado es bastante responsable, dan asignaturas con mucha profundidad y bastante especializadas y los propios profesores están especializados en las materias que imparten. Hoy por hoy esto en España es (lamentablemente) inviable.

Escriba un comentario: