Bu harika bir soru. Ve bence bununla ilgilenen sadece kıdemli programcılar değil - bunu erken ele almak bir öğrencinin beceri gelişimini hızlandırması için harika bir yol olabilir.
Bu sorunun iki tarafı var - biri kötü , diğeri gerçekten iyi .
Kötü - Yanlış çözümü seçme
İşte bir örnek - deneyimsiz bir geliştirici olarak, A ve B problemlerini daha önce sadece iki problemi çözmüş olabilirsiniz . Bu noktada, bilmediğiniz problemler olduğunu biliyorsunuz, ancak kendi deneyiminizin merceği göz önüne alındığında, gördüğünüz şeylerin çoğu A veya B gibi görünüyor .
Birlikte yeni bir sorun geliyor. Size göre, bu yeni problem A problemine benzemektedir , bu yüzden genellikle A'yı çözdüğünüz şekilde çözersiniz . Bir şey doğru gelmiyor ve daha uzun sürer ve çalışırken bu, yeni bir sorundur hayata sona C . Var olduğunu bilmediğiniz A'nın bir varyasyonu .
Peki bu hatayı bir daha yapmamak için ne yapıyorsunuz? İki şey:
- Bu yeni problemde neyin farklı olduğunu anlayın. Hangi yaklaşımların farklı çalıştığını ve nedenini anlayın.
- Bu problemi kataloglayın ve daha yeni problemleri çözmeye devam edin.
Bu, doğal olarak bu sorunu çözmenize yardımcı olacaktır . Zamanla deneyimi 10 yıldır var, sorunlar aşina A yoluyla Z ve çözümleri sizin repertuarı geniş kapsamlıdır.
İyi - Verimlilik
Gerçek dünyada, son tarihler ve sınırlı kaynaklarla, bildiklerinizi kullanmak her zaman kötü değildir:
- Sorun çözme işleminin başlangıcında, yeni sorunu bildiğiniz tüm sorunlarla karşılaştırırsınız.
- İşaretleri tanımayı deneyecek ve bunun hangi problem setine benzediğine karar vereceksiniz.
- % 100 eşleşme yapılamazsa, deneyimli bir geliştirici, muhtemelen kusurlu bir yürütmenin risklerine karşı keşif için daha fazla zaman harcama riskini tartacaktır. Boşa zaman riski çok yüksekse, sadece bildiklerinizle devam edersiniz.
Bu kötü bir şey değil - % 100 doğruluktan daha fazla verimlilik seçmek için risk analizi kullanıyor . Her gün yapılır ve biz yapmazsak bizi hiçbir yere götürmeyen şeylere bağlıyız.
Sorunuzu cevaplamak için:
Yeterli miktarda deneyime sahip bir programcı olarak, kişi geçmiş deneyimin "denenmiş ve gerçek" yollarından her zaman problem çözme yaklaşımına yaklaşma eğilimi ile nasıl mücadele edebilir?
- Yeni sorunları aramaya ve kataloglamaya devam et
- Sorun için doğru çözümü seçme konusunda daha iyi olun ; sadece hangi çözümü bilmek yerine, neden doğru olduğunu bilin .
- Pratik ve bilemek için karar verme becerileri. Bazen verimlilik doğru seçimdir ve bu zamanları daha iyi tanımak ölçülebilir gerçek dünya avantajlarına yol açacaktır.