Bu makalede gerçek bir progamcı nasıl düşünür? Hataları nasıl çözer? Nası bir yaklaşım benimser? gibi soruların yanıtlarına bakacağız. Makalenin sonunda programcılar olarak bir probleme nasıl yaklaşmamız gerektiğini ve üstesinden nasıl gelebileceğimizi öğrenmiş olacağız.
Karşılaştığınız sorunları (hataları) çözmek için belirli bir taktiğiniz yoksa muhtemelen sizde herkesin yaptığı gibi sorunları en kötü yoldan çözmeye çalışıyorsunuz.
- Bir çözüm dene.
- Bu çözüm işe yaramazsa, başka bir tane dene.
- Bu da işe yaramazsa, işe yarayana kadar 2. Adıma git.
Ama bu yöntem problem çözmenin en kötü ve zaman kaybettiren şeklidir.
“Herkes programlamayı öğrenmeli, çünkü bu süreç düşünmeyi öğretiyor.” -Steve Jobs
“Yeni programcıların yaptığı en büyük hata, problemlerin nasıl çözüleceğini öğrenmek yerine sözdizimi (syntax) öğrenmeye odaklanmaktır..” - V. Anton Spraul
Hatayla karşılaştığımızda ne yapmalıyız?
- Sorunu anla
- Plan yap
- Küçük parçalara böl
- Bölünmüyorsa?
1 - Sorunu Anla
Sorunu çözmek için öncelikle sorunu çok iyi anlamalıyız. Karşılaştığımız birçok hata aslında onları tam olarak anlayamadığımız için zordur. Peki sorunu anladığımızı nasıl bileceğiz?
Çoğu programcı bu duyguyu bilir, alınan hatayı başkasına açıklarken aslında hiç akla gelmeyen detayların da farkına varıyoruz. O yüzden problemin ne olduğunu bir yere yazmalı yada başkasına açıklamaya çalışmalıyız. Bir şeyi basit terimlerle açıklayamıyorsanız, o şeyi anlamamışsınız demektir.
2 - Plan Yap
Bir planınız olmadan sorunu çözmeye girişmeyin. Aksi takdirde alakasız çözümlerle sorundan uzaklaşabilirsiniz. Çözümünüzü olabildiğince kapsamlı bir şekilde planlayın
Sorunu anladıktan sonra gerçek bir analiz yaparak bilgileri beyninize işleyin. Bu plan için kendinize zaman tanıyın ve acele etmeyin. Örnek olarak kendinize; “X girdisinden, Y çıktısı elde etmek için gerekli adımlar nelerdir?” sorusun sorun.
3 - Küçük Parçalara Böl
Belirlediğiniz plana göre, ana sorunu küçük parçalara bölün. Başlangıçta büyük bir sorunu çözmeye çalışmayın. Ayırdığınız küçük problemleri çözmek çok daha kolaydır.
Örnek olarak;
Kullanıcıdan alınan 10 adet sayının içerisinden en büyük üçüncü sayıyı bulmak istedik. Eğer kafa karıştırıcı geldiyse üçüncü en yüksek yerine en yüksek sayıyı bulabiliriz. Hâlâ zorlayıcı ise sadece 3 sayı içerisinden en yükseğini bulabiliriz.
Her alt sorunu çözdükten sonra noktaları birleştirin. Tüm alt sorunları çözmek, ana sorunu da çözmeyi sağlar. Tebrikler !
4 - Bölünmüyorsa Ne Yapmalı
Sorunu daha küçük parçalara bölemediğimiz zaman yada herhangi bir yerde tıkandığımız zaman ne yapacağız?
İlk olarak bu durumun herkesin başına geldiğinin bilincinde olarak aşağıdaki adımları izleyebiliriz.
- Debug(Hata Ayıklama): Nerede yanlış yaptığınızı bulmak için adım adım ilerleyin
- Yeniden Düşün: Bir adım geriye gidin ve asıl soruna başka bir açıdan bakın. Yada her şeye baştan başlayın.
- Araştıma: Google`ı kullanın, hangi probleminiz olursa olsun, biri muhtemelen sizin sorununuzu çözmüştür. Aslında sorunu çözmüş olsanız bile bunu yapın. (Başka kişilerin çözümlerinden çok şey öğrenebilirsiniz.)
Şimdi, bir programcı gibi düşünmenin ne demek olduğunu daha iyi biliyoruz. Ancak bu çok iyi problem çözücü olduğumuz anlamına gelmiyor.
Pratik Pratik Pratik
Şimdi git ve biraz hata çöz !


İLK YORUMU YAPAN SEN OL!