Los institutos de educación superior aún no están de acuerdo con el significado de muchos títulos técnicos, como ingeniería de software e informática. Estos campos, junto con la tecnología de la información, los sistemas de información y la ingeniería informática, son simplemente demasiado nuevos. Por lo tanto, lo que una escuela o un empleador percibe como un requisito de la informática puede ser interpretado por otra como ingeniería de software.

Hay muchas similitudes entre los dos campos. Se espera que ambos comprendan cómo funcionan las computadoras, cómo están estructurados los programas y qué es lo que el usuario tiene derecho a esperar. Sin embargo, la informática suele estar supervisada por el departamento de matemáticas, mientras que la ingeniería de software normalmente se incluye en la escuela de ingeniería.

En los primeros días, las computadoras estaban programadas para realizar una determinada función. El usuario hizo poco más que presionar un botón. Permitir un mayor control por parte del usuario llevó al desarrollo de lenguajes de programación y compiladores para traducir el lenguaje “normal” al lenguaje informático. Las cintas o tarjetas perforadas permitían al usuario escribir sus propias rutinas. El golpe de tecla real a menudo lo realizaba otra persona, generalmente alguien con habilidades administrativas. Un punto fuera de lugar, un corchete que faltaba o una letra transpuesta significaba que todo el programa fallaría. A menudo no había ni idea de por qué, lo que dejaba al programador que estudiara minuciosamente las tarjetas y el programa.

La programación de computadoras comenzó a cobrar fuerza con el desarrollo de la computadora personal. Los lenguajes simplificados como BASIC le dieron más control al usuario medio. Unos minutos dedicados a un libro permitieron al usuario comenzar a construir programas rudimentarios. Muchas veces, sin embargo, la falta de comprensión de lo que una computadora podía y no podía hacer conducía al fracaso. Esto sentó las bases para el ingeniero de software, que no solo comprende el programa, sino también las capacidades físicas del hardware.

Un método para examinar las diferencias entre la ingeniería de software y la informática es considerar cómo la mayoría de las impresoras fueron controladas por las primeras computadoras personales. En la mayoría de los casos, para cambiar las funciones de la impresora, como el tamaño de fuente, el número de copias o el tamaño del papel, es necesario ingresar la cadena de impresora adecuada en DOS. Hoy, estas funciones se controlan desde una interfaz en el escritorio. El usuario puede ingresar la información en el software o en el cuadro de diálogo de la impresora. En una declaración simplificada, se podría decir que la creación de los cuadros de diálogo y el código subyacente fue proporcionada por un ingeniero de software. La capacidad de la impresora para comprender los comandos y cumplirlos fue proporcionada por el informático.

En los términos más básicos, CS se centra más en el hardware, los circuitos y las redes involucradas. Un SE suele estar más preocupado por crear un programa que sea eficiente en términos de tamaño y velocidad y optimizar la interfaz de usuario. Sin embargo, ninguna de las áreas tiene una patente en un área. Para construir una red o una computadora que sea confiable y eficiente, se requiere comprender las demandas que se le impondrán. Para escribir un programa potente y “libre de errores” es necesario saber cómo funcionan los compiladores, qué significan las velocidades del procesador y la memoria necesaria.

Con poca estandarización entre universidades, la calidad del título puede variar mucho. Algunas universidades requieren que los estudiantes de informática tomen Microsoft Office como su primer curso de programación. En algunos casos, esto puede ser seguido por Pascal, COBOL o RPG, ninguno de los cuales tiene una gran demanda en la actualidad. También pueden enseñar Visual Basic, Visual C ++ o Visual J sin primero enseñar el idioma subyacente. Del mismo modo, los ingenieros de software pueden graduarse sin una comprensión básica de la tecnología inalámbrica. Aquellos que buscan un título, así como los empleadores, podrían beneficiarse mejor si ignoraran el título y examinaran los cursos requeridos.

No hace muchos años, los puestos en ciencias de la computación solían ocuparlos personas con otros títulos, como ingenieros eléctricos. Los ingenieros de software solían ser aquellos con habilidades de programación, muchos de los cuales no tenían ningún título, pero eran autodidactas. A medida que la tecnología se hizo más compleja, siguió una mayor especialización. Solo considerando el objetivo es posible diferenciar entre ellos. Por ejemplo, si el objetivo es producir el mejor juego de todos los tiempos, es probable que un ingeniero de software sea el que supere el desafío. Sin embargo, si el objetivo es producir la próxima generación de sistemas de juego, es probable que un científico informático haga la mayor contribución.