Sinto que é importante continuar praticando minhas habilidades de resolução de problemas. Escrever meus próprios mini-projetos é uma maneira, mas outra é tentar resolver os problemas publicados on-line. É fácil encontrar questionários de programação interessantes on-line que exigem a aplicação de algoritmos inteligentes para resolver - o Project Euler é um exemplo bem conhecido.
No entanto, em muitos projetos da vida real, o design do software - especialmente nas fases iniciais - tem um grande impacto e, em estágios posteriores, não pode ser ajustado tão facilmente quanto os algoritmos comuns. Para melhorar essas habilidades, estou procurando qualquer coleção de problemas de design.
Quando digo "design", quero dizer o design abstrato de uma solução de software - por exemplo, quais módulos haverá e quais são as dependências entre eles, como os dados fluirão no programa, que tipo de dados precisam ser salvos no banco de dados etc. Os problemas de design são aqueles críticos para solucionar nos estágios iniciais de qualquer projeto, mas sua solução é um diagrama de quadro branco sem uma única linha de código.
É claro que esse tipo de problema não possui uma única solução correta, mas ficarei muito feliz com qualquer lugar que também mostre prós e contras das soluções típicas que podem ser usadas para abordar o problema.