¿Por qué la ingeniería de protocolo de comunicación es un subconjunto de la ingeniería de software?

He visto los 3 títulos (y algunos más) usados ​​de manera intercambiable. Muchas compañías asumen que son lo mismo, muchas diferencian los títulos en gran medida. En general, todos implicarían algún aspecto del desarrollo de un sistema de software. Históricamente, creo que también ha habido cierta influencia académica en los títulos de trabajo. En mi experiencia he visto:

Programador:
No he visto muchas ofertas de trabajo solo para “programador”, pero generalmente asocio ese rol / título estrictamente a la programación de computadoras (codificación). Esta persona estaría específicamente escribiendo código, en un idioma específico, para un proyecto específico. Muchos colegios imparten cursos de “Programación aplicada” que les permiten a los graduados ingresar rápidamente a la fuerza laboral con una habilidad lingüística específica. Los cursos de videojuegos en la universidad, por ejemplo, enseñan un conjunto de herramientas específico para una plataforma específica, lo que permite a sus estudiantes hacer una transición a la industria como “programadores”. El estereotipado “código mono” es a menudo un “programador de computadoras”.

Desarrollador:
Por lo general, tiene algunos prefijos: desarrollador web, desarrollador de aplicaciones, desarrollador de software. Creo que ha habido cierta confusión con este rol de “desarrollador” específicamente en el desarrollo web porque a menudo incluye todo, desde el desarrollo de frontend desarrollador / backend y, a veces, incluso el diseño gráfico. Algunos diseñadores gráficos convertidos en programadores se llaman a sí mismos “desarrolladores web” sobre “programadores web” para evitar confusiones. Un “desarrollador de aplicaciones” podría trabajar en el diseño y la creación de software en una plataforma propietaria específica, en un entorno propietario específico. He experimentado “desarrolladores” que incluyen cualquier aspecto del diseño / arquitectura / desarrollo de un proyecto de software. Tiendo a pensar en un “desarrollador” como alguien que está involucrado en muchos aspectos de la fase de desarrollo de software, no solo en la codificación.

Ingeniero de software:
Este se pone complicado. Muchos empleadores y programadores de computadoras han comenzado a abusar de este título. * Formalmente *, Ingeniería de Software es una rama acreditada de la ingeniería. Puede obtener su P.Eng (en Canadá) o la Certificación de Ingeniería Profesional (en los estados), no sé cómo funciona en otras partes del mundo. Los sistemas de misión / vida crítica, como el software de guía de aviones, los reguladores de instrumentos médicos (con suerte) son administrados estrictamente y requieren este tipo de certificación (aunque esto no siempre es así).

En la práctica, Software Engineering se ha utilizado como un término más general que describe el desarrollo de software por alguien que tiene un M.Sc / B.Sc en Ciencias de la Computación o equivalente. Esto incluye experiencias o capacitación en prácticas de ingeniería de software como pruebas, diseño, desarrollo, proceso, etc. Desde la perspectiva de los empleadores, este es un título más flexible y más atractivo para los empleados internacionales porque se incluye la parte de “Ingeniería” del “Ingeniero de software” en la lista del NAFTA de profesiones permitidas. Una computadora “Programador” o “Desarrollador” no podrá obtener fácilmente una VISA de trabajo. Un “ingeniero de software” tendrá muchas más posibilidades.

Una vez más, algunas personas tratan estos títulos como sinónimos, yo personalmente no. Si usted es un empleador que está tratando de establecer un título de trabajo, trate de describir qué hará esta persona. Personalmente, he ocupado puestos de trabajo con los 3 títulos enumerados en algún momento, y tenía diferentes funciones (como se describe anteriormente) mientras mantenía cada título. Desde mi experiencia, y un poco de navegación rápida en glassdoor.com mostrará las expectativas de salario como: $ Soft Eng. > $ Developer> $ Programmer pero obviamente siempre hay excepciones.

Espero que esto dé una idea, por favor comente si no está de acuerdo, esta es solo mi perspectiva. Puedes llamarte a ti mismo como quieras, he visto a un “Ingeniero de Arquitectos de Software Sr.” escribiendo código html todo el día …

Si bien esto ha sido parcialmente respondido por otros usos, y es cierto que los dos términos a menudo se usan indistintamente, agregaré una nota que parece faltar:

Un programador (en términos generales) resuelve un problema creando una nueva función, función, sitio, etc., utilizando lenguajes y principios de programación.

Un ingeniero de software crea una solución sistémica , que se enfoca en comprender la función de la solución en el contexto del conjunto, que generalmente incluye el ciclo de vida del sistema, la arquitectura física y virtual del software, los casos de uso práctico y las pruebas de futuro previstas.

Estas dos situaciones no son de ninguna manera mutuamente excluyentes, pero un programador podría, por ejemplo, escribir una herramienta para calcular los números de una empresa de tecnología avanzada, mientras que a un ingeniero de software se le puede encomendar encontrar la mejor manera de incorporar los resultados de la herramienta en los datos existentes Esquema de una manera comprensible.

HOY EL CONOCIMIENTO TIENE PODER. CONTROL DE ACCESO A OPORTUNIDAD Y AVANCE.

Prepararse para una entrevista de trabajo nunca es una tarea fácil. cuando se está preparando para la entrevista de trabajo de ingeniería de software, tanto el conocimiento técnico como la habilidad suave desempeñan un papel importante para la entrevista.

Las habilidades técnicas tienen la máxima prioridad para ingresar a una empresa de TI, donde las habilidades de comunicación le facilitan un poco la tarea. Aquí hay una historia de Uno de mi amigo, Sriram V , que no era bueno en Soft Skill pero era muy fuerte en técnica, es decir, en Java. Obtuvo un trabajo en Huawei, el hecho más sorprendente es que no tenía experiencia en TI, pero también logró ingresar a la mejor compañía de TI como Huawei. Su lucha continúa: vino a Bangalore para encontrar el puesto en el sector central, pero no tuvo oportunidad, por lo que trató de unirse a la compañía de TI, pero no era bueno en materia técnica.
Con la referencia de su hermana, se unió a CourseCube y se unió a Java Course. Después de unirse a CourseCube, construyó una base sólida en técnica, pero su habilidad suave no está a la altura, por lo que con la ayuda de las facultades de CourseCube mejoró bastante y se rompió en Huawei.