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

He visto los 3 títulos (y algunos más) usados ​​indistintamente. Muchas compañías asumen que son iguales, muchas diferencian mucho los títulos. 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. Muchas universidades imparten cursos de “Programación Aplicada” que 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 juego de herramientas específico para una plataforma específica, lo que permite a sus estudiantes hacer la transición fácilmente a la industria como “programadores”. El “mono código” estereotípico es a menudo un “programador de computadoras”.

Desarrollador:
Por lo general, tiene algún prefijo: 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 frontend / desarrollo 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” incluyendo 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 informáticos han comenzado a abusar de este título. * Formalmente *, Software Engineering es una rama acreditada de 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 se administran (con suerte) estrictamente y requieren este tipo de certificación (aunque este no es siempre el caso).

En la práctica, Ingeniería de Software se ha utilizado como un término más general que describe el desarrollo de software por parte de alguien que tiene un M.Sc / B.Sc en Informática o equivalente. Esto incluye experiencias o capacitación en prácticas de Ingeniería de Software como pruebas, diseño, desarrollo, procesos, 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” de “Ingeniero de Software” en la lista 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 intenta establecer un título de trabajo, intente describir lo que hará esta persona. Personalmente, he tenido trabajos con los 3 títulos enumerados en algún momento, y tuve diferentes deberes (como se describió anteriormente) mientras tenía cada título. Desde mi experiencia, y un poco de navegación rápida en glassdoor.com mostrará las expectativas salariales como: $ Soft Eng. > $ Developer> $ Programmer pero obviamente siempre hay excepciones.

Espero que esto te dé una idea, por favor comenta si no estás de acuerdo, esta es solo mi perspectiva. Puedes llamarte como quieras, he visto a un “Ingeniero Arquitecto 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 construyendo algunas funciones, características, sitios, etc. nuevos, utilizando lenguajes y principios de programación.

Un ingeniero de software crea una solución sistémica , centrándose en comprender el papel de la solución en el contexto del conjunto, que generalmente incluye el ciclo de vida del sistema, la arquitectura de software física y virtual, los casos de uso prácticos y la predicción del futuro.

Estas dos situaciones no son mutuamente excluyentes, pero un programador podría, por ejemplo, escribir una herramienta para calcular números para una empresa fintech, mientras que un ingeniero de software puede tener la tarea de 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. TIENE CONTROL DE ACCESO A LA 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, el conocimiento técnico y la habilidad blanda juegan un papel importante para la entrevista.

La habilidad técnica tiene la más alta prioridad para ingresar a una empresa de TI donde, a medida que sus habilidades de comunicación le faciliten un poco el camino. Aquí hay una historia de Uno de mis amigos: Sriram V , que no era bueno en Soft Skill pero era muy fuerte en técnica, es decir, Java. Consiguió un trabajo en Huawei, el hecho más sorprendente es que no pertenecía a TI, pero también logró ingresar a la compañía de TI más importante como Huawei. Su lucha sigue así: llegó a Bangalore para encontrar el trabajo en el sector central, pero no tuvo oportunidad, por lo que trató de unirse a la empresa de TI, pero no era bueno en tecnología.
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 Soft Skill no está a la altura, por lo que, con la ayuda de las facultades de CourseCube, mejoró bastante e irrumpió en Huawei.

El ingeniero de software diseña y crea software nuevo y contribuye en su ingeniería.

El programador escribe códigos, no desarrolla ni diseña ni inventa nada nuevo, solo usa lenguajes existentes como html, css y Java, y son expertos en esos lenguajes

Desarrollador, son como programador, pero no son expertos como programadores y realizan desarrollo general y diseño como diseñadores y desarrolladores web.

Técnicamente, los desarrolladores y programadores de software hacen la codificación sin involucrarse en otras partes del proyecto. Los ingenieros de software pueden cubrir todo el SDLC desde la ingeniería de requisitos hasta las pruebas y el soporte. Pero no muchas personas saben o les importa la diferencia. Prácticamente, son todos iguales en pequeñas y medianas empresas (no en grandes empresas, la diferencia es importante para ellos).

Estos términos a menudo se usan indistintamente, pero hay una diferencia para las organizaciones de TI que desean saber. Esa diferencia radica en la palabra “ingeniero”.

Un programador puede ser cualquiera que piratee el código en casa (este ingeniero comenzó de esa manera) al personal de desarrollo de software que trabaja profesionalmente. El código y los sistemas producidos por los programadores son generalmente de baja calidad en comparación con lo que tradicionalmente se considera “ingeniería”. Me reservo el título de ingeniero de software para el programador que aplica técnicas rigurosas de ingeniería y disciplina al diseño y construcción del código.

¿Qué es la ingeniería?

Los ingenieros (aparte de los ingenieros de software) son personas rigurosamente capacitadas que aplican la ciencia y la tecnología en el desarrollo de productos y sistemas seguros y confiables de los que se puede depender. Me vienen a la mente puentes y edificios, pero también su televisor, teléfono inteligente y cualquier otro electrodoméstico donde la confiabilidad y la seguridad son importantes.

En lo que respecta a los productos, los ingenieros se aseguran de que el producto sea correcto para que su automóvil arranque y no se desvíe de la carretera. Incluso entonces se retiran los autos. Los ingenieros civiles aplican materiales y métodos cuidadosamente examinados para garantizar que su casa y edificio no colapsen encima de usted.

El ingeniero de software / ingeniería es bastante inapropiado ya que, fuera del departamento de defensa, el software se construye utilizando más un proceso de prueba y error en lugar de una ingeniería cuidadosamente ejecutada. En DOD, donde prácticamente cada publicación es un ingeniero de algún tipo, el código está diseñado, planificado, construido y revisado, probado y reexaminado con gran redundancia.

¿Qué código es simplemente “programado”? ¿Por qué?

Algunos programas comerciales están diseñados, esta es la excepción. Conoces estas aplicaciones, ya que funcionan como algo que ha sido diseñado; en otras palabras, simplemente funcionan, funcionan bien y funcionan de manera consistente.

La mayoría de los softwares no están diseñados, se deslizan juntos como si arrojaran barro contra la pared hasta que algo se pega. El software comercial no tiene casi el presupuesto como DOD, por lo que una vez que una aplicación que funciona es “suficientemente buena”, se lanza.

Lo sabes porque tus aplicaciones fallan, fallan o se cuelgan. Tu internet entra y sale. Regularmente debe reiniciar su navegador, teléfono inteligente o computadora portátil.

¿Imagina si su automóvil, avión o puente fuera tan confiable como su aplicación típica? Los aviones caerían del cielo cada hora y los puentes se derrumbarían con tanta frecuencia. Estos sistemas están diseñados (porque deben serlo).

Usted sabe la diferencia si su software está diseñado ya que nunca o rara vez necesita reiniciar.

En términos ideales, los desarrolladores y programadores son más monos de código, mientras que se supone que los ingenieros de software tienen una visión más holística de todo el SDLC, que abarca desde el diseño, la construcción y las pruebas unitarias, la implementación y el mantenimiento.

En realidad, la mayoría de los “títulos” significan poco valioso, a menos que esté buscando un masaje para el ego o desee usarlo para obtener una mejor paga. Podrías ser un programador / desarrollador durante toda tu carrera y estar haciendo un gran trabajo y podrías ser un ingeniero de software, cuando todo lo que haces es escribir código para el submenú de un submenú de un menú.

Mi opinión no va por títulos, mire la calidad del trabajo, el alcance que le brinda para agregar valor.

Hay diferencia y no hay diferencia entre el ingeniero de software y el desarrollador de software. Ingeniero de software, programador de software, arquitecto de software son intercambiables dependiendo de la empresa.

Técnicamente, el ingeniero de software tendrá el requisito de construir un software en el que él / ella piense en el diseño (eficiente), las herramientas que se utilizarán, el proceso a seguir, es decir, en última instancia, la ingeniería del producto.

A diferencia del programador de software, generalmente se le asignará la tarea de mantener algún software, crear parches o implementar instrucciones a partir de una hoja de papel.

Donde trabajo, la mayoría de los ingenieros de software son como

Un programador es alguien que conoce la sintaxis de uno o más idiomas. Ser programador no significa necesariamente que haya sido entrenado para resolver problemas complejos.

Un ingeniero de software es un programador, pero también mucho más. Además de la programación, un ingeniero de software es responsable de diseñar el software, configurar soluciones estándar, automatizar el proceso de implementación de todos los diferentes componentes de software, trabajar con equipos de otros ingenieros de software, probadores, gerentes de programas, etc.

Absolutamente nada. Las diferencias de títulos de trabajo como esas solo importan realmente cuando se trabaja para una organización grande que establece una compensación basada en el título, en cuyo caso desea averiguar qué título le ofrece el mejor trato en esa empresa en particular.

La mayoría de las veces, nada.

Sin embargo, algunos ingenieros de software ya no codifican después de llegar a un cierto nivel; en su mayoría, diseñan la arquitectura del sistema y se centran en ‘tareas más grandes’ que en la implementación real del código.

Si el diseño se realiza correctamente, el código prácticamente se escribirá solo.

Soy Snigdha Sneh Soy básicamente de Jharkhand. He seguido mi tecnología B del Colegio de Ingeniería y Tecnología Malla Reddy, Hyderabad. Mi universidad, francamente, tenía un buen equipo de colocación y fui seleccionado en una multinacional por conducir en el campus. Después de ser seleccionado cuando completé mi título, fui a mi lugar de origen esperando la carta de presentación. Pero después de 3 meses tampoco enviaron ningún correo sobre la unión. Estaba muy decepcionado de que, incluso después de ser colocado, no tengo el trabajo en la mano. Entonces mi hermano me dijo que fuera a Bangalore y tomara un curso de Java y que también buscara trabajo simultáneamente. Empecé a buscar los mejores centros de entrenamiento de Java en Bangalore. Solo pude encontrar un nombre y ese fue Java Learning Center (ahora Course Cube). Este fue el instituto más antiguo y prometedor para las clases de Java. Entonces, vine a Bangalore y me uní a él. Dijeron que era un curso de 3 meses, mientras tanto, algunas compañías también vendrán para ser reclutadas. Estaba muy satisfecho cuando dijeron esto, ya que quería un buen trabajo lo más rápido posible. Por la gracia de Dios, en 2 meses de duración solo ahora estoy en Mindtree Ltd. Nunca esperé que despejaría una entrevista fuera del campus, pero Course Cube me ayudó mucho. Siempre pensamos que lo sabemos todo, pero viniendo aquí llegué a saber que incluso en Java básico básico hay mucho que aprender y saber. Course Cube fue una revelación para mí. Me siento muy afortunado de haber venido aquí, ya que muchos de mis amigos todavía están desempleados y piensan cómo conseguir un trabajo. Se lo recomendaría a todos mis amigos y también a otros estudiantes que todavía están desempleados. Aquí cada sesión será práctica. Junto con la explicación, puede obtener muchos ejemplos prácticos. También imparten clases de aptitud para que tengas un paquete listo para que las compañías lo contraten. Gracias Course Cube por hacerme la vida.

Un programador es un laico que solo puede programar, es decir, codificar, mientras que el ingeniero de software está involucrado en el análisis, diseño, codificación, prueba y mantenimiento del software, y el desarrollador se ocupa del desarrollo solo no de probar y mantener el software.

El desarrollador / ingeniero de software se ocupa de la CODIFICACIÓN y de la ARQUITECTURA del software.

Programador se ocupa de SOLO CODIFICACIÓN!

¡GRACIAS!

Aquí está la respuesta para casi la misma pregunta:
¿Por qué la ingeniería de protocolos de comunicación es un subconjunto de la ingeniería de software?

¿Cuál es la diferencia entre asociado e ingeniero de servicio?