Tengo una licenciatura en Lógica y quiero estudiar Ingeniería de Software. ¿Qué desventajas / ventajas habrá para mí en comparación con un graduado de CS?

David Janzen de CalPoly ofrece la siguiente pieza que destaca las diferencias entre la informática y la ingeniería de software.

1. La informática abarca los conceptos y tecnologías centrales relacionados con la forma de hacer que una computadora haga algo. Aprender a programar una computadora escribiendo software es esencial, y la programación informática se usa en la mayoría de los cursos de informática. Aprenderá detalles sobre cómo funcionan las computadoras y las redes, pero con énfasis en cómo funcionan los lenguajes de software y programación. Aprenderá cómo hacer que hagan cosas muy sofisticadas (por ejemplo, gráficos, robótica, bases de datos, sistemas operativos). También aprenderá sobre la teoría detrás de cómo y por qué funcionan las computadoras y el software. En su proyecto senior, abordará un problema en la frontera de la informática. Puede estar creando un nuevo sistema, descubriendo mejores formas de diseñar software o desarrollando nuevos algoritmos para proyectos en campos completamente diferentes; tu decides. Los proyectos de estudiantes anteriores incluyen: videojuegos, herramientas de modelado y animación por computadora, y un controlador de Linux para el control remoto de Wii.

2. Ingeniería en Computación le enseña cómo diseñar sistemas que incluyen tanto hardware como software. Tomarás clases sobre cómo funciona el hardware y cómo construir una computadora. Tomarás clases de software con énfasis en software relacionado con el hardware, como controladores de dispositivos y sistemas operativos. Los cursos de ingeniería informática son impartidos por profesores de los departamentos de informática y de ingeniería eléctrica. Los ingenieros informáticos que trabajan diseñan las computadoras y el software básico que las ejecuta, incluidas las computadoras personales y los sistemas informáticos “integrados” que ejecutan automóviles, aviones, videojuegos, etc.

3. La Ingeniería de Software se enfoca en cómo diseñar y construir software en equipos. Tomarás muchos de los mismos cursos que harías en informática, pero tomarás cursos adicionales que te enseñarán sobre temas como ingeniería de requisitos, arquitectura de software, pruebas de software e implementación de software. Aprenderá a trabajar con personas (comunicación, gestión, trabajar con clientes no técnicos), procesos para desarrollar software y cómo medir y analizar el producto de software y el proceso de software. La especialización en ingeniería de software requiere que tome una secuencia de tres cursos (nueve meses de duración) llamada la piedra angular de la ingeniería de software. Los cursos finales se centran en un gran proyecto para un cliente externo. Los estudiantes trabajan en equipos de cuatro o cinco personas para obtener y desarrollar requisitos para el sistema, diseñar una arquitectura, construir prototipos, implementar el sistema, luego implementar y mantener el sistema.

Tanto la informática como la ingeniería de software tienen una gran demanda en todo el mundo. Entonces, ¿cuál debe seleccionar?

Primero, tenga en cuenta que hay mucha superposición entre la informática y la ingeniería de software. Lea las definiciones anteriores y vea dónde encaja mejor. ¿Te gusta diseñar y codificar software? ¿Te gusta trabajar en equipo? ¿Te gustan los controladores técnicos detrás del hardware y las redes? ¿Te gusta investigar y ver cómo mejorar el poder de las computadoras? ¿Le gusta trabajar con usuarios que pueden no tener idea sobre el software o cómo está diseñado? ¿Le gusta escribir requisitos y seguir los procesos de desarrollo de software?

Las dos áreas de CS y SE no tienen límites estrictos. No es que uno sea construcción y el otro esté volando un avión. Imagine CS y SE como una casa con una base común. Una vez que se construye la base, a algunas personas les gustaría trabajar con los materiales que se utilizan para construir la casa, mientras que otras pueden estar interesadas en asegurarse de que la casa sea eficiente y construir cosas que harán que vivir en la casa sea más placentera. Por lo tanto, le animo a que tome esta decisión basándose en lo que realmente disfruta hacer. ¡Sé que tomarás la decisión correcta!

Hay mucha lógica matemática en los detalles detallados de compiladores, lenguajes de programación y software. Como resultado, encontrará el trabajo de razonamiento sobre programas bastante accesible.

Hay varias áreas de práctica donde necesitará una mayor profundidad:

  • Proceso de desarrollo : hay un flujo de requisitos, diseño, implementación, prueba e implementación. Puede aprender esto “en el trabajo” hasta cierto nivel, pero hay un beneficio real de aprender esto de manera integral y sistemática.
  • Análisis de algoritmos : esta es una herramienta importante para razonar sobre el rendimiento de los programas. Si no comprende este material, no tendrá el control total del comportamiento de los sistemas que construya.
  • Estructuras de datos : los programas operan con datos y es necesario organizarlos. Existen poderosas técnicas para analizar y sintetizar estructuras de datos que necesitará para obtener el mejor desempeño como ingeniero de software.
  • Arquitectura y diseño del sistema : esta es un área avanzada en la que los graduados de CS recientes suelen ser débiles, aunque hay excepciones, y que se aprende trabajando en grandes proyectos liderados por ingenieros experimentados y experimentados.

Por lo tanto, puede convertirse en un programador de nivel de entrada plausible con experiencia en lógica, pero un verdadero ingeniero de software tiene mucha más profundidad en las áreas que enumeré.

Hice mi licenciatura en EE, e hice mi maestría en ingeniería de software. Para prepararme para el programa, hablé con el presidente del departamento y tomé tres cursos de pregrado como requisitos previos. Estructuras de datos y análisis de algoritmos, sistemas operativos e ingeniería de software. Compré el libro para Data Structure un par de meses antes de que comenzara la clase, leí los primeros tres capítulos y trabajé todos los ejemplos en c ++ antes de comenzar el curso. Estuve fuera de la escuela durante un par de años de licenciatura. Descubrí que mi experiencia laboral y mis experiencias autodidactas en la escritura de software eran más que suficientes para ser un excelente desempeño entre otros estudiantes.

Si ya desarrolla software, debería hacerlo, es una excelente manera de llenar sus vacíos y ver qué tan bien lo hace en comparación con otros estudiantes. Si realmente te apasiona desarrollar software, lo harás bien.

Informática vs Ingeniería de Software

En mi escuela, la informática está menos orientada a la gestión de proyectos y no requiere que hagas una tesis o un proyecto final. No me di cuenta de esto hasta después de completar 3 cursos. Pero mi consejo para usted es que verifique si tiene la opción de hacer una opción de solo curso, si planea trabajar en el campo y no hacer un PHD.

Si cree que eventualmente tomará la ruta de PHD, desea hacer un programa con una opción de tesis. Asegúrese de mirar el programa de estudios real para los títulos que está pensando tomar y ver cuál tiene más cursos en los que esté interesado.

Espero que ayude y buena suerte.

More Interesting

¿Cuáles son las ventajas y desventajas de trabajar como ingeniero de software en una empresa comercial de alta frecuencia frente a una empresa tecnológica? ¿Qué opciones de carrera tiene un ingeniero de software después de trabajar durante algún tiempo en una empresa comercial de HF?

¿Cómo comenzar con el desarrollo de software? Puedo leer y escribir varios idiomas, pero no sé nada más sobre el desarrollo de software. ¿Qué herramientas necesito para comenzar? ¿Cuáles son las cosas que debo saber?

¿Puedes hacer seis figuras siendo un ingeniero de software que hace aplicaciones de negocios? ¿Si es así, entonces cómo?

Estoy más fresco y tengo dos ofertas de trabajo: una en una startup que realiza análisis y otra en una gran compañía de software conocida como desarrollador de Java. ¿Cual deberia elegir?

¿Debo elegir 'teoría de la computación' o 'ingeniería de software' para mi electivo?

¿Cuáles son los idiomas importantes para la ingeniería de software?

Quiero avanzar en mi carrera como desarrollador de software Python. Tengo conocimientos básicos en C, C ++ y Java. ¿Qué necesito aprender además de eso? ¿Puedo construir una carrera sólida como desarrollador de software Python en India?

¿Es la ingeniería de software un mejor trabajo que la banca de inversión?

Cómo cambiar de carrera al desarrollo de software, como crear aplicaciones web / móviles, mientras me gano la vida a medida que construyo mi conjunto de habilidades

¿Cuál es la diferencia en las perspectivas laborales en la industria entre una maestría en informática y un doctorado en informática?

¿Qué debo hacer si realmente me apasiona la tecnología pero no puedo ubicarme en una importante empresa de software basada en productos?

Soy ingeniero de software, pero quiero cambiar al diseño UI / UX. ¿Cómo lo hago?

¿Quiénes son generalmente 'más inteligentes': técnicos / soporte de TI o desarrolladores / ingenieros?

¿Cómo obtengo un trabajo del gobierno en un campo de software en India?

¿Es posible pasar de no tener conocimientos de software a un trabajo en Silicon Valley en 4 años, o la duración de una licenciatura? ¡Gracias!