Creo que sería muy interesante escuchar a alguien con experiencia en ambos lados, pero puedo hablar con experiencia desde la perspectiva del software.
El software a gran escala tiene su primer desafío de tener una arquitectura detallada y bien diseñada. Considere el motor de búsqueda de Google utilizado en todas partes. Tiene una interfaz engañosamente simple que oculta una enorme infraestructura detrás de su búsqueda:
- Latencia : ¿cómo responde Google rápidamente a más de un millón de consultas abiertas en milisegundos?
- Sistemas distribuidos: ¿cómo se distribuyen estas consultas en varios centros de datos en todo el mundo? ¿Cómo se comparte la información entre estos diferentes centros de datos?
- Seguridad : ¿cuáles son las preocupaciones de seguridad? ¿Cómo afectan las políticas y las normas sociales el acceso a la información? Más allá de la seguridad de la red con TCP (Internet es una enorme culminación del ingenio arquitectónico), ¿cómo diseñaría la tubería de búsqueda para mantener las entradas confidenciales de los atacantes maliciosos?
- Algoritmos : ¿cómo se puede optimizar el rango de página? ¿Cómo ejecutar rápidamente algoritmos de aprendizaje automático y aprovechar estructuras de datos eficientes para autocompletar y sugerencias?
Y estas son todas las consideraciones antes de que la implementación comience incluso para el software. En cuanto a los edificios, un arquitecto debe elaborar minuciosamente todos los detalles finos relacionados con la asignación geométrica del espacio, los servicios públicos, los diseños ecológicos, las precauciones de seguridad en caso de desastres naturales como terremotos, y mucho más. Pero al final del día, la arquitectura de los edificios se trata de averiguar dónde van los objetos físicos con respecto a otras cosas. El software, diría, tiene su propia complejidad arquitectónica abstracta que se superpone e intrínsecamente ligada a su arquitectura de hardware físico.
- Cómo modelar procedimientos y funciones con diseño dirigido por dominio
- ¿Qué lenguajes de programación debemos aprender para avanzar en el campo del software para una carrera de ECE en 2021?
- Como desarrollador o probador, ¿por qué Agile es beneficioso para usted? Como ayuda
- ¿Es más difícil obtener una licenciatura en Ingeniería de Software o Matemática Actuarial?
- ¿Cómo se implementa la operación de deshacer en general en la mayoría de las aplicaciones?