La diferencia es que los problemas no se dan y las respuestas “correctas” a los problemas aparentemente observados no siempre son soluciones apropiadas.
El espacio de cualquier solución apropiada particular para un problema del mundo real no es paramétrico; es decir, no se le dan todos los problemas y posibles soluciones, y tiene limitaciones económicas y políticas que no son evidentes de inmediato. El campo de los algoritmos es una reducción del software del mundo real; comienza cuando puede plantear un resultado deseado algorítmicamente, y termina una vez que tiene esos resultados, pero antes de que se pongan en práctica y tengan que lidiar con las consecuencias.
¿Qué querrá el usuario entonces? ¿Qué sabremos cuando hayamos observado suficientes estudios de usuarios para saber que los usuarios importantes no harán algo para avergonzar? ¿Hemos hecho compromisos que nos obligarán a hacer algo antes de saber qué es lo correcto?
- ¿Quiénes ofrecen los mejores cursos de software en Bangalore?
- ¿Cuáles son los 'valores predeterminados sanos' para AngularJS?
- ¿Puedo comprar un Lamborghini como ingeniero de software en San Francisco?
- ¿Cuáles son TODAS las ramas separadas de los programadores de software (frontend, back-end, sistema, paralelo, cuántico, webdev, etc.)?
- ¿Cuáles son algunos buenos tutoriales en video sobre patrones de diseño en C ++, Java y Python?
Lo que el diseño de algoritmos deja sobre la mesa, en términos de diseño de software del mundo real, es el diseño de sistemas.