¿Cuál es la diferencia entre ingeniería de software y otra ingeniería?

Es una cuestión de especialización vs. conocimiento general. La ingeniería de software no le enseñará nada sobre ingeniería mecánica, civil o industrial. En la mayoría de los casos, ni siquiera incluirá un diseño de circuito digital, y mucho menos circuitos analógicos. Por lo tanto, no estará calificado para un trabajo de EE.

La mayoría de las otras disciplinas de ingeniería requieren una cierta cantidad de cursos de disciplina cruzada, pero SE está bastante aislado de otros campos de ingeniería.

La razón fundamental es que el software es el único campo de ingeniería que existe en un entorno totalmente artificial. La mayoría de los campos de ingeniería están limitados por el mundo físico que buscan manipular. La ingeniería de software, sin embargo, se trata casi exclusivamente de construcciones creadas por personas y generalmente no se enseña en términos de las limitaciones impuestas por el mundo físico.

Los cursos de Ingeniería de Software le enseñan lenguajes de programación; metodologías, algoritmos y técnicas de desarrollo de software; utilizando bibliotecas y marcos de software estándar para aplicaciones específicas como gráficos 3D o juegos, o inteligencia artificial, etc. También le enseñan conceptos básicos de ingeniería como matemáticas y física. Al trabajar como ingeniero de software, a menudo necesita trabajar con ingenieros en otros campos para escribir software para sus aplicaciones, por ejemplo, estuve trabajando durante varios años con ingenieros petroleros mientras escribía una serie de programas para fracturación hidráulica.

La ingeniería de software es un término que, como la arquitectura de software, es una analogía de lo real.

Hoy en día, la mayoría de los ingenieros comienzan en la universidad, pero cuatro o cinco años de experiencia académica no los hace completamente un ingeniero. En los EE. UU., Por ejemplo, además se requieren unos cuatro años de experiencia laboral para convertirse en un ingeniero colegiado, que es una certificación profesional algo similar a convertirse en abogado solo una vez que uno ha sido llamado a la barra en una jurisdicción específica.

Podríamos llamar a los desarrolladores de software que se especializan en depuración en lugar de escribir nuevos códigos “médicos de software”. Afortunadamente no, pero la analogía ridícula es en realidad más o menos la misma que la de uso común.

Ahora, las computadoras definitivamente necesitan ingenieros eléctricos que trabajen allí, y en casos de misión crítica como el aterrizaje en la luna por primera vez, software para reactores nucleares o para muchas aplicaciones médicas, definitivamente debe tener el resultado final de siglos de experiencia. desarrollado en la profesión de ingeniería en la mezcla.

Yo estimaría que más ingenieros se convierten en gerentes de personas con habilidades técnicas (mecánica para ingeniería mecánica, electricistas para ingenieros eléctricos en grandes proyectos, etc.) que dedicar toda su carrera a “ingeniería”. Por otro lado, un ingeniero de software es esencialmente un programador glorificado.

Es bastante desafortunado que en los Estados Unidos el término “ingeniero” en lugar de “desarrollador” para el software se haya generalizado. Pero por otro lado, es solo una palabra. Es mucho más desafortunado que la República Popular Democrática de Corea no sea ninguna de esas cosas, porque es la del Norte.

Dicho esto, las cosas están mejorando, con la ubicuidad de Internet y tal vez sobre todo de la cultura de inicio, ya que a menudo los gerentes en la industria del software ahora tienen la experiencia técnica ellos mismos. Y por startups, también me refiero a MSFT y Apple.

Hay pocas diferencias La ingeniería es construir cosas, ya sean cohetes o programas de computadora.

Sin embargo, se me ocurren algunos. Por un lado, no tienes que unirte a ningún club o gremio de viejos o comprar trozos de papel para convertirte en ingeniero de software. Por otro lado, la perfección en el software es alcanzable, mientras que es imposible en cualquier cosa que involucre cosas físicas como edificios o máquinas. La primera de ellas es una libertad importante en mi opinión, y la segunda es una bendición para los perfeccionistas. Cuando escribe un programa para agregar 2 más 2, el resultado siempre es exactamente 4, un resultado perfecto que no puede duplicarse al construir motores, aviones o puentes. Siempre es perfecto y nunca se desgasta.