Я вважаю, що важливо продовжувати практикувати свої навички вирішення проблем. Створення власних міні-проектів - це один із способів, але інший - спробувати вирішити проблеми, розміщені в Інтернеті. В Інтернеті легко знайти цікаві вікторини з програмування, які потребують застосування розумних алгоритмів для вирішення - Project Euler - один з відомих прикладів.
Однак у багатьох реальних проектах дизайн програмного забезпечення - особливо на початкових етапах - має великий вплив, і на пізніших етапах його неможливо налагодити так легко, як звичайні алгоритми. Для вдосконалення цих навичок я шукаю будь-яку колекцію дизайнерських проблем.
Коли я кажу "дизайн", я маю на увазі абстрактне проектування програмного рішення - наприклад, які модулі будуть і які залежності між ними, як будуть надходити дані в програму, які дані потрібно зберігати в бази даних тощо. Проблеми з дизайном - це ті проблеми, які вирішувати вирішально на ранніх стадіях будь-якого проекту, але їх рішення - це діаграма дошки без єдиного рядка коду.
Звичайно, подібні проблеми не мають єдиного правильного рішення, але я буду особливо задоволений будь-яким місцем, де також відображаються плюси і мінуси типових рішень, які можуть бути використані для вирішення проблеми.