Ini pertanyaan yang bagus. Dan saya pikir bukan hanya programmer senior yang mengalami hal ini - mengatasinya lebih awal bisa menjadi cara yang bagus bagi pelajar untuk mempercepat pengembangan keterampilan mereka.
Ada dua sisi dari masalah ini - yang buruk dan yang sebenarnya bagus .
Buruk - Memilih solusi yang salah
Berikut ini adalah contoh - sebagai pengembang berpengalaman, Anda mungkin harus hanya benar-benar memecahkan dua masalah sebelumnya, masalah A dan B . Pada titik ini, Anda tahu ada masalah yang Anda tidak tahu, tetapi mengingat lensa pengalaman Anda sendiri, banyak dari apa yang Anda lihat tampak seperti itu mungkin A atau B .
Datanglah masalah baru. Untuk Anda, masalah ini baru terlihat seperti masalah A , sehingga Anda mengatasinya dengan cara Anda biasanya memecahkan A . Sesuatu tidak merasa benar, dan itu memakan waktu lebih lama, dan saat Anda bekerja Anda berakhir menyadari ini adalah masalah baru, C . Ini variasi A yang Anda tidak tahu ada.
Jadi apa yang Anda lakukan untuk tidak membuat kesalahan ini lagi? Dua hal:
- Cari tahu apa yang berbeda dari masalah baru ini. Cari tahu pendekatan apa yang mungkin berhasil secara berbeda dan mengapa.
- Buat katalog masalah ini dan beralih ke pemecahan lebih banyak masalah baru.
Ini akan membantu Anda memecahkan masalah ini secara alami . Pada saat Anda memiliki 10 tahun pengalaman, Anda sudah terbiasa dengan masalah A hingga Z dan daftar solusi Anda sangat luas.
Baik - Efisiensi
Di dunia nyata, dengan tenggat waktu dan sumber daya terbatas, menggunakan apa yang Anda ketahui tidak selalu buruk:
- Pada awal proses penyelesaian masalah, Anda membandingkan masalah baru dengan semua masalah yang Anda tahu.
- Anda akan berusaha mengenali tanda-tanda dan memutuskan masalah seperti apa yang terlihat.
- Jika kecocokan 100% tidak dapat dilakukan, pengembang yang berpengalaman akan mempertimbangkan risiko menghabiskan lebih banyak waktu dalam penemuan terhadap risiko eksekusi yang mungkin cacat. Jika risiko waktu yang terbuang terlalu tinggi, maka Anda cukup melanjutkan apa yang Anda ketahui.
Itu bukan hal yang buruk - menggunakan analisis risiko untuk memilih efisiensi lebih dari 100% akurasi. Itu dilakukan setiap hari dan kita semua akan terikat pada hal-hal yang tidak membawa kita kemana-mana jika kita tidak melakukannya.
Jadi, untuk menjawab pertanyaanmu:
Sebagai seorang programmer dengan jumlah pengalaman yang layak, bagaimana seseorang dapat melawan kecenderungan ini untuk selalu mendekati penyelesaian masalah dari jalur yang "dicoba dan benar" dari pengalaman masa lalu?
- Terus mencari dan membuat katalog masalah baru
- Lebih baik dalam memilih solusi yang tepat untuk masalah; alih-alih hanya mengetahui solusi mana, ketahuilah mengapa itu benar.
- Latih dan asah keterampilan membuat keputusan Anda . Terkadang efisiensi adalah pilihan yang tepat, dan semakin baik dalam mengenali saat-saat itu akan mengarah pada keuntungan dunia nyata yang terukur.