Siento que es importante continuar practicando mis habilidades para resolver problemas. Escribir mis propios mini proyectos es una forma, pero otra es tratar de resolver problemas publicados en línea. Es fácil encontrar cuestionarios de programación interesantes en línea que requieren la aplicación de algoritmos inteligentes para resolver: el Proyecto Euler es un ejemplo bien conocido.
Sin embargo, en muchos proyectos de la vida real, el diseño del software, especialmente en las fases iniciales, tiene un gran impacto y en etapas posteriores no puede modificarse tan fácilmente como los algoritmos simples. Para mejorar estas habilidades, estoy buscando cualquier colección de problemas de diseño.
Cuando digo "diseño", me refiero al diseño abstracto de una solución de software, por ejemplo, qué módulos habrá y cuáles son las dependencias entre ellos, cómo fluirán los datos en el programa, qué tipo de datos deben guardarse en el base de datos, etc. Los problemas de diseño son aquellos que son críticos de resolver en las primeras etapas de cualquier proyecto, pero su solución es un diagrama de pizarra sin una sola línea de código.
Por supuesto, este tipo de problemas no tiene una única solución correcta, pero estaré especialmente satisfecho con cualquier lugar que también muestre los pros y los contras de las soluciones típicas que podrían usarse para abordar el problema.