Sento che è importante continuare ad esercitare le mie capacità di problem solving. Scrivere i miei mini-progetti è un modo, ma un altro è cercare di risolvere i problemi pubblicati online. È facile trovare interessanti quiz di programmazione online che richiedono l'applicazione di algoritmi intelligenti per risolvere: Project Euler è un esempio ben noto.
Tuttavia, in molti progetti nella vita reale la progettazione del software - specialmente nelle fasi iniziali - ha un grande impatto e nelle fasi successive non può essere modificata facilmente come semplici algoritmi. Al fine di migliorare queste competenze, sto cercando qualsiasi raccolta di problemi di progettazione.
Quando dico "design", intendo la progettazione astratta di una soluzione software - ad esempio quali moduli ci saranno e quali sono le dipendenze tra loro, come i dati scorreranno nel programma, che tipo di dati devono 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 è un diagramma di lavagna senza una singola riga di codice.
Naturalmente questo tipo di problemi non ha un'unica soluzione corretta, ma sarò particolarmente contento di qualsiasi luogo che mostri anche vantaggi e svantaggi delle soluzioni tipiche che potrebbero essere utilizzate per affrontare il problema.