Carrera de Ingeniería de Sistemas
Desde el año 2011 hasta el año 2015 estudié la carrera de Ingeniería de Sistemas en la Universidad Nacional del Centro en Tandil, recibiéndome finalmente en Junio del 2017 con la presentación de la Tesis. Ese período se superpone con experiencias a nivel profesional que describo en los demás artículos, como la red de blog o el desarrollo de aplicaciones, pero en este artículo puntual me limito a escribir únicamente sobre mi paso por la facultad, algunos aprendizajes y vivencias personales.
¿Por qué decidí estudiar Sistemas?
En mi último año de colegio, mi hermana ya iba por el tercer año de Psicología en Mar del Plata, y mis padres me ofrecieron la misma posibilidad que tuvo ella de estudiar una carrera universitaria sin tener que trabajar para mantenerme, ya que consideraban sumamente valiosa la idea de tener un título universitario.
En el secundario había elegido la orientación de gestión de empresas, pero únicamente porque mi grupo de amigos también lo había hecho y porque la alternativa en mi colegio era la rama de humanidades que no me llamaba para nada la atención en aquel entonces. Siempre tuve facilidad para matemáticas y las materias de contabilidad las aprobaba sin estudiar, por lo que una alternativa de carrera pudo haber sido Contabilidad en Tandil, donde algunos compañeros de colegio ya habían decidido ir a estudiar dicha carrera. Pero por más que la contabilidad me resultaba fácil, también me resultaba aburrida y no me motivaba en absoluto la salida laboral.
Comencé a evaluar las carreras de Ingeniería por la facilidad con matemáticas y por la prometedora salida laboral. En mi ciudad, Olavarría, estaba la carrera de Ingeniería Industrial, por lo que parecía la opción más acertada, pero de todas formas no terminaba de convencerme. Algo que ya me motivaba en aquel entonces era la idea de emprender, de poder iniciar proyectos ambiciosos de forma autónoma, y de no depender de una empresa o tener un jefe. Si bien ahora conozco Ingenieros Industriales emprendedores, en aquel momento lo asociaba a estar siempre atado a trabajar para una empresa.
Es por ello que empecé a analizar las carreras de informática, un área con la que también tenía mucha facilidad y que a su vez me brindaba ese potencial de poder encaminar mis propios proyectos. En Mar del Plata existía una carrera de informática en una universidad privada, por lo que si bien podía compartir gastos de alquiler con mi hermana, era necesario pagar una matrícula y a su vez no era una facultad muy conocida. Fue entonces que se comenzó a evaluar la posibilidad de estudiar en Tandil, que esta a medio camino entre Olavarría y Mar del Plata, y donde estaba la carrera de Ingeniería de Sistemas en la Universidad Nacional del Centro.
Viaje con mis padres a averiguar sobre la carrera, y también sobre pensiones para estudiantes. Tandil resultó ser un poco más costoso que Mar del Plata, y a su vez implicaba que mi familia mantenga un alquiler en dos ciudades distintas. Por suerte me mantuve en contacto con un gran amigo, Facundo Cajén, que en ese momento se encontraba de intercambio en Estados Unidos, pero que me comentó que también estaba evaluando irse a vivir a Tandil a estudiar Relaciones Internacionales. Al hablarlo no lo dudamos, y cuando volvió a Argentina fuimos con nuestras familias a averiguar departamentos para que compartamos el gasto del alquiler y de esa forma podamos contar con la privacidad y comodidad que no suele encontrarse en una pensión de estudiantes.
Ya encaminada la idea de irse a Tandil, fui a rendir el examen de ingreso en Diciembre, y al año siguiente hicimos la mudanza con mi amigo para comenzar una convivencia y una nueva aventura, a la cual iba con el compromiso claro de terminar la carrera en tiempo y forma.
Fue así como se fueron dando las cosas para terminar estudiando esta carrera, motivado por una sumatoria de hechos puntuales: me motivaba el potencial para poder emprender, me gustaba trabajar con la computadora, Tandil quedaba cerca, podía mudarme con un amigo, y tenía facilidad para matemáticas. Pero nunca había visto nada de programación en el colegio, y no supe muy bien de qué se trataba hasta que comencé la carrera. Esto lo fui descubriendo ya en la facultad, y podría haberme no gustado, pero creo que si hubiese tenido contenidos de programación en el colegio, hubiese estado todavía más decidido en la elección de carrera.
Conformación del grupo
Si bien tenía algunos amigos que también iban a estudiar a Tandil, ninguno de ellos iba a estudiar la misma carrera que yo, por lo que en mi primer día de clase no conocía a nadie. La primer clase fue una clase teórica de Análisis Matemático, donde el profesor comenzó a demostrar teoremas matemáticos complejos con derivadas, integrales, y donde aplicaba propiedades matemáticas que no conocía (ni siquiera había visto una derivada en el colegio). Salí de esa clase desorbitado, preguntándome “donde me metí”. Desde mi perspectiva todos parecían entender la clase por lo que me empecé a preocupar, ya que no tenía ningún conocido como para empatizar juntos.
Por suerte la próxima clase fue la práctica de esta misma materia, y el panorama comenzó a aclararse. Las profesoras explicaron a un grupo más reducido de estudiantes y de forma más detallada cómo resolver los problemas, y realmente me ayudo mucho poder poner en práctica la teoría que no había podido entender ni por casualidad. En esa misma clase encontré el espacio para comenzar a hablar con otros estudiantes, y pude comprobar que no era el único que no había entendido nada de la primer clase teórica.
Algo muy particular que ocurrió fue que los compañeros con los que tuve mis primeros diálogos, que por cierto estaban en la misma situación que yo al no conocer a otras personas, terminaron conformando el grupo de estudio hasta terminar la carrera y siendo grandes amigos hasta la fecha. Particularmente con tres de ellos llevamos la carrera al día y terminamos graduándonos a la par. Los cuatro coincidimos en que no hubiésemos podido llevar la carrera a ese ritmo de no haber conformado ese grupo, o al menos nos hubiese costado el triple, ya que los cuatro estábamos en la misma sintonía, y la carrera resultaba mucho más fácil y llevadera.
Materias destacadas
Como toda carrera de ingeniería, la de sistemas también incluye materias como Análisis Matemático, Algebra, Física, Probabilidad y Estadística, Cálculo Diferencial, entre otras. Lo particular de la UNICEN, es que esta carrera está en la facultad de Ciencias Exactas, y no en la de Ingeniería, lo que le da un enfoque tal vez un tanto más científico. En lo personal, si bien estas materias me ayudaron en mi formación y en el entrenamiento del cerebro, no me brindaron aportes significativos para el desempeño en el trabajo como ingeniero de sistemas o para mi trayectoria como emprendedor.
Por otro lado, las materias más específicas de la carrera de sistemas si me resultaron de gran ayuda para mi entendimiento de lo que es un sistema informático, abarcando las diferentes ramas que existen en la informática, tanto en software como en hardware (este último en menor medida).
Algunos ejemplos de materias son Introducción a la Programación, Algoritmos, Programación Orientada a Objetos, Sistemas Operativos, Lenguajes de Programación, Compiladores, Electrónica Digital, Arquitectura de Computadoras, Ciencias de la Computación, Comunicación de Datos, Estructuras de Almacenamiento de datos, Bases de datos y Programación Exploratoria. Otras dos materias que considero que son sumamente importantes y alineadas con la formación de un Ingeniero de Sistemas son “Diseño de Sistemas de Software” e “Ingeniería de Software”, ambas brindadas en el último año de la carrera, y lamentablemente no tan bien dictadas por la cátedra, al menos en el ciclo que me tocó cursarlas, y entiendo que tampoco cambio mucho de los años anteriores y posteriores.
El plan de estudios incluyó materias optativas, de las cuales era necesario completar al menos 8 de ellas para obtener el título. Estas permitían elegir alguna especialización según el interés del estudiante, ya que había optativas relacionadas al área de ingeniería de software, pero también a otras áreas como por ejemplo la Arquitectura de Hardware, el Procesamiento de Señales, la Informática de Gestión, entre otras.
El área de especialización elegida fue el de Ingeniería de Software, donde curse algunas optativas como Seguridad Informática, Inteligencia Artificial, Taller de Desarrollo Web, Desarrollo para dispositivos Móviles, Minería de Datos, Métodos Ágiles, Taller Colaborativo, Desarrollo de Videojuegos, entre otras. También le di una oportunidad al área de Informática de Gestión, pero la optativa cursada me resulto demasiado aburrida y mal dictada.
En varias materias he tenido que implementar algún algoritmo o programa para la aprobación de la cursada o el final, alguno de estos bastante interesantes. Voy a mencionar solo alguno de ellos.
En Diseño de Sistemas de Software implementamos como trabajo final un crawler de sitios de noticias de Argentina (Clarin, La Nacion, etc), que obtenia los títulos, descripciones e imágenes de las secciones iniciales de las web, y las indexaba con Lucene para poder detectar los tópicos más calientes del momento, haciendo uso de unos analizadores de la librería para optimizar los resultados
En Algoritmos II implementamos como trabajo final un juego llamado Othello (o Reversi), con la posibilidad de que el usuario pueda competir con otro usuario, o también competir con el mismo sistema, que realizaba las movidas de forma inteligente gracias al algoritmo recursivo implementado: el algoritmo minmax. Este es un método de decisión para minimizar la pérdida máxima esperada, y nos permitió desarrollar el juego con 3 niveles de dificultad, variando la cantidad de jugadas futuras analizadas. Adjunto el informe del mismo.
En la optativa de Desarrollo para Dispositivos Móviles, implementamos como trabajo final una aplicación de seguimiento de la actividad física para Android. La app le permitía al usuario iniciar una actividad (caminar, correr o bicicleta), y calculaba diferentes datos de la actividad, como el tiempo, la distancia o la velocidad promedio. También guardaba el recorrido realizado y lo mostraba sobre un mapa. Fue publicada en Google Play en 2015 y hasta la fecha sigue disponible, aunque nunca fue actualizada y lo más probable es que sea removida de la tienda pronto. https://play.google.com/store/apps/details?id=com.apps.coyote
Algunas materias requerían de un trabajo para la cursada. Por ejemplo para Diseño de Compiladores implementamos un compilador con características puntuales brindadas por la cátedra. En Algoritmos II implementamos determinados algoritmos para que un Pacman se mueva inteligentemente por el tablero, conociendo el comportamiento de los fantasmas del juego. En Arquitectura de Computadoras implementamos una descripción del hardware de una computadora mediante el lenguaje VHDL.
Trabajo final
Para finalizar la carrera era requisito completar un trabajo de investigación, que podía ser realizado de a dos personas, y debía ser presentado ante un jurado de tres personas y quien quisiera presenciar la presentación (generalmente los familiares y amigos de los egresados). Con mis tres amigos y compañeros que llevamos toda la carrera en conjunto hicimos un sorteo para armar dos grupos de a dos.
Una vez decidido mi compañero, buscamos a un director de tesis que tenga buena reputación, es decir, que esté presente cuando se lo necesita. No teníamos ningún tema específico de interés que quisiéramos investigar, por lo que el director podía proponernos el tema a desarrollar. Nos decidimos por dos profesores que tuvimos en las optativas ligadas con la Inteligencia Artificial, que eran jóvenes y estaban desarrollando su doctorado, por lo que contaban con mucha energía y disposición para acompañarnos a que llevemos el trabajo adelante.
La idea del trabajo era realizar experimentos y analizar los resultados de hacer predicciones de enlaces en redes sociales con un enfoque de aprendizaje. Para esto, se determinó la posibilidad de representar una red social mediante un grafo, donde los nodos son los usuarios y las aristas que lo conectan representan la existencia o no de una relación entre ellos. De esta forma, con un conjunto de datos de entrada (los nodos y las aristas existentes), es posible entrenar diferentes tipos de clasificadores que permitan predecir futuras conexiones entre usuarios mediante el aprendizaje supervisado, y que su eficiencia también pueda ser evaluada con los mismos datos de entrada para entender qué tan bien funciona con los diferentes conjuntos de datos.
Para realizar toda esta experimentación, se propuso extender la funcionalidad de una herramienta existente llamada Gephi que cuenta con funcionalidades de manipulación de grafos, integrando sobre la misma otra herramienta de código abierto llamada Weka, que cuenta con muchas funcionalidades relacionadas al aprendizaje automático.
Con la implementación de esta integración y la inclusión de diferentes tipos de clasificadores, se procedió a realizar experimentos con cuatro datasets muy diferentes entre sí, y a realizar todo el análisis pertinente, sacando conclusiones de las diferentes pruebas realizadas.
Para quien le interese conocer más sobre este trabajo, dejo adjunto el informe de la misma a continuación:
El trabajo recibió el visto bueno de los directores, luego del jurado, y finalmente fue presentada el 7 de Junio del 2017, siendo aprobado con un 10 como la mayoría de los trabajos finales, que llegan a dicha instancia prácticamente ya aprobados previamente.
Conclusiones
La carrera en general me brindó muchos conocimientos aplicables a mi profesión, y me dio una formación general que me permitió luego entender diferentes sistemas y enfrentar desafíos de diferente naturaleza con mayor facilidad. Pero por sobre todas las cosas, me brindo un grupo de amigos con los cuales me identifico y con los que comparto muchos valores, siendo una parte importante en mi profesión y en mi vida.
Por otra parte, el área de sistemas tiene la particularidad de que el título no tiene demasiado peso al momento de conseguir un trabajo, ya que en las entrevistas laborales simplemente se evalúa la experiencia y se comprueba que el postulante sepa resolver los problemas que se le plantean. Es por esto que una vez avanzado en la carrera, la motivación por tener el título podría ir decreciendo.
En lo personal también comencé a sentir que el título no iba a aportarme algo significativo en lo laboral, pero sí tenia muy presente que quería recibirme. En parte por el desafío personal y la culminación de una etapa, pero también como un agradecimiento para mis padres. Ellos fueron los principales responsables de que haya podido hacer esta carrera, apoyándome siempre en todo y dándome la confianza de que era capaz de esto y de mucho más. A ellos les hacía mucha ilusión verme con el título, y entendía que no había una mejor forma de que se sientan orgullosos que terminando la carrera.
Es por esto que si hay dos nombres propios que merecen aparecer en estos artículos, esos son Jorge Alberto Bongiorno y Nelly Isabel Vicente, mis padres, las dos personas que me han dado todo y a quienes les estaré eternamente agradecido.