Saya merasa penting untuk terus mempraktikkan keterampilan pemecahan masalah saya. Menulis proyek mini saya sendiri adalah satu cara, tetapi cara lain adalah mencoba dan menyelesaikan masalah yang diposting online. Sangat mudah untuk menemukan kuis pemrograman yang menarik secara online yang memerlukan penerapan algoritma pintar untuk dipecahkan - Project Euler adalah salah satu contoh terkenal.
Namun, dalam banyak proyek kehidupan nyata, desain perangkat lunak - terutama pada fase awal - memiliki dampak besar dan pada tahap selanjutnya tidak dapat diubah semudah algoritma sederhana. Untuk meningkatkan keterampilan ini, saya mencari koleksi masalah desain.
Ketika saya mengatakan "desain", maksud saya desain abstrak dari solusi perangkat lunak - misalnya modul apa yang akan ada dan apa dependensi di antara mereka, bagaimana data akan mengalir dalam program, data seperti apa yang perlu disimpan dalam database, dll. Masalah desain adalah masalah yang sangat penting untuk dipecahkan pada tahap awal proyek apa pun, tetapi solusinya adalah diagram papan tulis tanpa satu baris kode.
Tentu saja masalah semacam ini tidak memiliki solusi tunggal yang benar, tetapi saya akan sangat senang dengan tempat apa pun yang juga menampilkan pro dan kontra dari solusi khas yang mungkin digunakan untuk mendekati masalah.