Durante décadas, el grado aceptado para convertirse en desarrollador de software fue "Compter Science".
Ya hemos tenido algunas preguntas sobre si ese título realmente prepara a los estudiantes para desarrollar software.
Algunas escuelas, en los últimos 8 años más o menos, comenzaron a ofrecer múltiples especializaciones distintas en programación. Usando el currículo de mi escuela:
- Computer Science , que comienza con algunos cursos de programación de introducción en el primer año, y luego se enfoca en informática teórica, algoritmos y un poco de cosas del sistema operativo. La mayoría de las clases involucran varios proyectos más pequeños y tareas, hechas en solitario o en parejas.
- La Ingeniería del Software , que comienza con los mismos cursos de programación de introducción, hace algunas clases de teoría y luego entra en prácticas de desarrollo de software (pruebas, metodologías de proceso, métricas de software, recopilación de requisitos) y diseño de software (diseño de sistema distribuido, diseño de sistema de información , diseño en tiempo real / integrado, diseño de subsistema, etc.)
Las diferentes escuelas lo hacen de manera diferente, por lo que lo anterior es solo un ejemplo del mundo real con el que estoy familiarizado. Lo que pregunto es: ¿hay una necesidad de especializaciones distintas en programación?
computer-science
engineering
Fishtoaster
fuente
fuente
Respuestas:
Sí, deberían estarlo.
La relación entre la informática y la ingeniería de software es la misma que la relación entre física e ingeniería mecánica. Uno proporciona los antecedentes teóricos mientras que el otro toma esas teorías, junto con buenos principios de ingeniería, y los aplica al diseño e implementación de software.
Necesita ambos para producir software nuevo y mejor. Una buena educación en informática capacita a las personas para producir nuevos y mejores algoritmos, estructuras de datos, lenguajes y paradigmas de programación, compiladores y una serie de otras cosas que pueden usarse para mejorar los sistemas de software. Una buena educación en ingeniería de software, por otro lado, lo capacita para tomar estas herramientas y conocimientos obtenidos a través de un estudio científico de la computación, junto con un conocimiento del ciclo de vida de desarrollo de software y modelos de proceso para construir realmente el sistema que un cliente desea y necesita .
fuente
Es bien sabido que un plan de estudios típico de CS no prepara uno para la industria, no tanto como quiere que esté preparado de todos modos. Entonces, sí, existe la necesidad de una especialización en ingeniería de software, y los dos deben ser distintos, aunque definitivamente en la misma facultad.
fuente
Deben ser disciplinas diferentes, pero no a nivel de pregrado. Simplemente no veo cómo pueden agrupar todo lo que se necesita para la Ingeniería del Software en una licenciatura. Del mismo modo que no vemos títulos universitarios en Ingeniería de Sistemas (donde las personas obtienen una maestría después de obtener un título en EE, CE, Ingeniería Mecánica o CS), es un caso similar con Ingeniería de Software.
Es un enfoque multidisciplinario basado en gran medida en informática y / o MIS. Las personas realmente se convierten en ingenieros de software en la práctica (y no solo en el título) después de seguir un curso avanzado y / o experiencia laboral en el campo, siempre que lo posterior se realice en entornos conductivos de ingeniería de software.
La mayoría de las personas tienen títulos de ingeniería de software, pero en realidad no han avanzado más allá de la codificación. Esto no es una molestia para ellos, sino una observación: no han estado suficientemente expuestos al tipo de trabajo que los ayudaría a acumular experiencia laboral más allá de la codificación. Peor aún, la mayoría de los trabajos y organizaciones se ejecutan atrozmente y no conducen la ingeniería de software adecuada.
Además, sin un poco de trabajo o madurez escolar, el material de ingeniería de software simplemente volará sobre las cabezas de la mayoría de los estudiantes de pregrado.
fuente