¿Estudiar Ingeniería Informática?
Por qué casi abandono la carrera de Ingeniería Informática.
Saqué 19 Matrículas de Honor y obtuve el Premio Extraordinario al mejor expediente académico de mi promoción en Ingeniería Informática.
El último año casi abandono. A día de hoy, no he solicitado mi título. ¿Por qué? Porque la educación tradicional está ROTA.
En segundo de carrera, empecé a desarrollar Calisteniapp. Me aburría en clase (como absolutamente todo el mundo), y como me encantaba aprender cosas nuevas y me apasionaba la informática, empecé a programar mis primeros proyectos por mi cuenta.
Choque de realidad
Esto me hizo darme cuenta de muchas realidades y rápidamente me generó un conflicto acerca del camino a seguir. Resumiendo, tuve 4 choques de realidad:
Darte cuenta de que la persona que te está enseñando a programar, nunca ha programado más allá de lo académico. La persona que te está enseñando a gestionar proyectos, nunca ha gestionado uno.
El ritmo al que se enseñan las cosas y el sistema para demostrar que lo has comprendido, es estúpido e ineficiente. En informática, un examen al que no puedas llevar material, simplemente no tiene sentido. Programar consiste en resolver problemas, no en acordarte de escribir un Hola Mundo en Java.
En este mundillo, la "titulitis" no sirve de nada. Cuando sales de lo académico, la gente que contrata, se limpia el c*** con tu título. En la buenas ofertas a veces no hay siquiera prueba técnica como tal, lo que importa es conocer tu potencial de resolución de problemas y tu experiencia.
Perder el tiempo en cosas innecesarias y no tocar aspectos fundamentales. Estudiar extensamente metodologías arcaicas y pasar por encima agile o xp. Dedicar meses al MVC, pero no tocar programación reactiva. Podría seguir. De locos.
¿Qué cambiaría?
Mirando el curriculum, no quitaría casi asignaturas, sino que quitaría parte de la materia y reestructuraría otra gran parte de ella.
Profesores que vengan del mundo laboral y que roten constantemente. Ciclos de retroalimentación de nuevo conocimiento.
Eficiencia. Todo lo obsoleto que se cuente en una semana, no en meses. Como quien te hace un resumen de la historia de España. Ligeros en hemeroteca.
Exámenes teóricos FUERA. Solo pruebas prácticas / trabajos: es dónde realmente se aprende. Por dios, que Google se fundó en el 97 y vivimos conectados a toda la info que necesitemos, no me hagas memorizar, hazme razonar.
Más agilidad y más exigencia. Al que le gusta este mundillo, le mete horas. Al que no, a otra cosa.
Trasladar toda la teoría al mundo real. No puedes comprender la importancia de la algoritmia, el álgebra computacional o los patrones de arquitectura si no los trasladas al mundo real y explicas por qué es tan importante.
Destripar proyectos open source. Pasamos la mayor parte de nuestra vida como programadores leyendo código. Sin embargo, no hubo una sola asignatura en la que explorásemos un proyecto de verdad por dentro. Sales al mundo laboral sabiendo escribir dos clases en Java y tres líneas de código en lisp. No sabes ni cómo navegar por un repo.
Si todo está centrado en la práctica, después de 4 años deberíamos salir con god level de git.
TDD y DDD por defecto (ni lo tocamos en la carrera).
Conclusiones
Todo esto, generalizando MUY mucho. También me encontré con profesores excelentes, apasionados y entregados. También subestimé algunas asignaturas que luego resultaron ser esenciales. Pero si de algo estoy seguro, es de que hoy en día no recomendaría la carrera como la mejor vía y mucho menos como la más rápida para empezar tu camino.
Si has llegado hasta aquí, me encantaría que me respondas con tu opinión. A ver si voy a ser yo el único chalao.
Un día de estos publicaré comentando la vía alternativa que seguiría si te estás planteando meterte el mundillo de la programación/informática pero no estás seguro de si o no empezar la carrera.