La programación competitiva y el desarrollo de software son bestias completamente diferentes. El primero trata casi por completo de estructuras de datos, algoritmos y demás. Este último es un proceso en el que usted (u otra persona) concibe una idea o tiene un problema, se le ocurre un diseño para resolverlo, implementa ese diseño, prueba y depura esa implementación, la implementación se entrega, el producto es compatible y los errores se corrigen, y se agregan características adicionales con el tiempo. El proceso no es iterativo; Puede dar vueltas varias veces para refinar la comprensión, el diseño, etc.
Obtiene un poco del proceso de diseño y hace algunas de las cosas que hacen los desarrolladores de software cuando implementan ese diseño, tal vez un poco de prueba y depuración, pero eso es todo cuando se hace una programación competitiva. No hay necesidad de respaldar el resultado más allá del final de la competencia. No tiene que lidiar con las especificaciones cambiantes, el hardware problemático, las bibliotecas de terceros que no funcionan como se anuncian o están mal documentadas, o los usuarios que exigen mejores resultados más rápido. No tiene que preocuparse por si alguien (usted u otro desarrollador) tendrá que mirar su código en seis meses o seis años y tiene que descubrir por qué no funciona del todo bien.
El desarrollo de software lleva años para aprender a hacerlo bien. No se desanime si es difícil al principio. Si estás realmente interesado en hacerlo y estás abierto al aprendizaje, llegarás allí.
- ¿Cuál es el día típico para un desarrollador de software senior?
- Dada una lista no ordenada de enteros, devuelve verdadero si la lista contiene duplicados difusos dentro de k índices de cada elemento. ¿Cuál es el algoritmo óptimo para este problema?
- ¿Cuántos ingenieros de software hay en el mundo?
- ¿Cuáles son las diferencias entre HLD y LLD en un ciclo de vida de desarrollo de software?
- ¿Qué temas necesito para ser perfecto para conseguir un trabajo como desarrollador de software de nivel de entrada o desarrollador de Java?