Déjame responderlo en dos etapas.
- ¿Conocer solo lenguajes de programación como C o C ++ es suficiente o también se requieren otros conocimientos?
De ningún modo. Para construir un software como estos, necesita conocimientos más allá de los lenguajes de programación. Por ejemplo, consideremos que está trabajando en un navegador web como Firefox. Necesitaría conocimientos sobre redes, sockets, protocolos, analizadores, medidas de seguridad, métodos de representación y muchos otros factores. Cada una de estas cosas son pequeños campos de investigación en sí mismos en los que las personas han pasado años trabajando. Esta es una de las razones por las cuales las personas generalmente no construyen estas cosas por sí mismas, sino que un grupo lo hace. Aún así, uno puede construir uno solo dependiendo de otras tecnologías preparadas para el soporte. Por ejemplo, puede crear un navegador en aproximadamente una hora si utiliza Qt y WebKit.
Entonces, ¿cómo se hacen estas cosas con tantas cosas para trabajar? Llegando a la parte 2.
- ¿Cuál es la diferencia entre el patrón arquitectónico y el patrón de diseño en el desarrollo de productos de software?
- ¿Qué plataformas de blogs tienen el mejor soporte para escribir sobre programación?
- ¿Cómo pasan los profesionales de TI en Banglore su tiempo libre y los fines de semana (no soy realmente un tipo fiestero. Me interesan cualquier tipo de actividades deportivas)?
- Si pudieras reiniciar tu carrera de software ahora, ¿qué cosas harías primero y principalmente?
- ¿Qué información necesita un probador mientras escribe una prueba unitaria?
- ¿Cómo se hacen?
La respuesta de dos palabras sería Software-Engineering y Project-Management.Explicar esto en detalle tomaría algunos libros por sí mismos, pero podemos echar un vistazo al esqueleto de la obra.
- Definición de requisitos
Cada software está hecho para cumplir algunos requisitos, estos requisitos se anotan rápidamente y se agrupan en muchos grupos diferentes, como los requisitos del usuario, los requisitos del sistema, la seguridad, etc. - Planificación
Ahora se elabora un plan detallado sobre cómo se debe lograr cada una de estas cosas en el software. Cómo deberían funcionar los emoticones, cómo debería funcionar el inicio de sesión con contraseña, qué datos deberían almacenarse para hacer estas cosas, etc. - Arquitectura y Diseño
Según el plan, se diseña y documenta una arquitectura de software con todos los detalles necesarios. Esto se convertirá en la base para la implementación técnica del software. - Planificación de proyectos
Se elabora un cronograma detallado y un plan de operación para asignar y finalizar puntualmente el trabajo en cada etapa a tiempo. Todo el trabajo se corta en etapas y cada etapa proporciona un hito individual. También se elaboran planes para cosas como revisión de código, control de versiones, copia de seguridad, etc. - Desarrollo
Las tareas de codificación reales se seleccionan y asignan específicamente a los codificadores que trabajan en él y envían el cambio al sistema de control de versiones donde se revisa y corrige y se recomiendan nuevos cambios. - Pruebas
El software desarrollado se prueba y se encuentran e informan errores. - Lanzamiento
La aplicación completa lista para el mercado se lanza para su uso. - Si bien este es el camino principal de producción, uno puede encontrar esto demasiado rígido en el mundo de desarrollo acelerado de hoy en día, donde las nuevas empresas y las empresas quieren sacar las cosas rápido y perfecto. Se utiliza un nuevo sistema llamado método de desarrollo de software ágil para obtener resultados rápidos.
Otros, como el software de código abierto, utilizan su propio método Build-As-You-Go basado en la comunidad, donde el desarrollo se realiza a medida que la comunidad recibe más contribuciones.