Ciencias de la Computación VS Ingeniería de Software – ¿Cuál es la mejor opción para usted?

¡Hola a todos! Mi nombre es YK, y actualmente estoy ejecutando CS Dojo , un canal de educación en programación de YouTube con más de 200,000 suscriptores. También fui desarrollador de software en Google .

Dos de las preguntas más comunes que mi audiencia me pregunta son:

"¿Cuál es la diferencia entre las carreras de Informática e Ingeniería de Software?"

Y…

"¿Debo elegir Informática o Ingeniería de Software si quiero ser ingeniero de software?"

En este artículo, responderé a esto y le daré mi propio análisis rápido sobre estas especialidades.

Una descripción rápida de estos dos mayores

  • La informática es el estudio de cómo funcionan las computadoras, principalmente desde la perspectiva teórica y matemática.
  • Debe elegir Informática si le gustan las matemáticas, la lógica o si desea ingresar a un campo especializado en CS, como inteligencia artificial, aprendizaje automático, seguridad o gráficos.
  • La ingeniería de software es el estudio de cómo se crean los sistemas de software, incluidos temas como la gestión de proyectos, la garantía de calidad y las pruebas de software.
  • Debe elegir Ingeniería de software si está más interesado en el enfoque práctico y si desea conocer el ciclo de vida general de cómo se crea y mantiene el software.
  • Tanto la informática como la ingeniería de software enseñan los fundamentos de la programación y la informática, por lo que puede elegir cualquiera de los dos para convertirse en desarrollador de software.

Para entender la diferencia entre las carreras de Informática e Ingeniería de Software, echemos un vistazo a su currículo respectivo en la Universidad de Waterloo en Canadá.

Elegí la Universidad de Waterloo para esto porque tiene uno de los mejores programas de informática en América del Norte.

Prospectos de trabajos

Primero, compare los tipos de trabajos y pasantías que puede realizar a través de cada programa.

Afortunadamente, el sitio web de la Universidad de Waterloo proporciona varios ejemplos.

Para cada especialización, estos son algunos de los títulos que tienen los alumnos y dónde trabajan:

Ciencias de la Computación

  • Desarrollador web / Arquitecto, The Steele Group
  • Programador, Harry Rosen Inc.
  • Desarrollador móvil / en la nube, Clearbridge Associates Limited
  • Ingeniería de software, General Dynamics Canada
  • Ingeniería de desarrollo de software, Microsoft
  • Ingeniero Agile, Pivotal Labs
  • Analista comercial, Canadian Tire Corporation
  • Developer Advocate, Google
  • Gerente de Producto, Dropbox

Ingeniería de software

  • Desarrollador de software, Tagged Inc
  • Desarrollador de software, IBM Canada
  • Administrador de software, Arius Software Corporation
  • Ingeniero de Software, VistaPrint USA
  • Ingeniero de Software, Harris Corporation
  • Desarrollador de software, Accenture Inc.
  • Gerente de Producto Técnico – Software Design & Development, NexJ Systems Inc
  • Consultor, PureFacts Financial Solutions
  • Consultor de Implementación, Desire2Learn

Como puede ver, no hay una gran diferencia entre los tipos de trabajos que puede obtener.

Los graduados de trabajo más comunes obtienen después de obtener su título de Ciencias de la Computación o Ingeniería de Software es Desarrollador de Software o Ingeniero de Software.

También hay otras opciones relacionadas, tales como el Product Manager, QA Analyst y Technology Consultant. Tus opciones dependerán de tu conjunto específico de habilidades.

Cursos de primer año:

Ahora, echemos un vistazo a los cursos requeridos de cada programa. Primero, comparemos algunos de los cursos que necesitaría tomar en su primer año.

Ciencias de la Computación

  • CS 135 – Diseño de programas funcionales
  • CS 136 – Diseño de algoritmos y abstracción de datos
  • MATEMÁTICAS 135 – Álgebra
  • MATEMÁTICAS 136 – Álgebra lineal 1
  • MATEMÁTICAS 137 – Cálculo 1
  • MATEMÁTICAS 138 – Cálculo 2
  • Además de algunas optativas

Ingeniería de software

  • CS 137 – Principios de programación
  • CS 138 – Abstracción e implementación de datos
  • MATH 115 – Algebra lineal para ingeniería
  • MATH 117 – Cálculo 1 para Ingeniería
  • MATEMATICAS 119 – Cálculo 2 para ingeniería
  • MATEMÁTICAS 135 – Álgebra para Honores Matemáticas
  • ECE 105 – Física de Ingeniería Eléctrica 1
  • ECE 106 – Electricidad y magnetismo
  • ECE 124 – Circuitos y sistemas digitales
  • ECE 140 – Circuitos lineales
  • SE 101 – Métodos de Ingeniería de Software

Como puede ver, los cursos del primer año son bastante similares también. Ambos cubren algunos cursos fundamentales de informática y algunos cursos de matemáticas en álgebra lineal y cálculo.

La única diferencia importante es que Software Engineering tiene componentes adicionales de física e ingeniería eléctrica, mientras que Computer Science tiene algunos más optativos.

Cursos después del primer año:

¿Qué hay de los cursos obligatorios y optativos después del primer año? Echemos un vistazo a varios ejemplos aquí:

Ciencias de la Computación:

  • MATEMÁTICAS 239 Introducción a los Combinatorios
  • Probabilidad de STAT 230
  • Estadísticas STAT 231
  • CS 240 Data Structures and Data Management
  • CS 241 Fundamentos de programas secuenciales
  • CS 245 Lógica y Computación
  • CS 246 Desarrollo de software orientado a objetos <- no se requiere en especializaciones de ingeniería de software
  • CS 251 Organización y diseño de computadoras
  • Algoritmos CS 341
  • Sistemas operativos CS 350
  • Además, varias optativas de Informática

Ingeniería de software:

  • CHE 102 Química para Ingenieros
  • ECE 222 Computadoras digitales (incluye lenguaje ensamblador)
  • ECE 358 Redes de computadoras
  • MATEMÁTICAS 213 Matemáticas avanzadas para ingenieros de software
  • MATEMÁTICAS 239 Introducción a los Combinatorios
  • Estadísticas STAT 206 para Ingeniería de Software
  • MSCI 261 Engineering Economics: Financial Management for Engineers
  • CS 241 Fundamentos de programas secuenciales
  • CS 240 Data Structures and Data Management
  • Principios de ingeniería de software CS 247 <- no se requiere para mayores de informática
  • Algoritmos CS 341
  • Interfaces de usuario CS 349 <- no se requieren para mayores de informática
  • Programación concurrente y paralela CS 343 <- no requerida para mayores de informática
  • CS 348 Introducción a la gestión de bases de datos
  • SE 212 Lógica y Computación
  • Sistemas operativos SE 350
  • SE 465 Pruebas de software y garantía de calidad
  • SE 464 Diseño de software y arquitecturas
  • SE 463 Especificación y análisis de requisitos de software
  • Proyecto de diseño SE 490
  • Además, algunas optativas de ingeniería informática y de ingeniería eléctrica

Te he dado MUCHA información para digerir aquí. Pero aquí está mi resumen:

Cuando se trata de los requisitos en matemáticas y estadística, las Ciencias de la Computación y la Ingeniería de Software son casi idénticas. Cubren combinatoria, probabilidad y estadística.

Los requisitos básicos de informática también son similares, y abarcan algoritmos, estructuras de datos y sistemas operativos.

La diferencia clave es que:

  • Software Engineering tiene más requisitos en ingeniería eléctrica y fundamentos de ingeniería de software, tales como pruebas de software, diseño y especificación de requisitos de software.
  • La informática permite más electivos en cursos de informática de nivel superior. Puede elegir entre una amplia gama de temas como seguridad, fundamentos de ingeniería de software, visión por computadora, aprendizaje automático y administración de bases de datos.

Entonces, ¿qué especialidad deberías elegir?

Creo que depende principalmente de tus preferencias. En breve:

  • Debe elegir Informática si le gustan las matemáticas, la lógica o si desea ingresar a un campo especializado en CS, como inteligencia artificial, aprendizaje automático, seguridad o gráficos.
  • Debe elegir Ingeniería de software si está más interesado en el enfoque práctico y si desea conocer el ciclo de vida general de cómo se crea y mantiene el software.

Pero espera, ¿qué es entonces? ¿Qué especialidad es mejor si quieres ser un ingeniero de software?

Aquí está mi opinión En esta universidad en particular (Universidad de Waterloo), con este conjunto particular de requisitos del programa, Ciencias de la Computación es una mejor especialidad si quieres ser un ingeniero de software.

Solo por simplicidad, supongamos que espera obtener uno de los trabajos mejor pagados (~ $ 100,000 USD / año) como ingeniero de software en América del Norte. Estos trabajos suelen ser en grandes empresas de software (piense en Microsoft, Google, Amazon, etc.) o en empresas medianas y de alto crecimiento (piense en Dropbox, Lyft, Snapchat, Pinterest, etc.).

Típicamente, lo que buscan en un candidato a ingeniero de software es la capacidad de escribir código sólido y construir proyectos interesantes, así como los fundamentos de la informática incluyendo estructuras de datos y algoritmos.

Creo que la mejor manera de cultivar este conjunto de habilidades es aprender rápidamente los fundamentos de la informática y dedicar su tiempo a practicar la resolución de problemas y escribir códigos.

Basado en el plan de estudios de Ingeniería de Software y basado en cuán ocupados están los estudiantes de ingeniería en general, creo que sería más difícil hacerlo con Ingeniería de Software que con Informática.

Otro beneficio de este programa de informática en particular es que permite más optativas de informática. Esto también es genial porque, dependiendo de lo que exista en el mercado de trabajo, podrá ajustar sus cursos. Por ejemplo, si el desarrollo de aplicaciones móviles está en demanda, puede aprenderlo. Y si la computación paralela está en demanda, puedes enfocarte en eso.

Estoy seguro de que hay algunos beneficios para aprender los fundamentos de ingeniería de software (gestión de proyectos, diseño, pruebas, etc.). Pero yo personalmente preferiría tener flexibilidad sobre un conjunto predefinido de habilidades. Es por eso que creo que la informática es una especialización importante para convertirme en un ingeniero de software con este plan de estudios en particular.

Por supuesto, esa es solo mi opinión, y esta es solo una universidad en particular. Me encantaría conocer tu opinión y conocer tu experiencia si te graduaste en Informática o Ingeniería de Software. Por favor, hágamelo saber en un comentario a continuación.

Algunas notas

Nota 1: Diferentes universidades tienen requisitos diferentes para estas dos carreras. Este artículo debería ser un buen punto de partida, pero aún debe considerar los requisitos del programa en la universidad a la que le interesa asistir.

Nota 2: Algunas universidades ni siquiera tienen una especialización en Ingeniería de Software. Por ejemplo, la Universidad de Columbia Británica en Vancouver tiene títulos en Informática e Ingeniería Informática, pero no Ingeniería de Software. Pero sí tienen una concentración de ingeniería de software dentro de su programa de Ciencias de la Computación, así como también en Ingeniería Informática.

Si la universidad a la que le interesa asistir no tiene una especialización en Ingeniería de Software, yo elegiría Informática si desea convertirse en desarrollador de software. La Ingeniería en Computación está más enfocada en el hardware que en las Ciencias de la Computación o la Ingeniería de Software, por lo que está menos directamente relacionada con el trabajo de un desarrollador de software típico.

Y aquí están las principales fuentes que utilicé:

¡Gracias por leer y buena suerte al elegir una universidad y tu especialidad! ?