Ritengo sia importante continuare a praticare le mie capacità di risoluzione dei problemi. Scrivere i miei mini-progetti è un modo, ma un altro è cercare di risolvere i problemi pubblicati online. È facile trovare online interessanti quiz di programmazione che richiedono l'applicazione di algoritmi intelligenti per risolvere: Project Euler è un esempio ben noto.
Tuttavia, in molti progetti reali il design del software - specialmente nelle fasi iniziali - ha un grande impatto e in fasi successive non può essere modificato con la stessa facilità dei semplici algoritmi. Al fine di migliorare queste capacità, sto cercando qualsiasi raccolta di problemi di progettazione.
Quando dico "design", intendo il disegno astratto di una soluzione software, ad esempio quali moduli ci saranno e quali sono le dipendenze tra di loro, come i dati fluiranno nel programma, quale tipo di dati deve essere salvati nel database, ecc. I problemi di progettazione sono quei problemi che sono fondamentali da risolvere nelle prime fasi di qualsiasi progetto, ma la loro soluzione è uno schema di lavagna senza una singola riga di codice.
Ovviamente questo tipo di problemi non ha una sola soluzione corretta, ma sarò particolarmente felice con qualsiasi posto che mostri anche vantaggi e svantaggi delle soluzioni tipiche che potrebbero essere utilizzate per affrontare il problema.