私は問題解決スキルを練習し続けることが重要だと感じています。私自身のミニプロジェクトを書くことは一つの方法ですが、別の方法はオンラインに投稿された問題を解決しようとすることです。巧妙なアルゴリズムを適用して解決する必要のある興味深いプログラミングクイズをオンラインで簡単に見つけることができます-Project Eulerはよく知られた例の1つです。
ただし、多くの実際のプロジェクトでは、ソフトウェアの設計(特に初期段階)に大きな影響があり、後の段階では単純なアルゴリズムほど簡単には調整できません。これらのスキルを向上させるために、設計上の問題のコレクションを探しています。
「設計」と言うとき、ソフトウェアソリューションの抽象的な設計を意味します。たとえば、どのモジュールが存在し、それらの間に依存関係があるのか、プログラム内でデータがどのように流れるのか、データベースなど。設計上の問題は、プロジェクトの初期段階で解決することが重要な問題ですが、その解決策は、コードが1行もないホワイトボード図です。
もちろん、この種の問題には単一の正しい解決策はありませんが、問題にアプローチするために使用される可能性のある典型的な解決策の長所と短所も表示する場所には特に満足しています。