La semana pasada asistí al Simposio de la AMITI, y como parte de las actividades hubo una mesa de trabajo sobre capital humano. Como saben, este es un tema que me apasiona, así que decidí entrar aunque fuera de oyente. Bueno, pues resulta que la discusión partía de la hipótesis de que la academia se encuentra desvinculada de la industria, lo cual resulta en egresados que no cumplen con las capacidades que demanda la industria. Desde que vi esta hipótesis, yo sentí que estaba muy de un solo lado, así como que “yo industria hago todo bien pero la academia no está dando el ancho así que hay que decirle que es lo que tiene que hacer”. Esta es una postura con la que yo no estoy de acuerdo del todo. Yo tengo visibilidad hacia los distintos agentes (academia, empresas, gobierno y estudiantes/profesionistas) y creo que la academia es quien va más avanzada en su tarea de mejorar, pero no veo lo mismo en el resto de los agentes.
Al respecto, quiero abordar los siguientes puntos:
En esta primera parte abordaré el primer punto, y en posts posteriores abordaré el resto.
Expertise en herramientas modernas y específicas
Uno de las quejas más frecuentes de parte de la industria hacia la academia es que no le enseña a los alumnos las tecnologías más recientes. Los alumnos también se quejan comúnmente de esto “es que en la escuela me están enseñando a programar con C y eso ya chole, deberían enseñarme Java o .Net que es lo que piden las empresas”. Mi respuesta ante esto es un enfático “¡No señores!”. Y si yo fuera un representante de la academia y alguien de la industria me saliera con esa queja, se arriesgaría a que le aviente un zapatazo al más puro estilo iraquí.
La responsabilidad de una universidad no es generar técnicos experimentados en las herramientas y tecnologías más novedosas. Su responsabilidad es generar personas pensantes, capaces de aprender, analizar y vincularse. Los cerebros no se hacen obsoletos, así como las matemáticas, capacidad de análisis y comunicación no pasan de moda.
Los lenguajes y herramientas que usas en la escuela tienen antes que nada un fin didáctico. No importa si para enseñar programación estructurada se usa un lenguaje de hace 30 años, lo importante es la esencia. Lo mismo es con orientación a objetos, didácticamente puede tener mucho más sentido usar Smalltalk que por ejemplo Java. Y tal vez en el trabajo nunca utilices Scheme o Lisp, pero el solo entenderlos te sirve para aprender a pensar de otra forma.
Ante la diversidad y alta especialización de tecnologías y herramientas asociadas, es risible pretender tener recién egresados experimentados (incluso certificados) en el uso de todas. Imaginen el siguiente escenario:
A: “De ahora en adelante los estudiantes que elijan la especialidad de programación deben certificarse en Java …”
B: “¿y entonces .Net que?”
A: “ahem, bueno, entonces en Java y .Net”
B: “¿y desarrollo para móviles?“
A: “OK, Java, .Net, Windows Mobile, iPhone y Android”
B: ¿y lenguajes de scripting?
…
ahora imaginen que trasladamos esa misma discusión a la especialización de aplicaciones empresariales donde tenemos SAP, Oracle, Microsoft y demás. Y así con cada especialización posible … no tendría fin.
No, las empresas no pueden pretender que los recién egresados dominen las herramientas que ellos específicamente usan. Cada empresa usa N herramientas diferentes y éstas cambian continuamente. Ante esto, las empresas deben cambiar su postura y decir “una persona con los fundamentos adecuados y acostumbrada a aprender, debe estar siendo productivo con las herramientas que yo uso en pocas semanas”.
Esto no significa que le estoy diciendo a los estudiantes: “No importa que no sepas nada sobre tecnologías modernas, de todos modos las empresas tienen obligación de darte trabajo”. No, no, no, no. Tampoco va por ahí la cosa. Los alumnos deben entender que las empresas obviamente van a escoger a los candidatos que mejor satisfagan sus necesidades. Si una empresa necesita a un desarrollador .Net, y esa empresa usa Team Foundation Server para administrar las tareas y controlar versiones, y se encuentra con dos candidatos con formación similar y calificaciones similares pero uno domina TFS y el otro no, pues obviamente se va a ir por el que ya tenga el skill adquirido.
Entonces … los estudiantes sí deben buscar desarrollar conocimientos y experiencia con las herramientas modernas (¿pues no que no?). Sí deben hacerlo, pero no es responsabilidad de las universidades, es de los alumnos. “¡¿Qué?! ¡¿Pero cómo?!, si yo estoy pagando un chorro de lana (y/o impuestos) a la universidad para que me prepare. Es su obligación dejarme listo para ser contratado por una multinacional con un puesto de gerente por lo menos.” Disculpa, pero la obligación de la universidad es enseñarte a aprender. Lo que aprendas, es tarea tuya. ¿Quieres aprender .Net? Pues descarga una versión gratuita de Visual Studio. ¿Que lo tuyo es el software libre y te interesan las aplicaciones móviles? Pues ahi está Android, diviértete. ¿Que quieres aprender a administrar y optimizar servidores de aplicaciones? Adelante, escoge tu favorito. Hoy en día, prácticamente todas las tecnología de desarrollo o son software libre, u ofrecen versiones gratuitas para estudiantes y uso personal. Pero si para aprender a usar un framework de Ajax estás esperando a que tu profesor te obligue y te califique, estás en el hoyo. Eso tienes que hacerlo tú por iniciativa propia.
———–
Con todo este texto apenas cubro uno de los puntos que quiero abordar. En notas posteriores abordaré el resto.
Por favor comenten.
Excelente análisis mi estimado Pedro con el cual estoy totalmente de acuerdo. Lo que hace falta es que las personas que están estudiando una carrera relacionada con TI se apasionen por algo. Las herramientas y tecnologías existen, están por todos lados, la mayoría de ellas gratuitas: solo hay que tomarlas y sumergirse en ellas; dar un paso más allá que lo que la academia ofrece ya que siempre estará atrás comparado con los avances tecnológicos.
Espero el siguiente artículo.
Saludos!
Pedro,
en lo fundamental (con la salvedad que expreso en el último párrafo de esta nota) estoy de acuerdo. Para mi tranquilidad moral lo estuve también en el propio evento, al insistir en que las universidades tienen que promover que los alumnos tengan la formación más “formadora de futuro” posible, y ésa es la básica – matemáticas, ciencias de la computación, etc.
El conocimiento práctico actualizado se puede adquirir también en interacción con la industria (en estancias tipo “internado” o “residencia”), en cursos especializados, y muchas oportunidades como las que tú mencionas.
La responsabilidad puede ser compartida entre escuela, alumno e industria. Pero urge.
Estoy completamente contigo, y me encantaría que más gente aplique este criterio _pensante_ que tú esgrimes. Estudiar en la universidad significa que sales con la preparación justa para _comenzar_desde_abajo_ jugando en un campo _parejo_ con tus compañeros de industria, no que -como muchos egresados, especialmente, de universidades privadas creen- estás listo para roles gerenciales. Más aún, recuerdo el caso de un amigo que me entristeció profundamente. Un chavo brillante, que llevó dos carreras relacionadas con el cómputo en paralelo (una en el IPN y una en el Unitec). Pasó un par de años de que terminara de estudiar, y un día me dijo: «¿Sabes? Creo que ya programé suficiente. Ahora voy a dedicarme a ventas». ¿Cuál es mi opinión? Que colectivamente gastamos nuestros impuestos (por la parte del IPN), y su familia gastó su dinero (por la parte del Unitec) para darle una formación universitaria (que es lo mismo que universalista) para aprender a pensar, aprender a resolver problemas algorítmicamente, para que él decida que… es hora de dejar de hacer código para pasar a hacer dinero. ¡Madre mía! Con lo interesante que puede ser iniciar una carrera bien iniciada, con lo alto que puede llegar dedicándose a lo que yo supuse sería su pasión.
En mi facultad hemos discutido mucho sobre qué enseñar y cómo hacerlo http://twurl.nl/8ujvuj, http://twurl.nl/jdi6b7 … Yo estoy de acuerdo en que las matemáticas y las ccs. computacionales abren la mente. Pero también creo que en la academia se debiera enseñar, si no lo más moderno de la tecnología usada en la industria, si alguna que sea un background. Por ejemplo, proyectos escolares donde se involucre algún framework MVC sencillo, un lenguaje como Java, VB.net o PHP, algún sistema de control de versiones, un servidor de apps. entre otras herramientas útiles cuando se desarrolla software. Esto permitirá a los alumnos conocer de primera mano la utilidad y conceptos que cada herramienta integra, lo que hará más sencilla la adopción de cualquier otra del mismo tipo cuando se requiera.
Una limitante es lo que menciona E. Osorio en el artículo http://www.sg.com.mx/content/view/321/, la falta de motivación de los estudiantes.
Y una posible solución a la falta de experiencia también sería lo que menciona el Dr. Montes de Oca acerca de que “…las escuelas de ingeniería de software deberían tener al lado una fábrica de software o algo donde los alumnos puedan participar en proyectos reales. Porque la ingeniería de software es especial y requiere de práctica y tutelaje.” http://twurl.nl/1kdf38
Hola, coincido con el punto de vista expresado pero de yo haber escrito un artículo similar lo hubiera titulado: “No todo es culpa de la industria”, ya que considero que es el sector más cerrado, con actitudes como la que tu mencionas: “yo industria hago todo bien pero la academia no está dando el ancho así que hay que decirle que es lo que tiene que hacer”.
Aunque definitivamente es culpa de todos, algunos ejemplos:
1)Universidades públicas con planes de estudio bastante viejos: En 2004-2007 cuando estudiaba para técnico en programación las materias aún se llamaban “Cobol I” y “Cobol II”, afortunadamente ya no enseñaban eso, pero en mi certificado así dice y eso no da muy buena imagen.
2)Estudiantes: Apáticos y flojos.
Esto duele aceptarlo pero así somos la gran mayoría (o conozco puro así… T_T), cada quien tiene sus motivos pero entre los principales están:
A)NO tienen el mínimo gusto por la carrera lo están estudiando porque deja dinero o porque sus papás los obligan.
B)Se preocupan demasiado por la calificación, incluso lo ponen por encima del aprendizaje, todo el tiempo están pidiendo exámenes fáciles, eligiendo a los maestros “barco”, etc. Como si los números más que lo que sabes fueran a garantizar su puesto de trabajo (o nuevamente intentan quedar bien con los papás).
C)No nos informamos lo suficiente: Entramos expectativas falsas e ideas incorrectas sobre la carrera, todo por no informarnos, raros son los que se atreven a cambiar de carrera aún sabiendo que no están “en lo suyo”.
3)Exigencias exageradas de la industria: Está bien ser exigente, obliga a los que formamos parte de la fuerza laboral a mejorar, pero en ocasiones exageran, pidiendo cosas como recién egresado con experiencia(!?) o “todologos”, pretenden que uno sea programador, analista, jefe de proyecto, documentador, diseñador, soporte técnico, etc. Yo considero que algunos de estos puestos requieren cierta especialización (analista/jefe de proyecto) y otras están alejados del perfil de alguien dedicado al desarrollo de software (Diseñador/Soporte Técnico).