viernes, agosto 10, 2007

¿Porque en la uni no enseñan el lenguaje (ponga su lenguaje favorito aqui)?

Comentarios como los del titulo del post los he ecuchado, tambien he escuchado ¿como me pide el maestro/a un programa en lenguaje (otra vez inserte su lenguaje favorito aqui), si no me han enseñado a programar en el?. Un post recente en un blog me hizo reflexionar sobre este tema.

Bueno la verdad es que en las universidades, en las carreras de sistemas (ingenieria o informatica), no enseñan a programar en ningun lenguaje, y de hecho no es su responsabilidad.

El objetivo de materias como "fundamentos de programacion", "programacion OO", "topicos de programacion", "estructuras de datos", etc., es proporcionar los conocimientos necesarios para enteder los conceptos de programacion, por lo tanto estas materias son agnosticas a un lenguaje en particular, ya que primeramente se enseña con pseudo-codigo el concepto que se esta explicando, y despues se muestra con algun lenguaje de programacion, como seria la implementacion.

Pero aprender a usar un lenguaje (cualquiera que sea) es responsabilidad del alumno, no de la uni.

Por otro lado en el post que me hizo reflexionar al respecto, se critica los lenguajes que las unis usan para la parte practica de las materias. Bueno lo que puedo comentar es que la forma en como se seleccionan los lenguajes depende de escuela a escuela, en algunos casos en reunion de academia o departamento los maestros deciden que lenguaje es mejor para apoyar el contenido de los cursos, en otros casos el maestro decide que lenguaje - a la mejor porque no conoce otro, o porque le es mas comodo el lenguaje elegido - y finalmente, no muy comun, pero algunos maestros preguntan que lenguaje es el mas comun que los alumnos conocen y ese es el que se emplea.

Tambien existe la posibilidad de que la uni tenga un acuerdo con alguna empresa y se decida usar el lenguaje/herramientas de la empresa, caso muy comun con Microsoft.

Por ejemplo en Mexico es muy comun que en las unis se use C++, C# y Java, como en algun tiempo tambien fue comun usar Pascal, peo de igual forma existen algunos otros lenguajes pocos populares o academicos que se usan, como puede ser Prolog, Scheme o Lisp.

Asi que para recapitular, la uni solo enseña conceptos sobre programacion, aprender un lenguaje es responsabilidad del alumno, ya sea por interes propio o porque desea pasar la materia; a final de cuentas al salir de la carrera y entrar a trabajar posiblemente requiera aprender lenguajes nuevos, porque el tranajo asi lo requiere.

2 comentarios:

markuz dijo...

Mario, tienes mucha razon en lo que dices con respecto a que las materias son agnosticas a los lenguajes de programacion, pero, no en todos casos es asi. Si te das cuenta en la pregunta que hizo Armando en mi blog(http://www.islascruz.org/html/index.php?Blog/Reply/id/1797), el pregunta si me enseniaron PHP en la escuela o si aprendi por mi cuenta. Este es un ejemplo claro de lo que tu dices, en la escuela me 'enseniaron' (supuestamente) a entender los conceptos de programacion, y por mi cuenta yo aprendi el lenguaje.

Lo que Yo quise dar a entender a armando es que en la escuela esta muy cabron que te ensenien PHP, Python o algun otro lenguaje que no sea los que haz mencionado tu, OJO, no estoy diciendo que no se ensenie, solo que esta muy cabron que se de, al menos en la mayoria de las escuelas asi esta la situacion.

Tampoco digo que el alumno no pueda buscarle o que pueda lograr que el profesor cambie de usar un lenguaje de programacion a otro para apoyar la materia.

Unknown dijo...

A lo mejor sería interesante que dieran materias optativas donde se enseñaran ciertos lenguajes o herramientas. Y las materias sean agnósticas al lenguaje.

Es muy controversial el tema, entiendo que la escuala sí debe de tener cierta línea porque tampoco el alumno puede estar en cada semestre cambiando de lenguajes.

Por otro lado está el argumento de que al salir el alumno, ¿que lenguajes le sirve más para encontrar trabajo? Obviamente si enseñan COBOL o ADA tienes menos oportunidad en el mercado que Java o C#.