Este artículo hace parte de la serie “Software, potencial laboral y económico por explotar”.
Como destacamos en el artículo “Software, potencial laboral y económico por explotar: Situación actual y posibilidades”, el pensum actual de los programas de Ingeniería de Sistemas de las Universidades en Colombia es en buena medida el responsable del pobre nivel técnico de sus egresados, debido a que se enfoca en formar generalistas, no especialistas. Por esta razón, debe buscarse un cambio de fondo que re-oriente la formación académica hacia las nuevas necesidades globales enfocadas en programación de Software.

Contexto
Desde sus inicios y con mayor fuerza durante los últimos años, los programas de Ingeniería de Sistemas de las Universidades de Colombia se han alejado considerablemente del contenido técnico relacionado con programación de Software en favor de la formación administrativa y de gestión de proyectos. El argumento de fondo para este cambio es que la programación de Software es considerada como una actividad de poco interés y relevancia para la formación Ingenieril del mercado local, algo que no podría estar más alejado de la realidad y necesidades en el contexto global.
Un reflejo de este cambio se evidencia en los pensums de los programas de Ingeniería de Sistemas (Andes, EAFIT, Javeriana, Nacional, UdeA) donde el contenido de la mayoría de materias (incluso las relacionadas con Computación), se limita a contenidos teóricos y no técnicos (principalmente alejados de la programación) que agregan poco valor a la formación Ingenieril. A partir del quinto semestre por ejemplo, prácticamente solo se ve 1 de 5 materias, directamente relacionada con temas técnicos de programación por semestre. La programación es increíblemente compleja, retadora y es tal vez la rama de la computación que más formación continua exige por su rápida y constante evolución. Esto sumado a otros factores, han llevado a la escasez global de talento Ingenieril de programación que existe en la actualidad y podría ser aprovechado estratégicamente por un país como Colombia.
Recomendación
Se recomienda que cada materia del pensum académico tenga componentes aplicados profundos relacionados directamente con programación de software que le permitan al estudiante entender los usos del área específica del conocimiento en ramas reales de la computación. Por fortuna, algunas materias tradicionalmente consideradas teóricas como matemáticas, estadística, cálculos y álgebra lineal, son bastante útiles para resolver problemas complejos y relevantes del mundo computacional.
Razonamiento
La programación es indispensable para la formación técnica Ingenieril porque potencia:
Escala e impacto: Permite resolver problemas a una escala (tamaño y velocidad) que es literalmente imposible replicar manualmente. Esto sencillamente es la diferencia entre la viabilidad de poder resolver un problema o no poder hacerlo.
Entendimiento: Permite entender los conceptos técnicos en mayor detalle, toda vez que todas las herramientas que usan los Ingenieros están a su vez construidas usando programación de software y en la mayoría de los casos exponen funcionalidades internas vía programación de software (API). En el contexto específico de proyectos cuyo código fuente es accesible, e.g. Open Source que hoy son la base de la operación tecnológica del mundo (Linux, Android, Perl, PHP, Python, Ruby, etc), se convierte naturalmente en una ventaja competitiva de aprendizaje al permitir conocer y extender la funcionalidad interna, para adaptarla a unas nuevas necesidades derivadas.
Prototipado: Sirve como herramienta de validación de pruebas de concepto, ideas y posibles nuevos proyectos, minimizando el uso de recursos y agilizando los resultados.
Mercado: Por último y no menos importante, es por lejos la habilidad más demandada en la actualidad por las empresas, en especial las que buscan conformar equipos en países donde puedan reclutar y retener el talento con mayor costo-efectividad.
No es un enfoque en herramientas
Hoy en día existen numerosos frameworks de programación de propósito específico que abstraen al programador de la realidad y entendimiento del problema computacional bajo análisis por cuestiones de simplicidad y velocidad de desarrollo. Aunque en casos del contexto laboral pueden resultar bastante útiles, no necesariamente lo son con fines académicos, toda vez que limitan el aprendizaje de ciertos problemas interesantes que asemejan situaciones retadores de la vida real difícilmente replicables de otra forma. No se considera entonces necesario incluir en el pensum contenidos relacionados con herramientas específicas y se recomienda el uso de las tradicionales: bajo nivel (C o C++), OOP (Java o C#), scripting (Perl, PHP, Python o Ruby), Web (Javascript), porque:
Se asume que una persona que durante el curso de la carrera desarrolla competencias técnicas fuertes y las aplica usando los lenguajes mencionados en proyectos interesantes, está en capacidad de aprender en su vida laboral, cualquier nueva herramienta o framework en un tiempo corto (del orden de semanas) para una empresa o proyecto que requiera este conocimiento.
Las herramientas o frameworks especializados o de propósito específico cambian con gran velocidad, por tanto es un contenido muy tedioso de mantener actualizado en el contexto académico, que agrega poco valor en términos generales para los objetivos propuestos en esta serie.
El seudocódigo impide entender el comportamiento del programa en el contexto real al desplegarlo en sistemas funcionales (uso de memoria, uso de CPU, paralelismo, debugging, etc), limitando las oportunidades de aprendizaje por tanto no debe tener relevancia en los contenidos a tratar.
Tecnologías y protocolos abiertos
Debido a las oportunidades de aprendizaje que ofrecen las tecnologías y protocolos abiertos y para evitar sesgos de empresas que tratan de influenciar el contenido del pensum con fines comerciales y de dependencia, se le debe dar prioridad sobre las cerradas y propietarias. Por tecnologías abiertas, se entiende tecnologías Open Source o gratuitas que se ciñen a definiciones abiertas y estándar de industria.
Este artículo hace parte de la serie "Software, un potencial laboral y económico por explotar" escrita por los autores del blog Del Valle al Silicio basada en su experiencia académica y profesional, con aportes y comentarios de Camilo Aguilar (Fundador de Hooklift), Rafael Álvarez (Co-fundador de Fluid Signal Group), Iván Arias (Software Engineer de Google), Juan Camilo Corena (Software Engineer de Google), Ricardo García ((Software Engineer de Google), Miguel Granados (Investigador experto en computación visual de Dacuda AG), Estiven Restrepo (Co-fundador de DuoMusic), Andres Ríos (Consultor independiente en Energías Renovables), Juan Pablo Roldán (Consultor para Colombia de Astound Commerce) y Alejandra Yepes (Co-fundadora de Empiricus). Ver más sobre los autores aquí.
Ir al artículo principal de la serie