¡Hola, Habr!
¿Qué estudiar? ¿Debo optar por ciencias de la computación o aprender la habilidad de ingeniero de software? Estas preguntas son muy relevantes en nuestros días.
¿Y qué elegirás tú?
Las personas que recién comienzan su camino en el campo de IT y están considerando ingresar a alguna universidad técnica o simplemente buscan programas de capacitación en programación, a menudo se encuentran con una gran cantidad de especialidades. La idea es que en cada una de estas áreas, las materias son similares, especialmente en el primer y segundo año.
Para mayor claridad, dividiremos todas las especialidades en dos categorías: Ciencias de la Computación e Ingeniería de Software. La diferencia fundamental radica en que la primera es más flexible y se centra en el estudio de principios fundamentales, mientras que la segunda se orienta hacia habilidades prácticas para desarrollar programas para el mercado. Independientemente de cuál de estas áreas elijas, al final te convertirás en programador. Lo más probable es que busques trabajo después o durante tus estudios y el sector de desarrollo al que accedas, así como lo que podrás reclamar, dependerá de la dirección que elijas.
En ambas categorías, durante los primeros 2-4 semestres, se estudian materias similares, como álgebra lineal, análisis matemático, matemáticas discretas y ecuaciones diferenciales. En general, toda esta matemática se estudia en ambas categorías, pero en Ciencias de la Computación se suma un curso adicional de matemáticas discretas y ecuaciones diferenciales. También es común para todas las especialidades introducir conceptos generales de Ciencias de la Computación, y es aquí donde comienzan las diferencias. En Ciencias de la Computación se aborda la arquitectura de computadoras, la teoría de algoritmos, la estructura de datos y su análisis, cómo funcionan los programas y cómo se pueden escribir utilizando estructuras clásicas, sistemas operativos, compiladores, entre otros. Esto implica un enfoque más amplio en los fundamentos. Por su parte, en Ingeniería de Software se explora el diseño orientado a objetos, la prueba de software, los fundamentos de los sistemas operativos, entre otros. En otras palabras, se busca instruir sobre técnicas para que el estudiante pueda aprender a utilizar soluciones ya disponibles y, a través de ellas, abordar una variedad de problemas empresariales. Todo esto se suele estudiar en el primer año de formación.
A partir del segundo año, ambos programas comienzan a estudiar materias como la arquitectura de computadoras y el funcionamiento de los sistemas operativos, aunque en Software Engineering se examinan de manera más superficial. Esto se debe a que se preparan a personas que estarán poco relacionadas con estas áreas. Desde el segundo año, en Computer Science se hace mayor énfasis en la estructura de la microarquitectura y los núcleos de los sistemas operativos, mientras que en el desarrollo de software se pone más atención en las interfaces de usuario, las pruebas, el análisis de software, diversas metodologías de gestión, etc. En particular, la programación orientada a objetos se estudia de manera bastante profunda en ambas direcciones, ya que esta paradigma de programación es muy popular en la actualidad y es fundamental conocerla.
En el tercer año de estudios en Computer Science, se dedica tiempo al estudio de la combinatoria, la criptografía, la inteligencia artificial, los fundamentos del desarrollo de software, los gráficos en 3D y la teoría de compiladores. En Software Engineering, se examinan la seguridad del sistema, las redes e Internet, la gestión de software y la gestión en general. Sin embargo, dependiendo de la universidad, estas materias y la profundidad de su estudio pueden variar.
Sin duda, la principal pregunta de este artículo es a dónde es mejor ir. Esto ya depende de tus preferencias. Si deseas ser un ingeniero muy flexible y versátil, deberías optar por Computer Science. Pero si quieres vincular tu vida al desarrollo de software y ser capaz de crear programas útiles para los usuarios finales, entonces Software Engineering es para ti.

En conclusión, me gustaría decir que en Computer Science te enseñarán a resolver problemas y a idear soluciones elegantes para estos, mientras que en Software Engineering te convertirán en un programador orientado al negocio que podrá gestionar proyectos, personas y crear software relevante.
Fuente: habr.com
